我们在SVN标记方面遇到了问题。下图显示了我们的项目在SVN中的组织方式。我们使用Tortoise SVN进行检出,Visual SVN作为我们的服务器。
这是我们在SVN中组织项目的方式:
- 分支A(主要工作分支)从主干分支分支,并因此位于Branches文件夹中。该分支内有不同的模块。 - 分支B(称为RNS的特定模块)稍后从分支A分支出(这是为了进行新的增强)。 - 请注意,两个分支都不是主干。 - 在分支B上开发期间,仅在分支B上引入了一些新文件。 - 在分支A内未对RNS模块进行任何开发。
我们想要标记我们最新的工作项目版本,即包括RNS模块的Branch A。如何实现?
这是我们从SVN中检出最新工作区的方式:
- 我们检出整个项目的Branch A版本。 - 完成后,我们右键单击RNS模块,然后使用SVN-switch选项将其更新为该模块的Branch B(QUAL_RNS)版本。 - 这构成了我们的最新工作设置(黄色部分)。 - 因此,除RNS模块外的每个模块都将属于Branch A。
我们尝试从父文件夹Folder-1(使用工作副本选项)创建此最新工作设置的标记/分支,但这只是创建了一个带有Branch A的标记,而不包括RNS模块的Branch B。
更新: 我在Tortoise SVN帮助菜单中看到了以下内容:
- 您还可以在没有工作副本的情况下创建分支或标记。为此,请打开存储库浏览器。您可以将文件夹拖到新位置。您必须按住Ctrl键才能拖动以创建副本,否则文件夹将被移动,而不是复制。 - 您还可以使用右键单击文件夹并拖动它。一旦释放鼠标按钮,您可以从上下文菜单中选择是否要移动或复制文件夹。当然,要创建分支或标记,您必须复制文件夹,而不是移动它。
因此,我尝试了一下这个方法。我创建了一个新的标记文件夹,并将整个项目拖到其中(按住Ctrl键)。这似乎有效,但这会占用额外的空间(它是否会创建一个额外的副本?因为复制整个工作区花费了约5分钟(470MB),还是会创建正确的链接到存储库内的文件?)
这是我们在SVN中组织项目的方式:
- 分支A(主要工作分支)从主干分支分支,并因此位于Branches文件夹中。该分支内有不同的模块。 - 分支B(称为RNS的特定模块)稍后从分支A分支出(这是为了进行新的增强)。 - 请注意,两个分支都不是主干。 - 在分支B上开发期间,仅在分支B上引入了一些新文件。 - 在分支A内未对RNS模块进行任何开发。
我们想要标记我们最新的工作项目版本,即包括RNS模块的Branch A。如何实现?
这是我们从SVN中检出最新工作区的方式:
- 我们检出整个项目的Branch A版本。 - 完成后,我们右键单击RNS模块,然后使用SVN-switch选项将其更新为该模块的Branch B(QUAL_RNS)版本。 - 这构成了我们的最新工作设置(黄色部分)。 - 因此,除RNS模块外的每个模块都将属于Branch A。
我们尝试从父文件夹Folder-1(使用工作副本选项)创建此最新工作设置的标记/分支,但这只是创建了一个带有Branch A的标记,而不包括RNS模块的Branch B。
更新: 我在Tortoise SVN帮助菜单中看到了以下内容:
- 您还可以在没有工作副本的情况下创建分支或标记。为此,请打开存储库浏览器。您可以将文件夹拖到新位置。您必须按住Ctrl键才能拖动以创建副本,否则文件夹将被移动,而不是复制。 - 您还可以使用右键单击文件夹并拖动它。一旦释放鼠标按钮,您可以从上下文菜单中选择是否要移动或复制文件夹。当然,要创建分支或标记,您必须复制文件夹,而不是移动它。
因此,我尝试了一下这个方法。我创建了一个新的标记文件夹,并将整个项目拖到其中(按住Ctrl键)。这似乎有效,但这会占用额外的空间(它是否会创建一个额外的副本?因为复制整个工作区花费了约5分钟(470MB),还是会创建正确的链接到存储库内的文件?)