2

ここでgit説明する方法を使用して、コミットデータをLaTexドキュメントに含める方法を実装しようとしています。

フックは次のようになります。

$ cat post-commit 
#!/bin/sh

cd ../..

git log -1 --format="format:\
                \\gdef\\GITAbrHash{%h}\
                \\gdef\\GITHash{%H}\
                \\gdef\\GITAuthorDate{%ad}\
                \\gdef\\GITAuthorName{%an}" >> git.tex

そうするとchmod a+x post-commit./post-commitファイルが適切に生成されます。しかし、実際にコミットすると、フックは実行されません。何が問題なのですか?

4

2 に答える 2

3

問題はcd ../..、ソースに移動することだと思います。

を に置き換えてみてcd ../..くださいpushd ../..。を呼び出した後git log、ディレクトリを復元しますpopd


これとは別に:コミット後のフックがここで必要なものであるとは思えません:コミットが成功した場合、git.tex後で変更され、ファイルが変更されます。

pre-commit フックの方が適しています。コミットが行われる直前に、フックが呼び出され、変更git.texされ、コミットに追加されます。

別のオプションは、ファイルに汚れきれいなフィルターを設定することです ( http://git-scm.com/book/en/Customizing-Git-Git-Attributes#Keyword-Expansion )。リリースのようなことをするたびに、git.tex

git add git.tex

これにより、 のコンテンツを生成するクリーンフィルタが呼び出されgit.texます。このコンテンツはリポジトリに送信されます。ファイルがチェックアウトされると、汚れフィルターが実行されますファイルを空にするのが義務なので、

echo '' > git.tex
于 2013-02-27T13:27:52.283 に答える
0

cd ../..問題は、とにかくコードがリポジトリのルート ディレクトリで実行されるため、実行する必要がなかったことです。もう 1 つの間違いは でした。>> git.texもちろん、これは と読むべき> git.texです。

于 2013-02-28T09:57:08.470 に答える