2011-06-09 38 views
16

您好我正在尋找如何在.NET語言編寫的Mercurial鉤子鉤的例子,包括如何設置.hg/HGR水銀,編寫使用.NET API

我已經使用了「Mercurial.Net 「Api,但Windows環境變量中的信息有點受限,並且在標準錯誤通道上返回錯誤消息似乎不起作用。我想我做錯了什麼。

我使用.NET中有很多原因,其中之一是使用WFC

+2

嗨,如果你在談論我的開源項目http://mercurialnet.codeplex.com,我很樂意提供幫助,如果可以的話。不幸的是,我今天晚些時候(大約12個小時)才參加會議,所以到那時我才能訪問我的電腦。不幸的是,我還沒有創建任何鉤子,所以我需要閱讀如何做到這一點。如有必要,我可以在庫中添加更改,以便更容易製作鉤子。 – 2011-06-10 05:08:08

+2

嗨。在Mercurial.Net中實現hook支持的工作已經開始,直到我完成後,我不會在這裏發佈一個真正的「答案」,但您可以按照https://lassevk.kilnhg.com/Repo/上的工作進行操作。 MercurialNet/dev/hooks和權衡http://mercurialnet.codeplex.com/discussions/261283 – 2011-06-14 09:11:51

回答

9

編輯Mercurial.Net新版本使得編寫掛鉤更容易的其他系統連接起來,看的見http://mercurialnet.codeplex.com/discussions/261283

  1. 創建一個「Windows應用程序」項目(例如MyHook)。
  2. 添加對「Mercurial.Net」的引用(您可以使用NuGet使其更容易http://nuget.org/List/Packages/Mercurial.Net)。
  3. 在你的主要方法中,做任何你想要的處理(例如檢索日誌,然後檢索上次提交的信息 - 例如http://mercurialnet.codeplex.com/discussions/261283)。您可以添加一個MessageBox.Show(message)來檢查確實執行了掛鉤。
  4. 編譯您的項目。
  5. 掛鉤添加到您的.hg/hgrc文件(以下是將每個後執行提交,請參閱https://www.mercurial-scm.org/wiki/Hook更多信息,以獲取更多信息鉤子的例子):

    [hooks] 
    commit.hook1 = "C:\path to file\MyHook.exe" 
    

下一次你提交你的鉤子應該被執行。

檢查http://docs.vkarlsen.no/Mercurial.Net/瞭解Mercurial.Net的類。