2009-05-11 7 views

Répondre

2

La question n'est pas identique, mais la meilleure réponse s'applique tout aussi bien à votre situation: Mercurial API for Java?.

Fondamentalement, je pense que vous aurez probablement besoin d'appeler les fonctions de ligne de commande. The official API semble être pour Python seulement.

+0

Peut-il intégrer avec IronPython bien? –

+0

Eh bien, il est possible de s'exécuter en python pur, donc cela pourrait être compatible avec IronPython. Je suppose que ce serait un bon moyen d'aplanir (-P) toute incompatibilité. – Macke

4

Comme le dit Chad, utilisez la ligne de commande. Ce est l'API officielle. Nous nous efforçons de le garder stable afin de faciliter l'analyse des scripts et des programmes. Voir le compatibility rules pour les détails sur la façon dont nous essayons d'assurer la rétrocompatibilité et ainsi faciliter l'utilisation des programmes par Mercurial. En raison de l'API de ligne de commande stable, les utilisateurs peuvent écrire des bibliothèques wrapper au-dessus de celui-ci. Pour. Net, je voudrais aller avec Mercurial.Net par Lasse Karlsen.

6

J'ai commencé à écrire une bibliothèque de classe wrapper dans .NET 4.0 pour le client de ligne de commande Mercurial. Il est beaucoup trop tôt pour l'utiliser pour le moment, mais vous voudrez peut-être garder un œil dessus. J'espère que cela sera utile à plus de gens que moi.

Le code est en open source sur bitbucket, ici:

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

Au moment où vous pouvez faire la récupération des journaux de base. Le support complet de syntaxe pour specying revsets est pas en place, mais vous pouvez faire des choses comme:

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; 

Je prévois soutenir toutes les commandes intégrées afin que vous puissiez commettre, mettre à jour, pousser, tirer, vérifier entrant et sortant, cloner, etc.