我正在尝试使用 C# .NET 创建 Mercurial SCM (hg) 的挂钩,以在提交或预提交时启动自定义 C# 应用程序。
作为概念验证原型,我将自定义 .exe 的位置添加到 Mercurial.ini 文件的 [hooks] 部分以进行预提交,并将另一个 .exe 用于提交。这些 .exe 应用程序按预期在预提交和提交时打开。
但是,到目前为止,这些可执行文件只是存根。为了让他们做我需要的事情,他们必须“知道”提交即将发生(或已经发生)的当前目录。Mercurial.ini 位于我在 Windows 上的用户配置文件目录中。例如,当我从位于 C:\MyProjects\TestProject 的 Hg 存储库中进行提交时,可执行文件需要知道该工作正在 C:\MyProjects\TestProject 中完成。
如何在运行时以编程方式从在本地计算机上执行 Mercurial 命令的“挂钩”可执行文件中找出?