2012-01-18 9 views
2

Windows IISサーバーでリモートリポジトリ(hgwebを使用)にフックを設定しようとしています。私が持っている問題は、リポジトリがhgwebの設定でUNCパスとして指定されていて、フックがcmd.exeがサポートしていないUNCパスを使ってcmd.exeを実行することです。Mercurialでフックを指定するときに使用するWindowsシェルを指定することはできますか?

実行する別のシェルを指定することはできますか?

答えて

2

私の知る限りでは、あなたは(私はLinuxホスト上であなたができると思います)の代わりに

Windows上で別のシェルを使用するためにはMercurialを言うことができない、あなたがにあなたのフックスクリプトの呼び出しを持つことができます異なるシェルを持ち、シェルが別のスクリプトまたはコマンドのセットを実行するようにしてください。面倒ですが、残念ながら、Windowsは、特に* nixベースのプラットフォームと比較して、素晴らしいスクリプトサポートを持っていることは知られていません。その後、

+0

また、Pythonフック –

+0

@jkとして書くこともできます。これは正解です。私のほうは回避策です。 – cdeszaq

+0

okだが、別のプログラム/スクリプトを実行する外部フックも完全に有効だと思う。 –

2

Mercurialのhooks can be defined two ways、シェルフックとして

  1. (プロセス・フック中)(外部フック)のpythonフックとして

あなたはPythonのフックをする、それを変更した場合、あなたは明らかに物事を行うために利用できるpythonの完全な力を持っています。もちろん、任意の言語でプログラムを書くことができず、外部のフックから実行することはできません。

+1

インプロセスPythonフックを使用する利点は、それがクロスプラットフォームであることです。したがって、Windows以外のプラットフォームに切り替えると、フックスクリプトを書き直す必要はありません。 – cdeszaq

+0

問題は外部フックでは、Mercurialがcmd.exeから起動しているようです。少なくとも、 "hg update"(リモートのrepoを受信フックで更新するため)を呼び出そうとすると、cmd.exeが実行されます。 –

+1

@LeeAtkinson - それは外部のcmdプロセスでは実行されず、hg自体と同じ内部プロセスで実行されるため、Pythonフックを使用します。 – cdeszaq

関連する問題