我使用SVN作为源控制系统,我想知道如何比较目录而忽略任何元数据差异.有没有办法告诉svn diff
我只比较实际内容并忽略任何元数据?
我的意思是像SVN属性等元数据,它们不会影响文件内容.假设文件X在分支B中具有与trunk T相比的附加属性.不幸的是,即使文件X的实际内容相同,它也将显示在'svn diff TB'中.
我寻找这样的东西:
svn diff https://example.org/tags/v1 https://example.org/tags/v2 -x -ignore-metadata --summarize
更新:我通过直接在文件系统上进行差异而不是使用SVN工具来解决这个问题.请看下面我自己的答案......
您可以通过'filterdiff --clean'传递svn diff输出以删除任何无关的行,包括属性更改.
如果使用该--summarize
选项,则在第二列而不是第一列中指示属性更改.
也就是说,
M URL -- indicates content change M URL -- property change MM URL -- content and property change
grep更容易一点.我猜你可以有一个两阶段的过程,如果你想要一个完整的差异 - 首先使用汇总来查找内容改变的文件,然后区分它们.
来自JosephWatkins的好建议.
这是grep-junior-users的命令:
svn diff A B --summarize | grep '^. '
grep查找空格作为该行的第二个字符.
在搜索svn帮助文档时发现了这一点
svn diff --patch-compatible
和跑步一样
svn diff --show-copies-as-adds --ignore-properties