2

ソース管理にMercurialを使い始めています。「中央」リポジトリにプッシュした後、自動更新を実行するようにHGRC構成ファイルを構成しました。一部のPCでは、次のエラーメッセージが表示されます。

warning: changegroup hook exited with status -1

HGRCは次のようになります。

[ui] 
username=ADMIN
verbose=true

[hooks]
changegroup = hg update >&2

後で手動で更新を実行すると、すべてが正しく機能します。

4

2 に答える 2

3

私は非常に似たような問題を抱えていました。これはついに機能します:

changegroup = cmd / c hg update

太字のcmd/cにより、cmd.exeが生成され、必要に応じてhg updateが実行されますが、cmd.exeの終了値は0になります。

長い話:

セットアップ:2008サーバーに勝ちます。
プレーンhttp経由のmercurial1.9.3hgwebdir
、その内部ネットワーク

エラー:私のエラーはおかしなことにあなたの場合のように-1
ではありませんでしたが、 「警告:changegroupフックがステータス1で終了しました」
とにかく、更新は実行されませんでした。

フックを.hgrcまたはhgweb.configのいずれかに配置できることがわかりました。問題は、あちこちで同じでした。私は最終的にそれを以下のようにhgweb.configに入れたので、すべてのリポジトリは自動コミットされます。これは、この緩いブランチを常に持つよりもはるかに優れています。自動コミットが必要だった主な理由は、vcs&buildサーバーのリポジトリが最新バージョンを保持しているため、管理タスクが簡単になることが多いためです。

[web]
push_ssl = False allow_push = *

[コレクション]
c:\ Dev \ Reps = c:\ Dev \ Reps

[ui]
debug = true

[フック]
changegroup= cmd / c hg update

于 2011-11-05T22:01:37.900 に答える
2

これは、実際にフックを実行しているユーザーに関連している可能性がありますが、正しい特権を持つユーザーではない可能性があります。

Mercurialリポジトリを管理するIISWebサーバーがありますか?

(スレッドから:)

Mercurial / IISの経験から、試してみることをお勧めします。

  • (a)単純な非HGコマンドの実行は機能しますか?の権限cmd.exeは、アウトプロセスのPythonフックに影響します。
  • (b)' python -c "import sys; sys.exit(0)"'のような単純なフックは機能しますか?
  • (c)ここまで進んだら、次のようなフックを使用して、プロセスが実行していると思われるユーザーとしてプロセスが実行されていることを確認できますか。
import win32api
username = win32api.GetUserName()
(write username to a file so you can read it)
于 2010-05-21T20:29:41.533 に答える