如何在网络上的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上用一个命令完成同样的事情呢?

更新: 所以我们得到了一个很好的答案。但它的工作方式很奇怪-在我看来,它显示所有文件(相同的文件)的所有内容都被替换为非常相同的内容(虽然我知道肯定只有3-4行代码改变了)…

更新2: 为了实现我真正需要的(dif文件只有真正改变的行,在Linux上使用git样式),执行:

$ 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检测新文件
  • - u统一
  • - r递归

您的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导出每个repos,然后使用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

相关内容

  • 没有找到相关文章

最新更新