フォローアップです。同じフォルダにファイルを繰り返し圧縮しますが、シャサムが変わります。本質的に..
リポジトリの一部を圧縮してshaの合計を得るとき、現在のコミットのgit shaを含むファイルを追加しようとしています。
しかし、コードgit rev-parse HEAD > .gitsha
を私のzipに追加すると、shasum
私のzipは毎秒変わります。 zipコマンドは-X
ファイルタイムスタンプを無視するために使用されます。
.gitsha
次のファイルのみ試しました。
$ git rev-parse HEAD > .gitsha ; shasum .gitsha
8fa263bc885822ccba03006ea10015ef32da485c .gitsha
これは時間の経過とともに一貫して維持された。
しかし、圧縮後はもはやshasum
一貫性がなくなります。
$ git rev-parse HEAD > .gitsha ; zip -X --quiet -r test.zip .gitsha ; shasum test.zip
26cc38c624f91a1c555d503fdfdecb1ce670274f test.zip
$ git rev-parse HEAD > .gitsha ; zip -X --quiet -r test.zip .gitsha ; shasum test.zip
b03f7cb654e3aa0d25d18ead5fe1f225bc2aac9f test.zip
これは数秒間隔で行われる2回の試みです。-X
ロゴに制作時間が含まれていない可能性があると思いましたか?動作させる方法はありますか?
更新:郵便番号を削除しても役に立ちませんでした。
$ rm test.zip; git rev-parse HEAD > .gitsha ; zip -X --quiet -r test.zip .gitsha ; shasum test.zip
76c722ccf2df75fb624f9640ad948f4508dd6152 test.zip
$ rm test.zip; git rev-parse HEAD > .gitsha ; zip -X --quiet -r test.zip .gitsha ; shasum test.zip
6bd26d2bc821d9f12806fc81a8ba8c8babcc664a test.zip
ベストアンサー1
strings
zipファイルでコマンド出力を確認します。
$ strings test.zip blah.zip
.gitshab9e1355d36643fefe94da0bee81533cd8cbb04d9
.gitshaPK
QH;F
.gitshab9e1355d36643fefe94da0bee81533cd8cbb04d9
QH;F
.gitshaPK
3つの文字列の内容は同じままですが、順序が変更されました。したがって、zipファイルの一部のコンポーネントは順序に完全に依存しない可能性があります。出力を一定にする方法がわかったら、更新します。