Запустите hg pull по всем подкаталогам
Как я могу обновить несколько репозиториев Mercurial (hg) из каталога их общего родителя?
/plugins/search
/plugins/overview
/plugins/chart
Я хочу изменить ветку на одну по умолчанию и обновить их все сразу
cd /plugins/search
hg update -C default
hg pull -u
3 ответа
Решение
Запустите следующее из родительского каталога, plugins
в этом случае:
find . -type d -maxdepth 1 -exec hg update -C default -R {} \;
find . -type d -maxdepth 1 -exec hg pull -u -R {} \;
Чтобы уточнить:
find .
ищет в текущем каталоге-type d
найти каталоги, а не файлы-maxdepth 1
для максимальной глубины одного подкаталога-exec {} \;
запускает пользовательскую команду для каждой находкиhg update -C default -R {}
hg меняет ветку по умолчанию в каждом репозиторииhg pull -u -R {}
hg обновляет заголовок новой ветки, если в каждом репозитории извлекаются наборы изменений
Поиск репозиториев глубже в дереве каталогов
find . -type d -iname .hg -exec echo \; -exec hg pull -u -R {}/.. \;
Начальный -exec echo \;
только там, чтобы сохранить вывод в чистоте.
Нажмите здесь для более find
в изобилии.
Запустите эту команду в корневом каталоге проекта, который является плагином
найти . -maxdepth 1 -type d -print -execdir git --git-dir={}/.git --work-tree=$PWD / {} pull originvelop;