我有多个mercurial存储库,并使用hg clone
在我们的文件服务器上创build备份。 现在我想编写一个batch file,通过在每个子目录上运行hg pull -u
来每天更新一次。
我想保留这个备份脚本尽可能通用,所以它应该更新存储在我的H:\ BACKUPS \ REPOS文件夹中的所有备份存储库。 这是我的hgbackup.bat存储在同一个文件夹中:
for /f "delims=" %%i in ('dir /ad/b') do hg pull -u
问题是:hg pull似乎只能在当前的工作目录下运行,似乎没有切换到指定目标版本库。 正如我讨厌Windows批处理脚本,我想保持我的.bat尽可能简单,避免cd'ing到不同的目录。
任何想法如何可以在不同的目录上运行hg pull -u
?
使用-R
-switch:
hg pull -u -R /path/to/repository
请参阅hg -v help pull
所有hg pull
命令行选项( -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 } }