无论如何让TortoiseSVN更像TortoiseCVS吗?

时间:2009-02-17 23:14:19

标签: svn version-control tortoisesvn cvs tortoisecvs

我在混合源控制环境中工作。我们仍主要使用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,它有合并点(没有这个分支基本没用)。

5 个答案:

答案 0 :(得分:2)

查看BeyondCompareAraxis 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)

呃,也许我错过了这个问题。如果TortoiseCVS做得“正确”(因为你的团队需要它完成 - 或者期望它完成)......那么你为什么要选择TortoiseSVN?

不要混淆这项技术的“目的”......在开发过程中“服务”开发团队。

(我目前正在尝试使用TortoiseSVN ..但到目前为止我还不喜欢SVN中的标记/分支方法)

答案 4 :(得分:0)

我认为您的问题主要集中在如何更好地支持在Windows上与Subversion进行合并。

它可能不是你要搜索的具体内容,但我经常在windows下使用Emacs来促进Subversion下的合并。

Windows下的Emacs + SVN

EmacsW32 + cygwin svn )+ psvn emacs包+ “的组合内置的“emacs 合并工具在Windows下运行良好。你会发现 psvn 现在已经成为Emacs的标准配置,如果它不属于你的,你可以快速下载并安装。

由于基于Emacs的工具集的集成支持,我解决合并的速度比典型的同事快5到10倍。他们似乎满足于使用TortoiseSVN +他们最喜欢的编辑器并以这种方式进行测试...我已多次提供他们指导Emacs功能的使用和功能(一旦设置完成,它就会照顾好自己),但似乎他们宁愿坚持自己的基本工具而不是投资提高他们的生产力。

SVN是一款功能强大的工具,如果您需要使用它,您可以考虑花一些时间投资使其适合您。

大卫

相关问题