2016-10-19 8 views
0

Salut J'ai un simple éditeur de texte PyQt,Comment intégrer DVCS dans une application python

Essentiellement, je veux ajouter le support Mercurial

Je l'ai vu dans plusieurs autres éditeurs la capacité de soutenir un certain nombre de DVCS (Mercurial, GIT, Bazaar, etc), et ils donnent à l'utilisateur la possibilité d'effectuer des fonctions comme commit, update, etc

Je veux vraiment savoir comment intégrer Mercurial dans mon éditeur de texte pyQt il se comporte plus ou moins comme d'autres éditeurs fantaisistes.

des bons tutoriaux/guides sur la façon de réaliser ce but

Répondre

1

Il n'y a pas des tutoriels autour de cela, en général cependant, il existe trois approches:

interface de ligne de commande

commande mercuriels interface de ligne est considérée comme stable. Cela signifie que vous pouvez vous attendre à ce que Mercurial sans extensions ne modifie pas la sortie d'une commande. L'utilisation de "-T json" pour la plupart des commandes résultera également en une sortie Json facilement analysable. Cette approche est robuste et assez facile à mettre en œuvre, car il suffit d'appeler Mercurial pour analyser le retour. La plupart des commandes standard comme commit, log, etc doivent être implémentable en utilisant ce

hglib

Mercurial offre hglib. Une librairie qui est disponible en C et Python qui vous permet d'interfacer avec Mercurial via un protocole local. Mercurial sera démarré en mode serveur et vous utiliserez la bibliothèque pour interagir. Cette approche est également très stable, offre une meilleure abstraction, mais repose sur le fait que le serveur de commandes soit disponible et implique des changements d'API potentiels dans la bibliothèque. Notez que vous devez également prendre en compte la licence de la bibliothèque lorsque vous établissez des liens avec eux.

Intégration Mercurial

processus Python peut embedd Mercurial directement par les modules importants à droite. Cependant, l'API de Mercurial n'est pas stable en interne et est sujette à des changements continus. Cette option vous offre le plus de flexibilité lorsque vous avez accès à tout, y compris l'analyse de bas niveau des structures de données, l'exposition de fonctionnalités cachées telles que les marqueurs d'obsolescence. Les inconvénients sont: 1. vous devez savoir quoi faire sinon vous pourriez corrompre le dépôt 2. l'API change tout le temps 3. vous êtes soumis à la licence GPL.