2009-05-11 13 views

答えて

2

質問は同じではありませんが、トップの回答は状況に応じて同様に適用されます:Mercurial API for Java?

基本的には、コマンドライン機能を呼び出すだけで十分でしょう。 The official APIはPython専用です。

+0

IronPythonと統合することはできますか? –

+0

まあ、それは純粋なPythonで実行することが可能ですので、それはIronPythonと互換性があります。私はそれが(#〜P)任意の非互換性を解消する良いハックだと思います。 – Macke

4

チャドと同様に、コマンドラインを使用します。その公式のAPIです。スクリプトとプログラムがその出力を簡単に解析できるように、安定した状態に保つためにはかなりの時間を要します。下位互換性を確保し、プログラムがMercurialを使いやすくする方法については、compatibility rulesを参照してください。

安定したコマンドラインAPIのため、人々はラップトップライブラリをその上に書くことができます。 .Netの場合は、Lasse KarlsenのMercurial.Netと一緒に行きます。

6

私は、Mercurialコマンドラインクライアント用の.NET 4.0でラッパークラスライブラリを作成し始めました。まだ何かのために使用するのは時期尚早ですが、あなたはそれを見守りたいかもしれません。うまくいけば、それは私だけよりも多くの人々にとって有用であることが証明されます。

コードはここで、ビットバケットにオープンソースとしてリリースされています

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

現時点では、基本的なログ検索を行うことができます。 revsetsをspecyingための完全な構文のサポートは場所ではありませんが、同じようなことを行うことができます。

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; 

私はあなたがコミットすることができるように、更新、プッシュ、入ってくる確認し、プルすべての組み込みコマンドをサポートすることを計画し、発信、クローンなど