Svn 多分支标记

Svn 多分支标记,svn,tags,tortoisesvn,visualsvn-server,Svn,Tags,Tortoisesvn,Visualsvn Server,我们面临SVN标记的问题。下图显示了我们的项目是如何在SVN内部组织的。我们使用Tortoise SVN进行签出,使用Visual SVN作为服务器 这就是我们的项目在SVN中的组织方式 分支A(主要工作分支)从主干分支,因此位于分支文件夹中。此分支中有不同的模块 分支B(一个称为RNS的特定模块)稍后从分支a分支(这是为了一个新的增强) 请注意,两个分支都不是主干 在分支B的开发过程中,只在分支B上引入了一些新文件 分支A内的RNS模块未进行开发 我们想标记我们最新工作项目的一个版本,即

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

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

  • 分支A(主要工作分支)从主干分支,因此位于分支文件夹中。此分支中有不同的模块
  • 分支B(一个称为RNS的特定模块)稍后从分支a分支(这是为了一个新的增强)
  • 请注意,两个分支都不是主干
  • 在分支B的开发过程中,只在分支B上引入了一些新文件
  • 分支A内的RNS模块未进行开发
我们想标记我们最新工作项目的一个版本,即分支a,其中包括RNS模块的分支B。如何实现这一点

这是我们从SVN签出最新工作区的方式

  • 我们需要整个项目的一个版本
  • 完成后,我们右键单击RNS模块,然后使用SVN开关选项将其更新为该模块的分支B(QUAL_RNS)版本
  • 这是我们最新的工作设置(黄色)
  • 因此,除RNS模块外的每个模块都属于分支A
我们尝试从父文件夹folder-1(带有工作副本选项)创建此最新工作设置的标记/分支,但这只是创建了一个带有分支a的标记,其中不包括RNS模块的分支B

更新: 我在乌龟SVN帮助菜单中看到了这个

  • 也可以创建分支或标记,而无需工作副本。为此,请打开存储库浏览器。您可以将文件夹拖动到新位置。拖动时必须按住Ctrl键才能创建副本,否则文件夹将被移动,而不是复制
  • 也可以用鼠标右键拖动文件夹。释放鼠标按钮后,可以从关联菜单中选择是移动还是复制文件夹。当然,要创建分支或标记,必须复制文件夹,而不是移动它
所以我试着用一个工作副本。我创建了一个新的标记文件夹,并按住Ctrl键将整个项目拖动到它。这似乎可行,但这是否会占用额外的空间(复制整个工作区需要大约5分钟(470MB)的时间,因此是否会创建一个额外的副本),或者是否会创建到存储库中文件的正确链接?

您必须执行普通复制或工作复制,并使用工作副本制作一个标记,如中所述


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

您是否将“分支a”的工作副本中的目录“svn”切换为完整的“分支B”?如果你这样做,我认为这不是正确的方法。您必须使用svn外部:谢谢您的回复。是的,我签出了分支A,然后只为RNS模块做了一个SVN切换,以将其更新到分支B。我还没有尝试外部,因为我们使用OrtoiseSVN作为GUI。我将试试你的建议。非常感谢你的答复。我们在windows计算机上安装了VisualSVN服务器,并在windows中执行所有签入操作,然后将代码移到linux框中。我曾尝试从您提到的链接的工作副本创建一个复杂的标记,但我在windows上工作时使用了TortoiseSVN exe文件。(例如:TortoiseProc.exe copy my working copy\\-m“标记我现有的工作副本状态”)我不确定我是否做得对,或者这在windows中是否不受支持。我认为您对Subversion缺乏一些基本的了解。您试图在不了解基本知识的情况下使用图形客户端。请阅读。