2013-02-22 2 views
52

Возможно ли создать патч (файлы diff) для всех файлов, которые были затронуты во время фиксации ПОСЛЕ фиксации? Эти файлы будут иметь тот же номер версии, и мне нужен diff каждого файла из их предыдущей версии.SVN создать патч от совершенного кода?

ответ

48

Если вы знаете номер зафиксированной, а затем использовать

svn diff -c N path 

Где N это совершить номер и path это путь к вашей рабочей копии.

+1

Я сделал 'svn help diff', и он рассказал мне о' svn diff -old = OLD-URL [@OLDREV] - -new = NEW-URL [@NEWREV] ', который также может сравнивать две версии. –

35

Если вы знаете номер ревизии (например, 123 и 124), вы можете использовать:

svn diff -r123:124 path/to/my_project_folder > ~/my_project_changes_123_124.patch 

Смотрите также https://stackoverflow.com/a/25283101/1127583

+5

+1 для вывода перенаправления в файл – Luis

31

Альтернатива, при использовании окна + TortoiseSVN: Перейдите в каталог Исходник-, RightClick на каталог (чтобы открыть контекстное меню черепахи) и выберите «Показать журнал», выберите обе версии (ctrl-click), а затем щелкните правой кнопкой мыши и выберите «Показать различия как унифицированный diff» в контекстном меню. Появится окно с указанием различий, которое затем можно сохранить как патч.

Обновление: удерживая Shift, при нажатии «показать различия как унифицированный diff» появляется диалоговое окно, в котором вы можете выбрать параметры diff (игнорировать изменения eol, игнорировать изменения пробелов, игнорировать все пробелы). Это полезно, если, например, line-endings изменились между версиями (весь файл в противном случае отображался бы как «изменен»)