2016-10-19 17 views
0

Привет У меня есть простой PyQT текстовый редактор,Как интегрировать DVCS в приложении питона

По существу я хочу добавить ртутный поддержки:

я видел в различных других редакторов способность поддерживать ряд DVCS (Mercurial, GIT, Bazaar и т. Д.), И они дают пользователю возможность выполнять такие функции, как фиксация, обновление и т. Д.

Я действительно хочу знать, что/как я могу интегрировать mercurial в текстовый редактор pyQt, он ведет себя более или менее как другие причудливые редакторы.

Любые хорошие учебники/руководства о том, как получить это сделать

ответ

1

Там нет учебников вокруг этого, как правило, однако, существует три подхода:

Интерфейс командной строки

ртутными интерфейс командной строки считается стабильный. Это означает, что вы можете ожидать, что Mercurial без расширений не изменит вывод команды. Использование «-T json» для большинства команд также приведет к легко анализируемому выходу Json. Этот подход прост и довольно прост в реализации, поскольку вам нужно только позвонить в Mercurial и проанализировать json. Большинство стандартных команд, как commit, log и т.д. должны быть осуществимой с помощью этого

hglib

Mercurial предлагает hglib. Библиотека, доступная в C и Python, которая позволяет вам взаимодействовать с Mercurial через локальный протокол. Mercurial будет запущен в режиме сервера, и вы будете использовать библиотеку для взаимодействия. Этот подход также очень стабилен, обеспечивает лучшую абстракцию, но полагается на доступный сервер команд и подразумевает возможные изменения API в библиотеке. Обратите внимание, что вам также необходимо принять во внимание лицензию библиотеки, поскольку вы связываетесь с ними.

Встраивание Mercurial

процессы Python может непосредственно Mercurial возможности размещения важных нужных модули. Однако API Mercurial внутренне нестабилен и подвержен непрерывным изменениям. Этот вариант предоставляет вам максимальную гибкость, так как у вас есть доступ ко всему, в том числе низкоуровневый синтаксический анализ данных, раскрытие скрытых функций, таких как маркеры обоняния. Недостатки: 1. вы должны знать, что делать, иначе вы можете повредить репозиторий 2. api все время меняется 3. вы подпадаете под действие лицензии GPL.