如何获得在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