如何使用svn生成diff时忽略编码约定?
详细说明,我不想区分以下两种编码风格
while (variableIter.hasNext())
{
lModel = variableIter.next();
}
和
while (variableIter.hasNext()) {
lModel = variableIter
.next();
}
如果我运行svn diff,我会得到以下差异:
- while (variableIter.hasNext())
- {
- lModel = variableIter.next();
+ while (variableIter.hasNext()) {
+ lModel = variableIter
+ .next();
但我不希望这成为差异的一部分。我希望svn忽略这种编码风格的差异。那么,svn中有什么选项可以帮我这么做吗? 要么 是否有一个脚本或我可以在svn生成的差异上运行的东西只吐出真正的变化而不是编码样式的变化?
TIA
答案 0 :(得分:1)
我不知道svn是否有内置函数来做到这一点。无论如何,你可以使用一些工具在提交之前统一缩进你的代码,比如C的缩进工具(http://www.gnu.org/software/indent/)。
或者您可以尝试使用此选项启动差异:
svn diff -x -w
答案 1 :(得分:0)
我无法帮助直接由subversion生成的diff。
但是一旦你意识到你所看到的差异与格式相关,那么你可能会选择另一种方式 差异化工具。请参阅我们的Smart Differencer工具。这些工具是特定于语言的。他们通过解析语言并构建抽象语法树,然后比较树来工作。这使得它们完全是空白(和评论)无关紧要;重新格式化代码并不会显示出差异。差异被报告为语言元素(操作数,表达式,语句,声明,块,方法,类,...)和编辑操作(移动,删除,插入,复制,重命名变量 - 在块内并且精确到开头行/列和结束行/列。
我们目前拥有适用于多种语言的SmartDifferencers,包括C,C ++,C#,Java,JavaScript,PHP。