2017-12-07 10 views
0

現在のリポジトリのgit sha1を生成しようとしています。 gitコマンドのセットを使用して生成できる最後のコミットsha1は望んでいません。次のコミットで使用されるsha1が必要です(ファイルが変更されていない場合は明らかです)。現在のリポジトリのgit sha1を生成するには

sha1リポジトリの定義を含むヘッダーファイルを生成したいと考えています。これにより、相対的なgit commitおよびviceversaと実行可能ファイルをマッチングさせることができます。

問題は、すべての実行可能ファイルが(特に開発段階で)安定したコミットで作成されるとは限りません。私は両方を含めることを選択する。このため

: - 最後SHA1 をコミット - 現在のリポジトリSHA1

一致した場合には、現在の実行可能ファイルが安定したコミットを使用して作成されることを意味します。それ以外の場合、実行可能ファイルの開始コミットが何であるかを知ることができます。

誰かが私を助けることができますか?

+0

コミットオブジェクトのコンテンツを作成し、そのチェックサムを計算します。 –

+0

しかし、ファイルが変更されていない場合、別のコミットを行う必要がありますか?チップコミットのSHAは十分に良いはずですか?ここで解決しようとしている問題はどれですか? –

+0

しかし、あなたが計算するのは、*可能なコミットシャー*です** **次のコミットシャーです。コミットが行われた時間はチェックサムに関係します。つまり、これを行うには未来を予測する必要があります。私があなたがその問題を解決したときに私に教えてください。あなたが尋ねた質問に亀裂を入れることができます。達成したいことをさらに説明してください。 –

答えて

1

https://gist.github.com/masak/2415865

私はgitの中SHA1は、著者だけでなく、リポジトリのファイルでのコミットに依存コミット(上記のリンクを使用して)見つけました。だから、私が望むものを達成することは不可能だと思う。

+1

正しいですが、それはコミットが行われた時刻にも依存しています。誰が次のコミットをコミットするのかを確実に確認できても、いつ予測できません。さらに、コメントはSHAの一部です。要するに、将来を予測する必要があります。 –

+0

ありがとうLasse。私の質問の更新をお読みください。私が必要とするものを達成するための代替手段があると思いますか? – Franconet

+0

はい、ビルドサーバーを設定します。ビルドサーバーは、ビルドしたコミットを常に正確に把握します。 –

関連する問題