3

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

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))还是会创建到存储库内文件的正确链接?

4

1 回答 1

0

您必须按照http://svnbook.red-bean.com/en/1.6/svn.branchmerge.tags.html#svn.branchmerge.tags.mkcomplex中的说明进行正常或稀疏工作副本并使用工作副本制作标签

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

于 2012-06-22T11:46:06.253 回答