とりあえずコマンドを先に。
for branch in `git branch -r | grep -v HEAD | awk -F'/' '{print $2}'`; do git checkout $branch; git pull; done※環境によって微妙に異なるかもしれません。
経緯は以下。
とある仕事で、Jenkinsをジョブサーバ的に使っています。
ソースは各々のジョブが、 github から同一リポジトリを clone してバッチを走らせる、という感じ。
ただ、割と頻繁に github からの clone にしくってジョブがこける。。
たいていは手動でリトライしたりすればオッケーなわけだけど、ヒヤヒヤするのでどうにかしたい。
そこで、バッチのコードに変更があった時だけ、github から clone するジョブを作って、
他のジョブは、そのジョブのworkspaceをリポジトリとして参照する、という運用にしてます。
これで万事オッケー、というはずだったのですが、参照するジョブ側で master 以外のブランチを
設定すると、そんなブランチはないよ、っていうことで、clone時に同じくこける。
そもそも参照される方では master しか取ってきてないので確かに言う通り。
ということで、clone 後に全ての branch を pull することにした。
その bash ワンライナーが冒頭のもの。
これで逐次全てのブランチを pull するので、他のジョブから branch 指定で
clone されても安心、となりました。
(…なんかそもそもの指針が微妙な気がしないでもない。)
おしまい。
0 件のコメント:
コメントを投稿