我正在为分支进行SVN合并,在其中一个文件中我看到了:
GetQueryReferenceData(int sessionId, Int32 sessionId)
这意味着合并工具只是添加了另一个参数而没有提出任何问题。想象一下,如果它是对子串(0)的调用,而在另一个分支中它将是子串(0,2)。这是完全不同的行为,它如何决定选择哪一个?它在编译期间出现了好事。
问题是它不会被标记为冲突,并会自动合并。这是一种非常危险的行为,如果你没有为每行代码进行单元测试,你就会被搞砸。
如果没有合并工具无声地进行危险的更改,我做错了什么以及如何进行大合并?是否存在与语言无关的合并工具?
我正在使用Tortoise SVN。
答案 0 :(得分:1)
所以,我不熟悉TortoiseSVN界面,但如果存在冲突,标准的subversion命令行实用程序会通知您冲突并允许您指定您想要的版本(“我的”,“他们的”)使用或是否愿意手动解决冲突。但请注意,如果合并/更新涉及不同的代码段(因此没有冲突),那么预期的行为是将应用任何更改(无论是对签名的更改还是其他更改)。因此,您应该问为什么您的开发人员选择更改变更集中的签名,而不是询问为什根据要求在工作目录中应用这些更改。
此外,如果您想阻止其他开发人员提取恶作剧并对代码进行重大更改,您可以创建在提交之前或之后运行的各种“挂钩”,以确保代码编译或执行任何自定义验证我想对代码进行相应的拒绝更改。
答案 1 :(得分:1)