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