Subversion供应商分支机构

dnn*_*per 10 svn vendor-branch

设置subversion以使用供应商分支时的最佳做法是什么?我们的存储库是针对单个项目构建的 我们使用的是subversion 1.6.2和tortoiseSVN 1.6.3.

示例文件夹结构:

Project1
 /tags
 /branches
 /trunk

Project2
 /tags
 /branches
 /trunk
Run Code Online (Sandbox Code Playgroud)
  1. 我在哪里放置供应商文件夹以及它应该具有哪些结构?
  2. 是否有使用tortoisesvn客户端的示例?

Jam*_*ard 13

Subversion手册中有一节专门针对供应商分支.

基本思想是通过一组跟踪外部更改的文件夹将当前版本(未修改)导入存储库(只是外部更改,而不是对其的修改).像".../repos/vendor /(software)/ current"之类的东西.然后立即分支到".../repos/vendor /(software)/(software-version)".随着新版本的发布,更新"当前"目录并创建一个新分支,例如".../repos/vendor /(software)/(next-version)".这允许你(和svn)对未修改的源进行差异以获得外部更改的内容.

对于您对软件的修改,将"(软件版本)"分支到您自己的项目中,例如".../repos /(my-project)/ trunk /(software)".当您升级到第三方源的下一版本时,告诉svn将"(软件版本)"和"(下一版本)"之间的差异合并到"trunk /(software)"的工作副本中.这会将所有外部更改拉入主干,整齐地升级项目源.正常分支和标记项目.

Subversion发行版包含一个名为"svn_load_dirs.pl"的Perl脚本,它可以在升级"供应商"项目时提供帮助.它会发现已删除,添加和重命名的文件,并根据需要修改您的工作副本,例如"(当前)".

  • 那该死的SVN书有一切,不是吗? (11认同)