如何获得在networking上的2个文件夹内的所有文件之间的差异?
所以我想比较这个文件夹 http://cloudobserver.googlecode.com/svn/branches/v0.4/Boost.Extension.Tutorial/libs/boost/extension/
与这个 http://svn.boost.org/svn/boost/sandbox/boost/extension/
。 我想得到一个diff文件作为结果。 这些文件夹是在svn控制下,但我更喜欢git样式的diff文件(就像这里显示的一样)我尝试了git diff
但似乎没有为web文件夹工作。 那么如何用Linux上的一个命令做同样的事情呢?
更新:所以我们有一个很好的答案 。 但奇怪的是,这似乎表明,所有的文件(相同的文件)的所有内容被replace为非常相同的内容(虽然我确信只有3-4条代码行被改变)。
更新2:为了实现我真正需要的(只有真正改变的行,使用git样式,在Linux上):
$ svn export http://cloudobserver.googlecode.com/svn/branches/v0.4/Boost.Extension.Tutorial/libs/boost/extension/ repos2 --native-eol CRLF $ svn export http://svn.boost.org/svn/boost/sandbox/boost/extension/ repos --native-eol CRLF $ git diff repos repos2 > fileWithReadableDiff.diff
一旦你有源码树,例如
diff -ENwbur repos1/ repos2/
更好
diff -ENwbur repos1/ repos2/ | kompare -o -
并在一个很好的gui工具中有一个裂缝:)
- -Ewb忽略大部分空白变化
- -N检测新文件
- 统一
- -rrecursion
您的url不在同一个存储库中,所以您无法使用svn diff
命令执行此操作。
svn: 'http://svn.boost.org/svn/boost/sandbox/boost/extension' isn't in the same repository as 'http://cloudobserver.googlecode.com/svn'
另一种方法是使用svn export
导出每个仓库,然后使用diff命令比较您导出的两个目录。
// Export repositories svn export http://svn.boost.org/svn/boost/sandbox/boost/extension/ repos1 svn export http://cloudobserver.googlecode.com/svn/branches/v0.4/Boost.Extension.Tutorial/libs/boost/extension/ repos2 // Compare exported directories diff repos1 repos2 > file.diff