我们正在从退房移动/编辑/检入到Subversion版本控制系统的风格,并在评估过程中,我们发现,当你执行的TortoiseSVN的更新动作(大概在任何Subversion客户端?)如果存储库中需要应用于您正在编辑的文件的更改不会导致任何冲突,那么它们将自动/静默合并.
这让我们感到害怕,因为这种合并可能会产生任何编译错误,但至少会引入一些可能不容易检测到的逻辑错误.
非常简单的例子:我正在使用C#方法在方法的后半部分中更改某些逻辑,而其他人则在方法开始时更改变量初始化的值.另一个人的改变不在我正在处理的代码行中,因此不存在冲突; 但是可以大大改变方法的输出.
我们希望情况是,如果需要进行合并,那么将显示两个文件,并且至少会显示一个简单的接受/拒绝更改选项,这样至少我们知道某些内容已经发生变化,可以选择查看它是否会影响我们的代码.
有没有办法用Subversion/TortoiseSVN做到这一点?或者我们是否过多地坚持现在的工作方式,应该让它做到这一点......
它在FAQ中: 如何防止Subversion进行自动合并?
在TortoiseSVN-> Settings-> General-> Subversion配置文件中,单击编辑按钮.
[helpers]
通过添加更改部分diff-cmd = "C:\\false.bat"(注意双反斜杠)
创建包含两行的文件C:\ false.bat
@type %9 @exit 1
这是TortoiseSVN的一个技巧:
如何在Subversion中关闭"自动合并"
svn.exe的诀窍是将svn外部差异工具设置为一个会不断失败的程序.
svn --diff-cmd=/bin/false
如果外部diff程序失败,svn断定冲突是不可解析的,不会合并它.
解决这个问题的最佳方法是教育开发人员.在TortoiseSVN中进行更新后,它会显示受影响文件的列表.只需双击每个文件即可获得它们之间的差异.然后,您将能够看到您的版本和最新的存储库版本之间发生了哪些变化.