Gitはプッシュを受信すると、post-receive
フックが呼び出され、そのように、<old-sha> <new-sha> <ref-name>
の行で、配信された各参照についての標準入力にデータを渡されます。ブランチが削除されると
e1f5c274e296f1c5148161f9d4e5eb43a6743e54 1eea3f51cf926c3710f8fa4a06f503041c4597f0 refs/heads/master
、<new-sha>
エントリがすべてゼロであるので、同じよう:
0:だから
6b239c481453c7fc2513b02e8aa0cd9c1ffa25cb 0000000000000000000000000000000000000000 refs/heads/foo
、あなたは次のようにロジックを使用してこれを検出(と展開をトリガーからこのブランチを防ぐ)ためにあなたのpost-receive
フックを調整することができます
#!/bin/sh -
while read OLDSHA NEWSHA REF ; do
if [ "$NEWSHA" = "0000000000000000000000000000000000000000" ]; then
# This ref has been deleted! Respond appropriately.
fi
done
1回のプッシュで複数のブランチを更新できることを覚えておいてください。適切な接頭辞で始まり、0以外のNEWSHA
を持つ配備すべきブランチのセットを蓄積したいと思うでしょう。
これは欠けていた部分でした。多くの感謝! –