我正在考虑设置一个 cronjob 来每隔一段时间获取我的所有存储库,以便在我离线时准备好当前状态。类似于以下内容(为了更好的可读性而包装):
find $HOME -name .git -type d -printf "%h\0" |
parallel --gnu -0 --delay 0.2 --jobs 100 --progress \
'cd {}; git fetch --all --quiet'
我并不关心如果获取失败会发生什么——下次可能会成功。也许可以记录错误输出。我的问题是:
- 如果我提交时后台进程提取到 Git 存储库会怎样?
- 您能推荐其他开关来
parallel
使其真正安全吗?
答案1
两年来我一直在后台获取本地 Git 存储库,没有任何问题的迹象。目前,crontab 包含类似的内容
savelog -n -c 400 ~/log/git-fetch.log
find ~/git -type d -execdir [ -d '{}/.git' ] \; -print -prune |
parallel --gnu --keep-order \
"date; echo {}; cd {}; git fetch --all --verbose" \
>> ~/log/git-fetch.log 2>&1
(但在一行中)。