Работает ли HG pull только в текущем рабочем каталоге?
у меня есть несколько репозиториев mercurial и используется hg clone
для создания резервных копий на нашем файловом сервере. Теперь я хочу написать пакетный файл, который обновляет их один раз в день, запустив hg pull -u
в каждом подкаталоге.
Я хочу сохранить этот сценарий резервного копирования как можно более общим, поэтому он должен обновить все резервные репозитории, хранящиеся в моем H:BACKUPSREPOS папка. Это мой hgbackup.bat, который хранится в той же папке:
for /f "delims=" %%i in ('dir /ad/b') do hg pull -u
проблема: тяга hg кажется, что работает только с текущим рабочим каталогом, похоже, нет коммутатора для указания целевого репозитория для вытягивания. Поскольку я ненавижу пакетные сценарии Windows, я хочу сохранить свой .bat как можно проще и избегайте cd'ING в разных каталогах.
любые идеи, как я могу запустить hg pull -u
в другом каталоге?
2 ответов
использовать -R
-переключатель:
hg pull -u -R /path/to/repository
посмотреть hg -v help pull
для всех параметров командной строки hg pull
(the -v
переключатель сообщает справке включить глобальные параметры).
нашел этот вопрос немного позже из-за сценария, над которым я работал для своего собственного компьютера, и вместо пакетного сценария я сделал это в PowerShell (так как вы упомянули, что он на сервере, я предположил, что PS был доступен). Это обрабатывает репозитории Subversion и Mercurial:
$path = "c:\users\mattgwagner\Documents\Code"
foreach($fi in get-childitem $path)
{
if(test-path $path$fi\.svn)
{
"Updating " + $fi + " via Subversion..."
svn update $path$fi
}
elseif(test-path $path$fi\.hg)
{
"Updating " + $fi + " via Mercurial..."
hg pull -u -R $path$fi
}
}