私は Git リポジトリで Gitolite を実行しており、そこに Python で書かれた post-receive フックがあります。git リポジトリ ディレクトリで「git」コマンドを実行する必要があります。数行のコードがあります。
proc = subprocess.Popen(['git', 'log', '-n1'], cwd='/home/git/repos/testing.git' stdout=subprocess.PIPE, stderr=subprocess.PIPE)
proc.communicate()
新しいコミットを作成してリポジトリにプッシュした後、スクリプトが実行され、
fatal: Not a git repository: '.'
私が走れば
proc = subprocess.Popen(['pwd'], cwd='/home/git/repos/testing.git' stdout=subprocess.PIPE, stderr=subprocess.PIPE)
予想通り、gitリポジトリへの正しいパス(/home/git/repos/testing.git)が表示されます
このスクリプトを bash から手動で実行すると、正しく動作し、「git log」の正しい出力が表示されます。私が間違っていることは何ですか?