it-roy-ru.com

СВН филиал сравнить

Как сравнить одну ветку с другой? Я хочу сравнить ветку с последней ревизией в багажнике.

40
tekumara

Вы можете начать с:

svn diff http://REPOS/trunk http://REPOS/branches/B

(Где http://REPOS - ваш путь к хранилищу, включая родителей trunk и branches.)

Это напечатает большое количество текста, включая все текстовые изменения, но не двоичные изменения, за исключением того, чтобы сказать, где и когда они произошли.

61
Edmund

Если вы просто хотите узнать, какие файлы отличаются, и не хотите видеть все содержимое, используйте:

svn diff ^/trunk ^/branches/dev --summarize

(Это сравнивает ствол и ветку разработчика)

13
cchamberlain

Я обычно проверяю две ветви (или ветку и ствол) в каталогах . Затем я использую графический инструмент, такой как Kompare или аналогичный (в зависимости от ваших предпочтений, операционной системы, ...) . Это действительно полезно для меня, когда мне нужно выполнить сложные слияния. 

4
CMorgan

Поскольку отсутствие репутации не позволит мне добавить это как комментарий к существующему ответу, я должен добавить его как отдельный.

Полезная опция для svn diff для меня была --ignore-properties. Мои две ветви закончились одинаковым кодом, но с разными историями слияния.

Использование --ignore-properties позволило мне доказать себе, что это так, не разбираясь с большим количеством изменений свойства "svn: mergeinfo".

3
Michael Firth

Вот документация для команды svn diff.

1
Michael Hackner

Спасибо за информацию, ребята, я хотел бы добавить что-то, чтобы улучшить читаемость результатов сравнения. Если вы использовали: Svn diff svn: // url: 9090/branch/PRD_0002 svn: // url: 9090/branch/TST_0003 > svn_diff_filename.txt

Вы можете использовать: Findstr "Индекс:" C:\path\svn_diff_filename.txt> svn_diff_file_list.txt

Это принесет вам читаемый список файлов, которые имеют какие-либо различия. 

1
Kra.

Вот сообщение от Мюррея Камминга , которое описывает неочевидный процесс:

  • Узнайте номера ревизий: вам нужно знать номера ревизий последних версий в каждой из ветвей. Похоже, что svn log - единственный способ сделать это.
  • перейдите в один из каталогов филиала, например, в транк.
  • Укажите номера ревизий для команды svn diff: svn diff -r123:145
0
Stef

Для различий между двумя ревизиями ветки:

svn diff -r rLATEST:rOLD

Используйте svn log, чтобы получить разные ревизии. Использование может ограничить количество ревизий в журнале с помощью svn log -l 5. будут показаны только последние 5 ревизий.

0
arush436