SVN多分支标记

时间:2012-06-18 17:05:28

标签: svn tags tortoisesvn visualsvn-server

我们正面临SVN标记问题。下图显示了我们的项目在SVN中的组织方式。我们使用Tortoise SVN进行结账,Visual SVN作为我们的服务器。

SVN File Organization

这就是我们的项目在SVN中的组织方式

  • 分支A(主工作分支)从主干分支出来,因此位于Branches文件夹中。此分支中有不同的模块
  • 分支B(一个名为RNS的特定模块)稍后分支分支A(这是一个新的增强功能)
  • 请注意,两个分支都不是主干。
  • 在分支B的开发过程中,引入了一些新文件,仅在分支B
  • 未对分支A内的RNS模块进行任何开发。

我们想标记我们最新工作项目的版本,即分支A,其中包括RNS模块的分支B.如何实现这一目标?

这是我们从SVN检查我们最新工作区的方式

  • 我们结帐了整个项目的分支A版本。
  • 完成后,我们右键单击RNS模块,然后使用SVN-switch选项将其更新为此模块的Branch B(QUAL_RNS)版本。
  • 这构成了我们最新的工作设置(黄色)。
  • 因此除RNS模块外的每个模块都属于分支A。

我们尝试从父文件夹-Folder-1(带有工作副本选项)执行此最新工作设置的创建标记/分支,但这只创建了一个带有分支A的标记,不包括RNS模块的分支B

更新 我在Tortoise SVN帮助菜单中看到了这个

  • 您也可以在没有工作副本的情况下创建分支或标记。为此,请打开存储库浏览器。您可以将文件夹拖到新位置。您必须在拖动时按住Ctrl键才能创建副本,否则文件夹将被移动,而不是被复制。
  • 您也可以使用鼠标右键拖动文件夹。释放鼠标按钮后,您可以从上下文菜单中选择是要移动还是复制文件夹。当然要创建分支或标记,您必须复制文件夹,而不是移动它。

所以我尝试了一个工作副本。我创建了一个新的标记文件夹,并按住Ctrl键拖动整个项目。这似乎有效,但是这会占用额外的空间(它是否会创建一个额外的副本,因为复制整个工作区需要大约5分钟(470MB)),还是会创建到存储库中文件的正确链接? / p>

1 个答案:

答案 0 :(得分:0)

您必须按照sparse

中的说明执行普通或http://svnbook.red-bean.com/en/1.6/svn.branchmerge.tags.html#svn.branchmerge.tags.mkcomplex工作副本并使用工作副本制作标签

使用TortoiseSVN(或命令行),您可以对完整存储库执行标记(从根目录执行),但不建议这样做,因为它可能会干扰某些在标准布局中传递的工具的行为。