在后台获取所有 Git 存储库

在后台获取所有 Git 存储库

我正在考虑设置一个 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

(但在一行中)。

相关内容