SVN экспортирует только измененные файлы из тегов - PullRequest
6 голосов
/ 06 января 2009

Кто-нибудь знает, как экспортировать только измененные файлы из двух тегов с помощью SVN?

Допустим, у меня есть тег 1.0, а затем исправление ошибок в багажнике. Затем я готов к выпуску нового патча, поэтому я отмечаю его 1.1. Теперь я хочу экспортировать измененные файлы между тегами 1.0 и 1.1. Это возможно?

Ответы [ 6 ]

12 голосов
/ 06 января 2009

svn diff - суммировать url / to / tag1.0 url / to / tag1.1

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

URL-адрес экспорта SVN / в / filepath

или

svn cat url / to / file> file

Если вы используете TortoiseSVN:

  • откройте браузер хранилища, перейдите к tag1.0, щелкните правой кнопкой мыши, выберите «пометить для сравнения»
  • перейдите к тегу 1.1, щелкните правой кнопкой мыши, выберите «сравнить URL»
  • в диалоговом окне сравнения файлов выберите все файлы / папки, которые изменились между тегами (Ctrl + A)
  • щелкните правой кнопкой мыши, выберите «Экспорт в ...»
9 голосов
/ 31 марта 2010

Это мое решение для TortoiseSVN:

  • Откройте браузер репо.
  • Щелкните правой кнопкой мыши tag1 и выберите «Пометить для сравнения»
  • Щелкните правой кнопкой мыши tag2 и выберите «Сравнить URL»
  • Выбрать все (Ctrl + A) в списке файлов
  • Щелкните правой кнопкой мыши и выберите «Экспортировать выделенное в ...»
  • Введите каталог назначения и нажмите ОК

Что в итоге экспортируется, так это все файлы, которые нужно записать поверх существующего экспорта, чтобы обновить его (не нужно возиться с применением diff) Полезно, например, для обновления сайтов по FTP.

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

6 голосов
/ 10 июня 2010
  1. Используя TortoiseSVN, щелкните правой кнопкой мыши свою рабочую папку и выберите «Показать журнал» в меню TortoiseSVN.

  2. Нажмите ревизию, которая была опубликована в последний раз (в этом примере # 85)

  3. Ctrl + Щелкните по ревизии HEAD (или любой ревизии, которую вы хотите выпустить, например # 178), чтобы выделить как старую, так и новую ревизию.

  4. Щелкните правой кнопкой мыши одну из выделенных ревизий и выберите «Сравнить ревизии». Откроется диалоговое окно со списком всех новых / измененных файлов.

  5. Выберите все файлы из этого списка (Ctrl + a), затем щелкните правой кнопкой мыши выделенные файлы и выберите «Экспортировать выбор в…»

Источник: http://www.verysimple.com/blog/2007/09/06/using-tortoisesvn-to-export-only-newmodified-files/

1 голос
/ 12 марта 2010

Нам тоже нужно было что-то подобное. Поэтому я написал небольшой инструмент Java.

Надеюсь, это кому-нибудь пригодится: github svn-diff-export

1 голос
/ 06 января 2009

svn diff может создавать различия, представляющие изменения между тегами. Вы можете применить этот diff с помощью утилиты исправлений.

http://svnbook.red -bean.com / о / 1,0 / re09.html

0 голосов
/ 08 июня 2012

На основании идеи Стефана:

REV=123456
URL=https://...
BASEDIR=some_dir
svn diff --summarize -c $REV $URL | while read A B; do 
    svn cat -r $REV $B > ${B##*$BASEDIR}
done
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...