CVS 和 Subversion 都有一个方便的合并功能,因此当您更新已修改的源文件时,它会合并其他人对同一文件所做的更改。
但是,如果您的更改与其他更改不兼容(通常如果您都更改了代码的相同部分),则会产生冲突。这两段源代码都将包含在合并的文件中,您需要手动找出要保留的更改。到目前为止一切都很好。
我的问题是,我们中的一些人使用不同的开发环境(Netbeans 与 vi,如果您必须知道的话),并且 Netbeans 具有自动缩进功能,可以重新缩进代码。因此,当我们合并更改时,有时会遇到巨大的冲突,这些冲突大多是由缩进的简单更改引起的,而不是对代码的真正更改。通常,这些会产生数百行明显的冲突,必须手动解决,但通常它们会归结为只有几行实际更改。当某人的编辑器将 UNIX 更改为 Windows 换行符或反之亦然时,会发生类似的情况。
那么 - 在比较两个版本时我可以设置合并来忽略这些“冲突”吗? Diff 有 --ignore-space-change 或 -b 选项,我希望在 cvs 或 svn 中具有基本相同的功能。我们在不同的项目中使用每种工具,因此我很乐意获得其中一个或两者的答案。
最后两个注意事项:
- 显然,合并过程必须任意选择在合并文件中使用哪个版本的空白。我对此很满意 - 我们以后可以随时重新格式化它。
- 我可以通过更加自律和更频繁地检查——承认和理解来避免这种情况。但我并不完美。
对于 SVN:在命令行工具中,有一个选项-x您可以将其设置为“b" or "w" 忽略空间变化或所有空间。
您还可以提供第三方工具来进行合并。因此,如果您有一个忽略空格的合并,则可以使用这个。
TortoiseSVN 一如既往,是所有参数的前端,因此它也支持忽略空格。
svn merge命令说明here http://svnbook.red-bean.com/en/1.5/svn-book.html#svn.ref.svn.c.merge。您需要的选项是--diff3-cmd
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)