下面是我遍历项目目录并从远程存储库中提取的简单shellcript。现在我遇到一个问题,当远程存储库要求输入密码并且我输入密码时,for循环停止执行,即迭代目录停止。所以我只想知道如何继续遍历目录并重复程序,即使我输入密码并拉出一个目录就完成了!??
for item in *
do
if [ -d $item ]
then
cd $item
hg pull
fi
done
答案 0 :(得分:2)
您应该从工作流程中获取密码。如果您正在使用HTTP,请使用hgrc的[auth]
部分,如果您使用的是ssh:// URL,则应使用ssh-agent。
你的循环虽然在手动输入密码之后会继续正常,但是在第一个密码之后它会在错误的目录中,因此无法进入下一个存储库。 hg拉后你需要cd ..
。或者使用类似的东西:
for repo in $(find . -type d -name .hg) ; do
hg pull --repository $(dirname $repo) pull
done
找到当前目录下的每个存储库,无论多深,并且拉动它 - 它会忽略不是存储库的目录和文件。