SVN在两个分支上添加文件时如何解决新树冲突

SVN在两个分支上添加文件时如何解决新树冲突,svn,merge,tree-conflict,Svn,Merge,Tree Conflict,当使用SVN 1.6.1合并两个分支时,在两个分支上都添加了一个文件,然后在这些单独的分支中进行操作,我得到了一个新的树冲突: C foo.txt > local obstruction, incoming add upon merge 我需要两个分支的更改,但是树冲突没有给我通常的.working、.merge left和.merge right文件-这是可以理解的,因为冲突的性质。其中有很多冲突,每个分支上都发生了相同文件的删除,但解决起来很简单 我如何解决这个问

当使用SVN 1.6.1合并两个分支时,在两个分支上都添加了一个文件,然后在这些单独的分支中进行操作,我得到了一个新的树冲突:

      C foo.txt
  >   local obstruction, incoming add upon merge
我需要两个分支的更改,但是树冲突没有给我通常的.working、.merge left和.merge right文件-这是可以理解的,因为冲突的性质。其中有很多冲突,每个分支上都发生了相同文件的删除,但解决起来很简单


我如何解决这个问题?SVN redbean 1.6版手册没有涵盖这种情况。

正如2009年较旧版本的文档所述:

添加到版本控制文件的合并导致的XFAIL冲突

此测试执行合并,将无历史记录的文件添加到 现有版本文件。 这应该是“本地障碍,传入合并时添加”变体文件上的树冲突。修正了r35341中的预期

顺便说一句,这在ClearCase中也被称为邪恶双胞胎: 一个文件在这里创建两次,在两个不同的分支中添加两次,为两个不同的元素创建两个不同的历史记录,但名称相同

理论上的解决方案是使用目标分支“B2”中的外部差异工具手动合并这些文件

如果您仍在处理源分支,理想的方案是将该文件从源分支B1中删除,从B2合并回B1,以便使该文件在B1上可见,然后处理同一元素。 如果由于合并只发生在B1到B2之间,因此无法进行回合并,则每个B1->B2合并都需要手动合并。

我发现了一个错误。它即将运行:

svn resolve --accept working <YourPath>
这将声明本地版本文件为OK。 您可以对单个文件或整个项目目录运行它

如果传入的更改是您想要的,该怎么办?我无法运行svn resolve-完全接受他们的解决方案


svn resolve-accept base

我只是想完全按照上面用户619330的建议来做。情况是:1:我在处理我最初的分支branch1时添加了一些文件;2我创建了一个新的分支,branch2用于进一步开发,从主干上分支,然后合并我对branch1的更改13一位同事将我的mods从branch1复制到他自己的分支上,添加了更多mods,然后合并回主干上;4我现在想将trunk的最新更改合并到我当前的工作分支branch2中。这是svn 1.6.17

合并与新文件存在树冲突,我希望新版本来自不同的主干,因此从branch2的干净副本开始,我对冲突文件进行svn删除,提交这些branch2更改,从而创建一个没有相关文件的branch2临时版本,然后从主干进行合并。我这样做是因为我希望历史记录与主干版本相匹配,这样以后在尝试合并回主干时就不会有更多问题。合并进行得很顺利,我得到了文件的主干版本,svn st显示一切正常,然后我在尝试提交更改时遇到了更多的树冲突,在我之前所做的删除和合并中的添加之间。svn为我的工作副本解决了冲突,该副本现在具有文件的主干版本,并将其提交。一切都应该很好,对吗


不,branch2的另一个副本的更新导致了旧版本的文件预中继合并。所以现在我有两个branch2的不同工作副本,应该更新到相同的版本,有两个不同版本的文件,并且都坚持它们是完全最新的!签出branch2的干净副本会导致文件的旧的主干前版本。我手动将这些更新到主干版本并提交更改,返回到我最初提交主干更改的第一个工作副本,尝试更新它,现在在有问题的文件上出现校验和错误。把有问题的目录吹走,通过更新得到一个新版本,最后我得到了branch2的一个好版本,并对主干进行了更改。我希望如此。开发人员注意。

谢谢,这也解决了:C foo.txt>本地添加,传入的加载更新问题它对我也有效,但我必须这样做:svn解析-接受工作文件名是的,你需要一个文件名。它接受当前目录的“.”。我还需要递归地这样做:svn resolve-accept working-recursive。解决一切有利于您的工作副本的问题!当你这样做的时候,你可能会吹走其他人的更改,就像解决冲突时一样,我使用我创建的别名来列出所有树冲突文件:alias mtc='stat | awk BEGIN{FS=\\}/^。{6}C/{print\$NF}然后我可以使用它作为resolve命令的参数,li
例如:svn resolve-accept working$mtcIn事实上您还需要指定资源,例如:svn resolve-accept working path/index.html我想我误解了这个问题。”在使用“svn resolve”时,“base”实际上相当于“There full”,但它不能解决您的问题。我所做的是将它分成两部分:1删除本地冲突的目录或文件,2合并。这应该没有冲突地运行,因为“传入的更改是您想要的”,我不关心删除的项目树冲突设计文档链接已损坏:有趣的是,即使两个添加的文件相同,它们仍然显示为冲突。这真的不应该被标记为冲突。@SantiBailors太有趣了,我现在就要死了。为我的老朋友吉特而死。。。