我在主干中有一个特性分支,并定期将主干中的更改合并到分支中,一切都运行正常。今天,我将分支合并回主干中,在创建分支后添加到主干中的任何文件都被标记为“树冲突”。将来有办法避免这种情况吗?

我认为他们没有被正确标记。


当前回答

直到今天,至少从3个月前开始,我在尝试将一个分支合并回主干(使用TortoiseSVN 1.11)时经常遇到数百个树冲突。顺便说一句,不管是否重制。 我从2004年的TortoiseSVN v1开始就一直在使用它,而且我一直在重新集成分支。我想最近一定发生了什么事吧?

所以今天我做了一个简单的实验,我发现了是什么导致了这些疯狂的冲突:

I forked off the trunk @393; I modified tens of files randomly, as well as creating new ones; I committed. Now @395 (a colleague forked off at 394 to perform his own stuff). Then I tried to reintegrate the branch back into the trunk, test only; following TortoiseSVN's recommendation in the wizard: "to merge all revisions (reintegrate), leave that box empty". To achieve this, I right-clicked onto the trunk folder, and chose "TortoiseSVN > Merge, from /path/to/branch", and I left the rev range empty, as advised on the dialog.

讨论:(见附件)

所有修改……的什么?我不知道客户肯定指的是“所有修订的目标!”(主干)”,因为,在重新集成该分支的过程中,我看到提到“合并修订1-HEAD”!我的天啊可怜的魔鬼,你会死在这里的。那个分支是@393出生的,看在上帝的份上,你看不懂它的出生证明吗?

解决方法:

与wiz的建议相反,请指定一个范围,涵盖…的所有修订。树枝的生命!因此,394头; 现在再次运行合并测试,并获得一支雪茄。()。

道德: 我不能理解为什么他们还没有修复这个错误,因为这是一个,对不起。 我应该花时间跟他们汇报。

其他回答

我遇到了同样的问题,并通过使用这些指令重新做合并来解决它。基本上,它使用SVN的“2-URL合并”将主干更新到分支的当前状态,而不用担心历史和树冲突。让我不用手动修复114棵树的冲突。

我不确定它是否像人们希望的那样保存了历史,但对我来说是值得的。

我通过Gary给出的链接找到了解决方案(我建议按照这种方式进行)。

通过汇总来解决向SVN客户端1.6提交工作目录的树冲突。X你可以使用:

svn resolve --accept working -R .

在哪里。目录冲突。

警告:“提交你的工作目录”意味着你的沙盒结构将是你要提交的,因此,例如,如果你从你的沙盒中删除了一些文件,它们也会从存储库中删除。这只适用于冲突的目录。

通过这种方式,我们建议SVN解决冲突(——resolve),从当前目录(.)开始递归地(-R)接受沙箱中的工作副本(——accept working)。

在TortoiseSVN中,右键单击“Resolved”,实际上解决了这个问题。

直到今天,至少从3个月前开始,我在尝试将一个分支合并回主干(使用TortoiseSVN 1.11)时经常遇到数百个树冲突。顺便说一句,不管是否重制。 我从2004年的TortoiseSVN v1开始就一直在使用它,而且我一直在重新集成分支。我想最近一定发生了什么事吧?

所以今天我做了一个简单的实验,我发现了是什么导致了这些疯狂的冲突:

I forked off the trunk @393; I modified tens of files randomly, as well as creating new ones; I committed. Now @395 (a colleague forked off at 394 to perform his own stuff). Then I tried to reintegrate the branch back into the trunk, test only; following TortoiseSVN's recommendation in the wizard: "to merge all revisions (reintegrate), leave that box empty". To achieve this, I right-clicked onto the trunk folder, and chose "TortoiseSVN > Merge, from /path/to/branch", and I left the rev range empty, as advised on the dialog.

讨论:(见附件)

所有修改……的什么?我不知道客户肯定指的是“所有修订的目标!”(主干)”,因为,在重新集成该分支的过程中,我看到提到“合并修订1-HEAD”!我的天啊可怜的魔鬼,你会死在这里的。那个分支是@393出生的,看在上帝的份上,你看不懂它的出生证明吗?

解决方法:

与wiz的建议相反,请指定一个范围,涵盖…的所有修订。树枝的生命!因此,394头; 现在再次运行合并测试,并获得一支雪茄。()。

道德: 我不能理解为什么他们还没有修复这个错误,因为这是一个,对不起。 我应该花时间跟他们汇报。

根据我的经验,每当我删除一个文件夹时,SVN都会产生树冲突。似乎没有什么理由。

我是唯一一个工作在我的代码->删除目录->提交->冲突!

我迫不及待地想切换到Git。

我应该澄清一下,我使用Subclipse。这可能就是问题所在!再说一次,我迫不及待地想换……

我不知道这是否发生在你身上,但有时我选择了错误的目录合并,我得到这个错误,即使所有的文件看起来完全正常。

例子:

合并/ svn /项目/部门/分公司/来源 to /svn/Project/trunk——>树冲突

合并/ svn /项目/部门/分公司 to /svn/Project/trunk——> OK

这可能是一个愚蠢的错误,但它并不总是显而易见的,因为你认为它是更复杂的东西。