Создать "патч" между версиями?
Кажется, что функциональность SVN "patch" не совсем то, что я хочу. Я действительно хочу создать разницу между версиями. Таким образом, я бы выбрал rev1 и rev 2 и в итоге был папкой, содержащей все файлы, которые были изменены или добавлены между этими версиями.
Можно ли это сделать с помощью Tortoise SVN или простого svn?
Ответы
Ответ 1
Это может быть достигнуто в самой черепахе SVN. Щелкните правой кнопкой мыши на ветке (папке), из которой вы хотите создать патч → Show Log
→ Выберите Все версии, для которых вам нужно создать патч → Щелкните правой кнопкой мыши и выберите Compare revisions
→ Это покажет измененные файлы → Выберите все файлы → Щелкните правой кнопкой мыши и выберите Export Revision To
→ Укажите любой путь на вашем компьютере → Файлы будут экспортированы в соответствующую структуру папок.
В качестве альтернативы вы можете добиться этого с помощью скриптов. Для этого обратитесь к следующей ссылке:
http://www.electrictoolbox.com/subversion-export-changed-files-cli
Ответ 2
В командной строке вы можете сделать это следующим образом.
Все файлы в папке
Создайте патч в своей домашней папке, содержащий все изменения между версиями 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
Ответ 3
Ум... как насчет svn diff
? Просто передайте ему нужные изменения.
http://svnbook.red-bean.com/en/1.7/svn.ref.svn.c.diff.html
В TortoiseSVN, если вы выделите изменения, которые вы хотите в диалоговом окне "показать журнал", есть даже элемент контекстного меню, чтобы отображать изменения как diff, которые вы затем можете сохранить где-то.