CVS 和 Subversion 都具有方便的合并功能,因此当您更新已修改的源文件时,它会合并其他人对同一文件所做的更改。
但是,如果您的更改与其他更改不兼容 - 通常如果您都更改了代码的相同部分 - 这将产生冲突。这两段源代码都将包含在合并文件中,您需要手动整理出要保留的更改。到目前为止一切都很好。
我的问题是我们中的一些人使用不同的开发环境(Netbeans 与 vi,如果你必须知道的话)并且 Netbeans 具有自动缩进功能,可以重新缩进代码。因此,当我们合并更改时,有时会发生巨大的冲突,这主要是由于缩进的简单更改引起的,而不是对代码的真正更改。这些通常会产生数百行明显的冲突,必须手动解决,但通常它们归结为几行真正的更改。当某人的编辑器将 unix 更改为 Windows 换行符时,也会发生类似的情况,反之亦然。
那么 - 在比较两个版本时,我可以设置合并以忽略这些“冲突”吗?Diff 具有 --ignore-space-change 或 -b 选项,我希望在 cvs 或 svn 中具有基本相同的功能。我们在不同的项目中使用每种工具,所以我很乐意得到其中一个或两个的答案。
最后的两个注意事项:
- 显然,合并过程必须任意选择在合并文件中使用哪个版本的空白。我很好 - 我们以后总是可以重新格式化它。
- 我可以通过更加自律和更频繁地检查来避免其中的一些 - 承认和理解。但我并不完美。