CVS 和 Subversion 都有方便的合并功能,这样当您更新已修改的源文件时,它就会合并其他人对同一文件所做的更改。
但是,如果您的更改与其他更改不兼容(通常如果您都更改了代码的相同部分),则会产生冲突。这两段源代码都将包含在合并的文件中,您需要手动找出要保留的更改。到目前为止一切都很好。
我的问题是,我们中的一些人使用不同的开发环境(Netbeans 与 vi,如果您必须知道的话),并且 Netbeans 具有自动缩进功能,可以重新缩进代码。因此,当我们合并更改时,有时会遇到巨大的冲突,这些冲突大多是由缩进的简单更改引起的,而不是对代码的真正更改。通常,这些会产生数百行明显的冲突,必须手动解决,但通常它们会归结为只有几行实际更改。当某人的编辑器将 UNIX 更改为 Windows 换行符或反之亦然时,也会发生类似的情况。
那么 - 在比较两个版本时,我可以设置合并来忽略这些“冲突”吗? Diff 有 --ignore-space-change 或 -b 选项,我希望在 cvs 或 svn 中具有本质上相同的功能。我们在不同的项目中使用每种工具,因此我很高兴获得其中一个或两个工具的答案。
最后两个注意事项:
- 显然,合并过程必须任意选择在合并文件中使用哪个版本的空白。我对此表示同意 - 我们以后随时可以重新格式化它。
- 我可以通过更加自律和更频繁地检查来避免这种情况 - 得到承认和理解。但我并不完美。
最佳答案
对于SVN:在命令行工具中,有一个选项-x,您可以将其设置为“b”或“w”忽略空间变化。所有空间。
您还可以提供第三方工具来进行合并。因此,如果您有一个忽略空格的合并,则可以使用这个。
TortoiseSVN 一如既往,是所有参数的前端,因此它也支持忽略空格。
svn merge命令描述here 。您需要的选项是--diff3-cmd
关于svn - CVS 和 Subversion 可以设置为忽略合并中的空格吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/193271/