Как мне вывести разницу между двумя конкретными ревизиями в Subversion?

120

Я использую Subversion через интерфейс командной строки Linux.

Я хочу увидеть разницу между ревизиями 11390 и 8979 определенного файла, вызываемого fSupplierModel.phpв моем терминале. Как я могу это сделать?

allen213
источник
Добавьте сюда, как применить его обратно: stackoverflow.com/questions/10333712/...
Vadzim

Ответы:

171

Смотрите svn diffв инструкции:

svn diff -r 8979:11390 http://svn.collab.net/repos/svn/trunk/fSupplierModel.php
RedFilter
источник
3
Если вам нужен красивый вывод, установите colordiff и добавьте `| colordiff` до конца приведенной выше команды, чтобы пропустить все через нее.
Уильям Террелл
56

Чтобы сравнить версии целиком, достаточно:

svn diff -r 8979:11390


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

svn diff -r PREV:HEAD

(Обратите внимание: если ничего не указано впоследствии, сравниваются все файлы в указанных ревизиях.)


Вы можете сравнить конкретный файл, если потом добавите путь к файлу:

svn diff -r 8979:HEAD /path/to/my/file.php

ahnbizcad
источник
2
установка HEAD: PREV показалась мне более понятной в выводе diff, возможно, поможет другим
Fonix
@Fonix Вы придерживаетесь парадигмы «чем другая фиксация отличается от моего текущего состояния»? Если да, то согласен. Я обычно думаю о коммитах хронологических изменений, поэтому изменения, внесенные в HEAD, были бы новыми / добавленными изменениями из PREV, что является парадигмой, в которой я обычно думаю. Есть случаи и аргументы, которые следует привести в пользу любой парадигмы.
ahnbizcad 05