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