Как я могу извлечь все измененные файлы changeset в Подвижном?

До недавнего времени мы использовали SVN для всех проектов нашей веб-студии, и существует очень удобная функция, существующая в нескольких клиентах как Подрывной и TortoiseSVN, который может извлечь все файлы, которые были изменены в определенном пересмотре.

Существует ли способ выполнить в нем Подвижный? Я не забочусь, сделано ли это через GUI или командную строку, просто очень удобно иметь ряд файлов, которые были изменены в определенном changeset.

P.S. Я, должно быть, поместил его неправильно в первый раз. Мне нужны больше, чем просто список файлов, было бы замечательно иметь все файлы, экспортируемые в некоторую другую папку.

8
задан Igor Zinov'yev 18 December 2009 в 11:54
поделиться

4 ответа

Основываясь на ответе Джерома, вы получите копии файлов , которые были изменены в версии 4:

hg archive --type files --rev 4 -I $(hg log -r 4 --template {files} | sed 's/ / -I /g') ~/changedfiles

Это помещает все файлы, которые были изменены в четвертой версии, во вновь созданный каталог с именем changedfiles в вашем домашнем каталоге.

Если вы измените его на:

hg archive --type zip --rev 4 -I $(hg log -r 4 --template {files} | sed 's/ / -I /g') ~/changedfiles.zip

, они появятся в zip-архиве.

Стоит отметить, что это работает только в том случае, если у вас нет пробелов в именах файлов. Если вы допустили такую ​​ошибку, нам нужно будет использовать вместо него hg status --print0 -r revision -r parent-of-revision , но, надеюсь, в этом нет необходимости.

Обратите внимание, что номер редакции, «4» в нашем примере, отображается дважды. Все это очень легко можно обернуть в сценарий оболочки, который будет параметризован, так что вам не придется забывать менять его в обоих местах.

11
ответ дан 5 December 2019 в 08:52
поделиться

Это дает вам список измененных файлов в версии 4:

hg log -r 4 --template {files}

Обновление: Если вы хотите, чтобы в каждой строке был один файл, вы можете использовать стиль описан в книге Hg .

7
ответ дан 5 December 2019 в 08:52
поделиться

В зависимости от вашего ned есть две команды:

  1. Чтобы получить изменения, связанные с определенной ревизией, вы можете использовать hg export :

     hg export -r 23
    

Это сгенерирует различие всех изменений (фактически отформатированный патч, готовый к применению)

  1. Чтобы получить имена всех затронутых файлов, вы можете использовать hg log :

     hg log -r 23 -v
    

Будет напечатана метаинформация для ревизии вместе с именами затронутых файлов.

1
ответ дан 5 December 2019 в 08:52
поделиться

Эта команда выводит имена всех измененных файлов в указанной ревизии:

hg export revision_num | grep ^diff | cut -f 6 -d ' '
0
ответ дан 5 December 2019 в 08:52
поделиться
Другие вопросы по тегам:

Похожие вопросы: