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