私はGitのための事前受信フックを書いています。これは、複数のコミットがプッシュされ、いずれか1つが失敗した場合、プッシュ全体が失敗するものです。それは私が望むものです。どのようにpre-receiveフックでコミットされているすべてのハッシュを取得するには?
私の問題は、すべてのコミットのすべてのハッシュが渡されるわけではないということです。最も最近のコミットハッシュのみが渡されます。
2のコミットは、レポにプッシュされている:
私はのいずれかの場合にはコミットが通過したくないので、私は、各参照のために呼び出されupdateフックを使用することはできませんCommit 1 - 4b5w<br>
Commit 2 - 6gh7 -------------> passed in to pre-receive hook,
but I want the previous hash too.
それらは失敗する、例えばコミット1とコミット2の失敗は受け入れられません。なぜなら、コミット2が失敗したときに何らかの形でロールバックしなければならないからです。
どのようにして、すべてのコミットからのハッシュをpre-receiveフックに渡すことができますか?
私は自分自身を蹴って、渡された古いrefを完全に忘れてしまったように思います。 – noobcoder
[jthillの回答](http://stackoverflow.com/a/39006852/1256452)は、オブジェクトを共有する複数の参照の更新を処理するので、少し上手です。元の答えのPerlスクリプトは 'master'ブランチの更新だけを見ます。もちろん、本当の問題の大半は、最初の場所でどのオブジェクトを検査するのかをいつ、どのようにして正確に定義するかで構成されています。ノートはどうですか? – torek