/ / Windowsマシンで受信後フックを実行するユーザーは? -git、windows-7、githooks

どのユーザーがWindowsマシンで受信後フックを実行するのですか? - git、windows-7、githooks

だから私はそれを持っています post-receive tracインストールのチケットを更新するベアリポジトリにフックします(フックは http://trac.edgewall.org/attachment/wiki/TracGit/post-receive-hook.py)。

gitリポジトリはドライブにあります G: 一方、tracデータベースは F:usertracmyproject。元のフックをカスタマイズして、パスが正しいようにしました。

TRAC_ENV = "F:\User\Trac\myproject"
GIT_PATH = "C:\Program Files (x86)\Git\bin\git.exe"

フックをサーバーにアップロードする前に、すべてが正常に機能するローカルマシンで正しい構文(バックスラッシュなど)を検証しました。

今、私はにフックをアップロードしました G:gitmyproject.githookspost-receive そして、いくつかの参照をプッシュします。しかし、これは私にエラーメッセージを与えます:

remote: Traceback (most recent call last):
remote:   File "hooks/post-receive", line 190, in <module>
remote:     env = open_environment(TRAC_ENV)
remote:   File "buildbdist.win-amd64eggtracenv.py", line 846, in open_environment
remote:   File "buildbdist.win-amd64eggtraccore.py", line 124, in __call__
remote:   File "buildbdist.win-amd64eggtracenv.py", line 283, in __init__
remote:   File "buildbdist.win-amd64eggtracenv.py", line 392, in verify
remote: trac.core.TracError: No Trac environment found at f:usertracmyproject
remote: [Errno 2] No such file or directory: "f:\user\trac\myproject\VERSION"

だから私はそれがアクセス権関連の問題だと推測し、ユーザーを実行する post-receive フックはtracディレクトリにアクセスできません。

これを克服するには: フックが正常に実行されるように、どのユーザーにtracデータベースへのアクセスを許可する必要がありますか?

回答:

回答№1は0

あなたの質問に直接答えるために、あなたは追加することができます

import getpass
print >> sys.stderr, getpass.getuser()

フックのインポートステートメントの直後。プッシュしようとすると、エラーの前にユーザー名が出力されます。

ただし、「そのようなファイルはありません」というエラーが表示されます。ディレクトリ」は、おそらくそれを意味し、存在しないファイルにアクセスしようとしています。したがって、これは権限の問題ではなく、tracがその場所に正しくインストールされていないか、tracモジュールに問題があることを意味している可能性があります。