如何“修复”一个SVN分支/树冲突?(How to 'fix' a SVN bran

2019-08-21 03:51发布

我接手一个软件项目,并决定把一切SVN下(上Assembla使用乌龟SVN)。 树干是ROOT下。 所以后备箱包含整个应用程序(我标记1.0)。 对于我的第一个大的功能,我创建了一个名为“开发”的一个分支。

我可以合并在主干分支到没有问题的Dev分支的变化(因为我是做小bug修复)。 一旦我的特点是完整的,我做了合并到主干分支。 一切工作鳍到这一点。 ROOT下新的代码显示了新的功能正常。 但后来我做了承诺(的合并的结果),现在每次我试着从根部或从Dev分支做一个合并的时候,SVN抱怨“树冲突”上有许多文件。 即使文件,我没有因为合并碰。 我试图解决冲突,但没有成功。

我是唯一的开发人员,所以我真的不关心的重大变化到仓库。 但我仍想保留所有文件的历史记录,如果有可能。

什么是解决这个问题的最好方法? 有没有我可以标记在ROOT行李箱中的所有最新的文件作为该文件的“确定”版本的方法吗?


[编辑]的更多信息

  1. 是的,“主”和“树干”是同一回事。 我已澄清我的问题
  2. 当您从合并的特性分支,你先做从树干另一个合并aborb最新版本的修改?”是的,树干上调,最新的。而Dev分支把所有从树干的变化。
  3. “每样东西搞砸了犯”:一旦我的意思是,提交被罚款,但随后我就开始做从主干合并/躯干,SVN抱怨“树冲突”。
  4. 我有超过200棵树冲突。 那么我现在寻找的是一个“照单全收”命令

[编辑] elhoim解决方案并没有解决我的问题。 然而,他是正确的使用SVN版本问题。 目前(2009-10-28),Assembla使用SVN V1.5.1和我的TortoiseSVN的是V1.6。 所以这是我有这么多的树冲突的原因。 我尝试使用该解决方案由elhoim的链接提供,它没有工作(我尝试了一堆合并多次试图头对头合并之前,有些文件并没有延续到'根'分支,因为这一点)。

注意到一个头对头合并仍不能正常工作,我决定干脆删除我的分支文件夹中的所有“.svn文件”的文件,将文件复制到根文件夹,并做了承诺。

Answer 1:

这个答案应该有所帮助。

否则,你用一只乌龟SVN客户端1.6.x版? 这似乎有问题,如果SVN服务器是小于1.5.6 ...



Answer 2:

这似乎是在主干上的目录结构的水平做了一些改动试图到主干合并之前并没有吸收到Dev分支。 这可能导致你的情况树冲突。

我发现SVN书非常有帮助的这一部分,它包含了解决像你这样的情况的方法。 希望这可以帮助。 http://svnbook.red-bean.com/nightly/en/svn.tour.treeconflicts.html

[编辑]附加信息:


你是否已经运行svn解决你在哪里实际上改写/解决冲突的版本的工作空间? 有可能是文件/文件夹仍然标记您的问题的工作区(就是你实际执行合并)的“冲突” - 所以,一旦你通过这些看上去并解决了手工冲突,你可以运行svn“解决”。 我使用Subversion命令行客户端,我的合并 - 但我已经验证,此选项可以用龟为好。 这应该歇工冲突状态,让你继续。 祝好运。



Answer 3:

在一般情况下,SVN的合并支持只能处理使用特性分支一次 。 也就是说,你在它的工作和合并从主干变成它,然后使用svn merge --reintegrate合并它放回后备箱时,即可大功告成。

在此之后,如果你想继续工作,你需要创建一个新的分支上下工夫。 我认为,你可以删除旧的,并在其设立一个新的一个没有,如果你想保持相同的存储库路径丢失数据,但你可能要与测试回购先试以防万一svn:merge信息获取扭曲。

这是不完美的。 见这个职位从电流合并语义引入了更详细的信息。

此外,提防任何使用的svn cpsvn mv超过分支和合并其他目的-如果你这样做,你需要删除虚假svn:merge他们创造的属性(在两个分支和主干如果需要的话)运行复兴合并之前或将失败的意志树冲突的消息。

总体上,SVN的分支与合并仍然是相当薄弱相比,分布式VCS系列(GIT,汞,BZR,的darcs等),但如果你遵循这些准则它的工作。



文章来源: How to 'fix' a SVN branch/tree conflict?
标签: svn branch