我的同事对svn更新的工作方式有问题,但我不确定原因,所以这个问题有两个方面.首先,如何以他想要的方式解决他的问题,其次,我是否应该试着让他相信TortoiseSVN现在做事的方式是最好的方式(如果是的话,如何)?
他的理想用例
我想这是一个合理的请求,但他不想信任SVN的事实困扰我,虽然它并没有真正影响我或我的工作.他之前使用的是CVS,SVN和ClearCase,他并不擅长版本控制.他声称他之前能够在svn中做到这一点(同时,他也是我多年的大四学生).
Wim*_*nen 17
TortoiseSVN FAQ:" 防止颠覆进行自动合并 ".
编辑:我正在复制常见问题解答中的链接答案,以保护链接腐烂的答案:
有些人不喜欢Subversion在更新时自动将自己的本地工作副本更改合并到其他人的更改.以下是如何强制这些文件进入冲突状态,以便您可以方便地手动合并.
在TortoiseSVN-> Settings-> Subversion配置文件中,单击编辑按钮.
[helpers]通过添加更改部分Run Code Online (Sandbox Code Playgroud)diff-cmd = "C:\\false.bat" diff3-cmd = "C:\\false.bat"(注意双反斜杠)创建
C:\false.bat包含两行的文件Run Code Online (Sandbox Code Playgroud)@type %9 @exit 1这有效地使每次自动合并失败,从而迫使文件发生冲突.
好奇的原因
type %9是diff3-cmd将合并的输出发送到stdout.然后Subversion接受此操作并使用合并结果覆盖您的本地文件.添加此行可避免获取空本地文件.
由于您的同事使用自动合并令人不舒服,我对不进行自动合并的同事感到不舒服.在我看来,这是错误的心态.当你不接受所有你是选择存储库的变化未提交代码,但在某种程度上,它没有这样做感觉像未犯.这是一种易于引入和/或重新引入错误的思维方式.
当您在允许之前查看合并时,您正在考虑将允许哪些更改进入您的代码库,而实际上您正在决定要从代码库中删除哪些已提交代码.这是一个微妙但重要的区别.
当然,需要协调更改,当然可能需要撤消或修改已提交的代码.如果没有接受其他人的提交,就会导致人们撤销提交而不承认你正在做的事情.
也许你可以说服他让 svn 进行更改,并让他在签入之前检查它们?
我发现命令“svn diff --diff-cmd=kdiff3”对于这种情况非常有用。尽管无可否认,这是 Linux,并且您的语法会随 TortiseSVN 的不同而变化。