Создать «патч» между версиями?

19

Кажется, что функциональность «патча» SVN не совсем то, что я хочу. Я действительно хочу создать разницу между версиями. Таким образом, я бы выбрал rev1 и rev 2 и в итоге был папкой, содержащей все файлы, которые были изменены или добавлены между этими версиями.

Можно ли это сделать с помощью Tortoise SVN или простого svn?

    
задан Josh M. 24.01.2014 в 01:49
источник
  • как насчет файлов, которые были удалены между двумя версиями? –  Gab 05.07.2016 в 02:42

3 ответа

17

Это может быть достигнуто в самой черепахе SVN. Щелкните правой кнопкой мыши на ветке (папке), откуда вы хотите создать патч & gt; & gt; Show Log & gt; Выберите Все версии, для которых вам нужно создать патч & gt; & gt; & gt; Щелкните правой кнопкой мыши и выберите Compare revisions & gt; & gt; Это покажет измененные файлы & gt; & gt; & gt; Выберите все файлы & gt; & gt; & gt; Щелкните правой кнопкой мыши и выберите Export Revision To & gt; & gt; Дайте какой-либо путь в вашей машине & gt; & gt; Файлы будут экспортированы в соответствующую структуру папок.

В качестве альтернативы вы можете добиться этого с помощью скриптов. Для этого обратитесь к следующей ссылке:

Ссылка

    
ответ дан Dipu H 24.01.2014 в 07:11
источник
  • Это именно то, что я хочу - спасибо! –  Josh M. 24.01.2014 в 15:57
  • Или вместо Export Revision To вы можете выбрать «Показать различия как унифицированный diff» для создания файла патча. –  Isa A 08.02.2016 в 07:50
24

В командной строке вы можете сделать это следующим образом.

Все файлы в папке

Создайте патч в своей домашней папке, содержащий все изменения между версиями 123 и 124 из всех измененных файлов в папке «my_project»:

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

Один конкретный файл

Создайте патч в своей домашней папке, содержащий все изменения между версиями 123 и 124 только из одного файла, имя «my_project.php»:

svn diff -r123:124 path/to/my_project/my_project.php > ~/my_project_changes_123_124.patch
    
ответ дан batigolix 13.08.2014 в 11:49
источник
  • Я не хочу «патч-файл», я хотел, чтобы необработанные файлы изменялись между версиями. Принятый ответ решил мою проблему. Благодарю. –  Josh M. 13.08.2014 в 18:33
  • Чтобы сделать патч между текущей версией и старой версией 116615, вы можете: svn diff -r 116615 {svn-branch-url}> file.diff –  eloone 18.07.2016 в 17:36
2

Ум ... как насчет svn diff ? Просто передайте ему нужные изменения.

Ссылка

В TortoiseSVN, если вы выделите изменения, которые вы хотите в диалоговом окне «показать журнал», есть даже элемент контекстного меню, чтобы отображать изменения как diff, которые вы затем можете сохранить где-то.

    
ответ дан Ben 24.01.2014 в 05:11
источник
  • Мне не нужен файл «patch», я хотел, чтобы необработанные файлы изменялись между версиями. Принятый ответ решил мою проблему. Благодарю. –  Josh M. 13.08.2014 в 18:33
  • Ах, поэтому в «diff of files» вы действительно имели в виду «список файлов, которые изменились». Да? –  Ben 14.08.2014 в 15:19
  • Нет, фактические файлы, которые меняются. Принятый ответ справляется с этим. Благодаря! –  Josh M. 17.08.2014 в 03:39