У меня есть репозиторий верхнего уровня, где у меня есть несколько командных файлов и текстовый файл, содержащий все репозитории.
т.е. repolist.txt
Repo1
# Comment
Folder\Repo2
Repo3
и командный файл hgrpull.bat выглядит так:
REM First pull top level repository to get updated repolist etc
hg pull --update --quiet
REM Find path to server repository
FOR /F %%x IN ('hg showconfig paths.default') DO SET HGSERVER=%%x
REM Now pull or clone each repository
FOR /F "delims=; eol=#" %%x IN (repolist.txt) DO (
If EXIST "%%x\.hg" (
ECHO Pull %%x
hg pull --update --quiet --repository "%%x"
) ELSE (
ECHO Clone %%x
IF NOT EXIST "%%x" MKDIR "%%x"
hg clone --pull "%HGSERVER%\%%x" "%%x"
)
)
Я также получил несколько командных файлов для выполнения действий со всеми хранилищами. (статус / входящий / исходящий и т. д.). Все они основаны на следующем hgr.bat:
FOR /F "delims=; eol=#" %%x IN (repolist.txt) DO (
ECHO ** %%x
hg %1 --repository "%%x" %2 %3 %4 %5 %6
)
Извлечь / клонировать все репозитории: hgrpull
Проверка статуса во всех репозиториях: hgr st -mard