Cron

在後台獲取所有 Git 儲存庫

  • September 29, 2016

我正在考慮設置一個 cronjob 以每隔一段時間獲取我所有的儲存庫,以便在我離線時準備好目前狀態。類似於以下內容(包裝以提高可讀性):

find $HOME -name .git -type d -printf "%h\0" |
 parallel --gnu -0 --delay 0.2 --jobs 100 --progress \
 'cd {}; git fetch --all --quiet'

我真的不在乎如果 fetch 失敗會發生什麼——下一次它可能會成功。也許可以記錄錯誤輸出。我的問題是:

  • 如果後台程序在我送出時提取到 Git 儲存庫怎麼辦?
  • 您能否推薦其他開關以parallel使其真正具有故障安全性?

兩年來,我一直在後台獲取本地 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

(但在一行中)。

引用自:https://unix.stackexchange.com/questions/131089