Tortoise SVN:如何在将分支中的错误修复合并到主干后将分支与主干同步

Tortoise SVN:如何在将分支中的错误修复合并到主干后将分支与主干同步,svn,version-control,merge,tortoisesvn,tree-conflict,Svn,Version Control,Merge,Tortoisesvn,Tree Conflict,我在新的空SVN存储库中重新创建了问题: 修订1: /树干/ /分支机构/ 操作:将文本文件“init.txt”添加到分支“trunk” 修订2: /trunk/init.txt /分支机构/ 操作:基于主干创建要素分支 修订3: /trunk/init.txt /分支/featureA/init.txt 操作:将不稳定的功能添加到分支 第4次修订: /trunk/init.txt /分支/featureA/init.txt /分支/featureA/unstable.txt 操

我在新的空SVN存储库中重新创建了问题:

修订1:

  • /树干/
  • /分支机构/
操作:将文本文件“init.txt”添加到分支“trunk”

修订2:

  • /trunk/init.txt
  • /分支机构/
操作:基于主干创建要素分支

修订3:

  • /trunk/init.txt
  • /分支/featureA/init.txt
操作:将不稳定的功能添加到分支

第4次修订:

  • /trunk/init.txt
  • /分支/featureA/init.txt
  • /分支/featureA/unstable.txt
操作:通过添加文件“bugfix.conf”修复功能分支中的错误

第5次修订:

  • /trunk/init.txt
  • /分支/featureA/init.txt
  • /分支/featureA/unstable.txt
  • /分支/featureA/bugfix.conf
操作:将“bugfix.conf”合并回主干,但跳过“unstable.txt”

第6次修订:

  • /trunk/[svn:mergeinfo=/branchs/featureA:3,5]
  • /trunk/init.txt
  • /trunk/bugfix.conf
  • /分支机构/[无svn:mergeinfo]
  • /分支/featureA/init.txt
  • /分支/featureA/unstable.txt
  • /分支/featureA/bugfix.conf
操作:继续在文件“init.txt”主干上工作

第7次修订:

  • /trunk/[svn:mergeinfo=/branchs/featureA:3,5]
  • /trunk/init.txt(新内容)
  • /trunk/bugfix.conf
  • /分支机构/[无svn:mergeinfo]
  • /分支/featureA/init.txt(oldcontent)
  • /分支/featureA/unstable.txt
  • /分支/featureA/bugfix.conf
操作:尝试将功能分支与主干同步

预期结果: 第8次修订:

  • /trunk/[svn:mergeinfo=/branchs/featureA:4]
  • /trunk/init.txt(新内容)
  • /trunk/bugfix.conf
  • /分支机构/[svn:mergeinfo=/trunk:6]
  • /branchs/featureA/init.txt(新建内容)
  • /分支/featureA/bugfix.conf
第一次尝试 在要素分支上选择“合并一系列修订->所有修订”

错误:“仅当版本3到7以前从/branchs/featureA合并到重新整合源时,才能使用重新整合,但情况并非如此:主干缺少范围/branchs/featureA:4”

为什么SVN还需要合并修订版4?为stable和unstable创建一个单独的分支的全部目的是使一些提交远离另一个分支。更改(添加文件unstable.txt)完全独立于其他更改

第二次尝试 在要素分支上选择“合并一系列修订->修订2-7”(我可以手动选择的所有修订)

错误:“树冲突:上次合并操作试图添加文件'bugfix.txt',但该文件在工作副本中受阻。”


TortoiseSVN允许我选择修订版6进行合并,即使合并此更改没有意义,因为它已经包含在目标分支中,因为它最初是在修订版5中提交的。为什么陆龟不能自动处理这个问题?是否不支持在主干和功能分支之间拾取/合并单个提交?

您是如何将bugfix.conf文件与主干合并的?您使用的是什么svn客户端和服务器版本?我在客户端使用了最新的TortoiseSVN 1.9.7,服务器是最新的VisualSVN服务器3.6.4的全新安装,具有全新的功能存储库。@royalTS首先我将本地工作副本“切换”到“/trunk”,然后右键单击本地工作副本并选择“TortoiseSVN->Merge…”。在出现的对话框中,我选择了“合并一系列修订”。在文本框“要从“输入”合并的URL”和“要合并的修订范围”中,我选择“特定范围”和“4”。我将下一个对话框保留为默认值并接受。合并成功。然后在Windows资源管理器中选择工作副本并提交(“SVN提交…”)。我编辑了我的问题以包含合并对话框的屏幕截图。@Spacy那么我想问题是因为您没有合并修订版3。我会尝试做同样的事情,这次将修订范围留空。SVN然后自动计算修订范围。那么您就不会遇到后面的问题,即修订版3未合并(同步)。您是如何将bugfix.conf文件与主干合并的?您使用的是什么svn客户端和服务器版本?我在客户端使用了最新的TortoiseSVN 1.9.7,服务器是最新的VisualSVN服务器3.6.4的新安装,具有全新的存储库。@royalTS First I将“我的本地工作副本”切换到“/trunk”然后我右键单击本地工作副本并选择“TortoiseSVN->Merge…”。在出现的对话框中,我选择了“合并一系列修订”。在文本框“要从“输入”合并的URL”和“要合并的修订范围”中,我选择“特定范围”和“4”。我将下一个对话框保留为默认值并接受。合并成功。然后在Windows资源管理器中选择工作副本并提交(“SVN提交…”)。我编辑了我的问题以包含合并对话框的屏幕截图。@Spacy那么我想问题是因为您没有合并修订版3。我会尝试做同样的事情,这次将修订范围留空。SVN然后自动计算修订范围。那么您就不会遇到后面的问题,即修订版3没有合并(同步)。