Нигде не могу найти информации, как скопировать вовне файлы измененные между двумя определенными коммитами.
То, что у меня получается на выходе должно содержать только файлы измененные между первым и последним коммитом, причем целиком, а не в виде патчей.
Единственный пока вариант - коммитить только раз и парсить вывод hg status, но это как-то криво.
Вопрос по Mercurial
Модератор: Модераторы разделов
-
- Сообщения: 365
- ОС: openSuse 12.3
-
- Сообщения: 365
- ОС: openSuse 12.3
Re: Вопрос по Mercurial
Как-то через .опу, но вот вариант:
Запускаем скрипт:
работаем.........
Получаем список изменившихся файлов:
файл multiline (в директории со скриптом):
Запускаем скрипт:
#! /bin/sh
playground = ~/AW/w/test/
skin = xxx
cd $playground
cp -R original $skin
cd $skin
hg init #создали репозиторий
hg add #добавили в него все файлы
hg ci -m "Clean" #закоммитили изменения в первую ревизию
работаем.........
Получаем список изменившихся файлов:
#! /bin/sh
playground = ~/AW/w/test/
skin = xxx
repo = ~/AW/p/templates/
cp multiline $playground/$skin
cd $playground/$skin
hg ci -A -m "Modified" #закоммитили изменения в новую ревизию
hg log -r1 --style multiline >> changes #получили изменившиеся файлы !!!!r1 - ВТОРАЯ РЕВИЗИЯ... при последующих коммитах сменить номер
rm multiline
exec<changes;
while read line
do
if [ -f $repo/$skin/$line ]; then
mkdir -p $repo/$skin/$line
rmdir $repo/$skin/$line
cp $line $repo/$skin/$line
else
echo $repo/$skin/$line
fi
done
rm changes
echo "done."
файл multiline (в директории со скриптом):
file = " {file}\n"
-
- Сообщения: 243
- ОС: Win7/Ubuntu 11.10
Re: Вопрос по Mercurial
Код: Выделить всё
hg st --rev xxx:yyy
показывает какие файлы изменялись/удалялись/добавлялись между ревизиями xxx и yyy, ну а дальше уже выбираете что из них нужно, вытаскиваете из репозитория и копируете
Спасибо сказали: