ソースコードにgitのhashを埋め込んでおく

ビルドの際にgitのリビジョン(sha1ハッシュ)をソースに埋め込んでおけば、デグレードが起きた際などにソースをかんたんに復元できるだろう。gitにはrev-parseというサブコマンドがあり、これでHEADの40桁のsha1を出力できるのでpythonで取得するには以下のように書けばいい。

check_outputはコマンドの出力を返してくれる(コマンドが0以外を返すと例外)。

あとはC++ヘッダーファイルなどに書き出して、ビルドすればよい。

gitおサブモジュールを使っている場合はこれで問題ないが、他のgitで管理しているソースも取り込んでいる場合には、それらのハッシュも記録しておいたほうがいいだろう。

Leave a Reply

Your email address will not be published. Required fields are marked *

日本語が含まれない投稿は無視されますのでご注意ください。(スパム対策)