2

C#.NETを使用してMercurial SCM(hg)へのフックを作成し、コミットまたは事前コミット時にカスタムC#アプリケーションを起動しようとしています。

概念実証のプロトタイプとして、カスタム.exeの場所をMercurial.iniファイルの[hooks]セクションに追加して事前コミットし、別の.exeをコミット用に追加しました。これらの.exeアプリは、予想どおり、pre-commitとcommitで開きます。

ただし、これらの実行可能ファイルは、これまでのところスタブにすぎません。彼らに私が必要なことをさせるために、彼らはコミットが発生しようとしている(または発生した)現在のディレクトリを「知っている」必要があります。Mercurial.iniは、Windowsのユーザープロファイルディレクトリにあります。たとえば、C:\ MyProjects \ TestProjectにあるHgリポジトリからコミットを実行する場合、実行可能ファイルは、作業がC:\ MyProjects\TestProjectで実行されていることを認識する必要があります。

Mercurialコマンドがローカルマシンで実行されている「フックされた」実行可能ファイルから、実行時にプログラムで見つけるにはどうすればよいですか?

4

1 に答える 1

4

本のフックの章から:

実行可能フックは常に、現在のディレクトリをリポジトリのルートディレクトリに設定して実行されます。

したがって、実行可能ファイルは、現在の作業ディレクトリをチェックして、呼び出されているリポジトリのルートディレクトリを知ることができます。

于 2012-08-10T15:24:43.777 に答える