适用于.NET的Mercurial API

时间:2009-05-11 19:51:13

标签: .net api mercurial

我想为mercurial创建一个.NET客户端。没什么好看的,只是基本的东西。

3 个答案:

答案 0 :(得分:6)

我已经开始在.NET 4.0中为Mercurial命令行客户端编写一个包装类库。现在用它还为时尚早,但你可能想要留意它。希望它对更多人有用而不仅仅是我。

代码在bitbucket上作为开源发布,在这里:

http://bitbucket.org/lassevk/mercurial.net

目前您可以进行基本的日志检索。指定revsets的完整语法支持不到位,但您可以执行以下操作:

var repo = new Repository(@"c:\dev\some\project\repo");
var log = repo.Log(verbose: true, set: RevisionSet.FromRevision(10)); // 10:tip

var changesByMeThatModifiesIgnoreFile =
    from changeset in log
    where changeset.AuthorName == "Lasse V. Karlsen"
       && changeset.PathActions.Any(pa =>
           pa.Path == ".hgignore" &&
           pa.Action == PathActionType.Modify)
    select changeset;

我计划支持所有内置命令,以便您可以提交,更新,推送,拉取,检查传入和传出,克隆等。

答案 1 :(得分:4)

像Chad所说,使用命令行。 官方API。我们竭尽全力保持稳定,以便脚本和程序轻松解析其输出。有关我们如何确保向后兼容性的详细信息,请参阅compatibility rules,从而使程序可以轻松使用Mercurial。

由于命令行API稳定,人们可以在其上编写包装器库。对于.Net,我会选择Lasse Karlsen的Mercurial.Net

答案 2 :(得分:2)

问题不尽相同,但最佳答案也适用于您的情况:Mercurial API for Java?

基本上我认为你可能只需要调用命令行函数。 The official API似乎只适用于Python。