我在混合源控制环境中工作。我们仍主要使用CVS,但较新的项目是SVN。然而,我发现很难获得SVN的支持,因为TortoiseSVN不像TortoiseCVS那样工作。
3路合并有很多认知失调,而TortoiseCVS似乎总能让合并正确,TortoiseSVN几乎总是需要手动帮助。修复任何冲突后,您必须手动将文件标记为正常。
有没有人知道如何让TortoiseSVN像TortoiseCVS一样工作?
修改
为了更清楚,我不想做三向合并,如果可能的话,我想做一个像TortoiseCVS那样的双向合并。我知道生成的文件在CVS和SVN中是相同的,例如Visual Studio项目文件有两个不同的版本。这将始终以TortoiseSVN中的冲突结束,并且永远不会发生在TortoiseCVS的冲突中。
SVN看起来像:
<<<<<<< .mine
<ApplicationRevision>22</ApplicationRevision>
=======
<ApplicationRevision>28</ApplicationRevision>
>>>>>>> .r195290
CVS喜欢
<<<<<<< SomeFile.cproj
<ApplicationRevision>22</ApplicationRevision>
=======
<ApplicationRevision>28</ApplicationRevision>
>>>>>>> 1.121
所以我应该能够得到同样的合并。此外,如果两个人在同一个文件上工作,TortoiseSVN几乎总是有冲突,即使他们在不同的位置工作,TortoiseCVS也没有这个问题。我假设TortoiseSVN更加保守,迫使你检查合并TortoiseCVS假设CVS是正确的。我想知道是否有一些选项隐藏在TortoiseSVN的某个地方,因为它更自由,而且还做了双向合并而不是三路。
哦,是的,我们正在使用Subversion 1.5,它有合并点(没有这个分支基本没用)。
答案 0 :(得分:2)
查看BeyondCompare和Araxis Merge。它们提供了将它们集成到TortoiseSVN中作为自定义合并/差异工具的说明。
答案 1 :(得分:1)
冲突标记不应与Tortoise本身有任何关系,而应与SVN与CVS有关。 SVN确定文件是否冲突,而不是Tortoise。我不能说为什么会这样,或者你可以做些什么呢。可能很少。在接受合并时,SVN可能更为保守。同样,对于所使用的算法并不积极,但是当更改的行彼此足够接近(并且更改不同)时,它似乎将文件标记为冲突。
我认为TortoiseMerge实际上相当不错,所以希望我能尽力解释它,你可能会看到之前你不知道的东西。您通常并排放置2个窗格,然后放置下窗格。下部窗格是合并的结果,冲突标记为红色,以及已成功合并的其他部分。在冲突行中,您可以右键单击,然后选择是否保留更改(如“我的”窗格中所示),其他更改(如“他们的”窗格中所示),或者您可以接受这些更改的组合
最后,我可以解释为什么保存合并而将其标记为已解决是两个单独的步骤。在SVN中,将某些内容标记为已解决,可以再次提交。它基本上是一个故障保护,有助于防止您提交已合并到工具中并保存的文件,但仍未完成编辑/测试。基本上,SVN区分在合并工具中保存和实际解析。
希望有所帮助。
答案 2 :(得分:0)
这里只是一个疯狂的猜测但是如果你在服务器上使用CVSNT,这个观察可能是基于CVSNT在合并上比SVN好得多的事实,因为它有“合并点”的概念。当多次从/向同一分支合并时,这通常会导致更少的冲突 我不认为可以做很多事情,至少不是以不显眼的方式。
编辑:我的立场得到了纠正。从v1.5开始,SVN也有合并点。我会删除这个答案,但我想这可能对使用旧版SVN的人有用。
如果那不是你所说的话,也许你应该多说清楚一下你的问题。你确定这是关于TortoiseSVN和TortoiseCVS之间的区别,而不是CVS(NT?)和SVN之间的差异吗?
答案 3 :(得分:0)
不要混淆这项技术的“目的”......在开发过程中“服务”开发团队。
(我目前正在尝试使用TortoiseSVN ..但到目前为止我还不喜欢SVN中的标记/分支方法)
答案 4 :(得分:0)
我认为您的问题主要集中在如何更好地支持在Windows上与Subversion进行合并。
它可能不是你要搜索的具体内容,但我经常在windows下使用Emacs来促进Subversion下的合并。
EmacsW32 + cygwin ( svn )+ psvn emacs包+ “的组合内置的“emacs 合并工具在Windows下运行良好。你会发现 psvn 现在已经成为Emacs的标准配置,如果它不属于你的,你可以快速下载并安装。
由于基于Emacs的工具集的集成支持,我解决合并的速度比典型的同事快5到10倍。他们似乎满足于使用TortoiseSVN +他们最喜欢的编辑器并以这种方式进行测试...我已多次提供他们指导Emacs功能的使用和功能(一旦设置完成,它就会照顾好自己),但似乎他们宁愿坚持自己的基本工具而不是投资提高他们的生产力。
SVN是一款功能强大的工具,如果您需要使用它,您可以考虑花一些时间投资使其适合您。
大卫