我可以在Subversion中关闭自动合并吗?

saw*_*lau 19 svn tortoisesvn

我们正在从退房移动/编辑/检入到Subversion版本控制系统的风格,并在评估过程中,我们发现,当你执行的TortoiseSVN的更新动作(大概在任何Subversion客户端?)如果存储库中需要应用于您正在编辑的文件的更改不会导致任何冲突,那么它们将自动/静默合并.

这让我们感到害怕,因为这种合并可能会产生任何编译错误,但至少会引入一些可能不容易检测到的逻辑错误.

非常简单的例子:我正在使用C#方法在方法的后半部分中更改某些逻辑,而其他人则在方法开始时更改变量初始化的值.另一个人的改变不在我正在处理的代码行中,因此不存在冲突; 但是可以大大改变方法的输出.

我们希望情况是,如果需要进行合并,那么将显示两个文件,并且至少会显示一个简单的接受/拒绝更改选项,这样至少我们知道某些内容已经发生变化,可以选择查看它是否会影响我们的代码.

有没有办法用Subversion/TortoiseSVN做到这一点?或者我们是否过多地坚持现在的工作方式,应该让它做到这一点......

Nor*_*ame 13

它在FAQ中: 如何防止Subversion进行自动合并?

  1. 在TortoiseSVN-> Settings-> General-> Subversion配置文件中,单击编辑按钮.
  2. [helpers]通过添加更改部分

      diff-cmd = "C:\\false.bat"
    
    Run Code Online (Sandbox Code Playgroud)

    (注意双反斜杠)

  3. 创建包含两行的文件C:\ false.bat

      @type %9
      @exit 1
    
    Run Code Online (Sandbox Code Playgroud)


aku*_*aku 10

这是TortoiseSVN的一个技巧:

如何在Subversion中关闭"自动合并"

svn.exe的诀窍是将svn外部差异工具设置为一个会不断失败的程序.

svn --diff-cmd=/bin/false
Run Code Online (Sandbox Code Playgroud)

如果外部diff程序失败,svn断定冲突是不可解析的,不会合并它.


Mar*_*ram 6

解决这个问题的最佳方法是教育开发人员.在TortoiseSVN中进行更新后,它会显示受影响文件的列表.只需双击每个文件即可获得它们之间的差异.然后,您将能够看到您的版本和最新的存储库版本之间发生了哪些变化.

  • 为什么SVN问题教育的每个答案都是?这是否表明该工具需要大量的部落知识才能运作并且应该修复? (17认同)
  • 在您发现任何更改之前,svn会很乐意合并您的文件.无论如何,检查改变了什么是个好主意:-) (3认同)
  • "_然后,您将能够看到您的版本与最新的存储库版本之间发生了什么变化",这可能并不容易恢复,特别是在有问题的文件是例如设计人员生成的XML的情况下,如图形EAI工具.在更新由图形EAI工具生成的某些文件时猜测谁刚被烧毁的要点:-). (2认同)