Сравнение ветвей SVN
-
21-09-2019 - |
Вопрос
Как сравнить одну ветку с другой?Я хочу сравнить ветку с последней ревизией в багажнике.
Решение
Вы можете начать с:
svn diff http://REPOS/trunk http://REPOS/branches/B
(Где http://REPOS
это ваш путь к репозиторию, включая родителей trunk
и branches
.)
При этом будет напечатано большое количество текста, включая все текстовые изменения, но не двоичные изменения, за исключением указания того, где и когда они произошли.
Другие советы
Если вы просто ищете высокий уровень того, какие файлы отличаются, и не хотите видеть все содержимое, используйте:
svn diff ^/trunk ^/branches/dev --summarize
(Это сравнивает магистраль и ветку разработки)
Обычно я проверяю две ветви (или ветвь и ствол) в каталогах.Затем я использую графический инструмент, такой как Kompare или аналогичный (в зависимости от ваших предпочтений, операционной системы и т. д.).Это очень полезно для меня, когда мне нужно выполнить сложные слияния.
Поскольку отсутствие репутации не позволяет мне добавить это как комментарий к существующему ответу, мне приходится добавить его как отдельный комментарий.
Полезный вариант для svn diff
для меня было --ignore-properties
.Мои две ветки оказались идентичными по коду, но с разной историей слияний.
С использованием --ignore-properties
позволил мне доказать себе, что это так, без необходимости вникать в большое количество изменений свойств «svn:mergeinfo».
Вот документация для svn diff
команда.
Спасибо за информацию, ребята, я бы добавил что-нибудь, чтобы улучшить читаемость результатов различий. Если вы использовали:svn diff svn://url:9090/branches/PRD_0002 svn://url:9090/branches/TST_0003 >svn_diff_filename.txt
Вы можете использовать:findstr "Индекс:" C:\path\svn_diff_filename.txt >svn_diff_file_list.txt
Это даст вам читаемый список файлов, которые имеют какие-либо различия.
Вот сообщение от Мюррея Камминга который описывает неочевидный процесс:
- Узнайте номера редакций:Вам необходимо знать номера ревизий последних версий в каждой из веток.Похоже, что журнал svn — единственный способ сделать это.
- cd в один из каталогов ветки, например, в ствол.
- Укажите номера ревизий команде svn diff:
svn diff -r123:145
Чтобы отличить две версии ветки:
svn diff -r rLATEST:rOLD
Использовать svn log
чтобы получить разные версии.Использование может ограничить количество ревизий в журнале, используя svn log -l 5
.будут показаны только последние 5 редакций.