Как получить разницу между всеми файлами внутри 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 styled diff file (как показано здесь) я попробовал git diff но это, кажется, не работает таким образом для веб-папок. Так как же сделать то же самое с одной командой на Linux?

обновление: Так что у нас был отличный ответ. Но это работает странно - мне кажется, это показывает что все файлы (одни и те же файлы) имеют все их содержимое, замененное на одно и то же содержимое (хотя я точно знаю, что было всего 3-4 строки кода, измененные вообще)...

обновление 2: Чтобы достичь того, что мне действительно нужно (dif-файл с действительно измененными строками, с 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
2 69

2 ответа:

Как только у вас есть исходные деревья, например

diff -ENwbur repos1/ repos2/ 

еще лучше

diff -ENwbur repos1/ repos2/  | kompare -o -

и испытать его в хороший инструмент :)

  • -Эн игнорировать основную часть изменения пробельных символов
  • -N обнаружение новых файлов
  • -у Единой
  • -Р рекурсия

вы адреса не находятся в одном репозитории, так что вы не можете сделать это с помощью тега .

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