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


120

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

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


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

Ответы:


171

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

svn diff -r 8979:11390 http://svn.collab.net/repos/svn/trunk/fSupplierModel.php

3
Если вам нужен красивый вывод, установите colordiff и добавьте `| colordiff` до конца приведенной выше команды, чтобы пропустить все через нее.
Уильям Террелл

56

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

svn diff -r 8979:11390


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

svn diff -r PREV:HEAD

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


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

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


2
установка HEAD: PREV показалась мне более понятной в выводе diff, возможно, поможет другим
Fonix

@Fonix Вы придерживаетесь парадигмы «чем другая фиксация отличается от моего текущего состояния»? Если да, то согласен. Я обычно думаю о коммитах хронологических изменений, поэтому изменения, внесенные в HEAD, были бы новыми / добавленными изменениями из PREV, что является парадигмой, в которой я обычно думаю. Есть случаи и аргументы, которые следует привести в пользу любой парадигмы.
ahnbizcad 05
Используя наш сайт, вы подтверждаете, что прочитали и поняли нашу Политику в отношении файлов cookie и Политику конфиденциальности.
Licensed under cc by-sa 3.0 with attribution required.