【问题标题】:How to integrate DVCS in a python application如何在 python 应用程序中集成 DVCS
【发布时间】:2016-10-19 17:18:48
【问题描述】:
您好,我有一个简单的 pyQt 文本编辑器,
基本上我想添加 mercurial 支持
我在其他各种编辑器中看到了支持许多 DVCS(Mercurial、GIT、Bazaar 等)的能力,它们使用户能够执行提交、更新等功能
我真的很想知道我可以在我的 pyQt 文本编辑器中集成什么/如何集成 mercurial,以便它的行为或多或少像其他花哨的编辑器。
关于如何完成这项工作的任何好的教程/指南
【问题讨论】:
标签:
python
windows
mercurial
pyqt4
dvcs
【解决方案1】:
没有关于这方面的教程,但通常有三种方法:
命令行界面
Mercurials 命令行界面被认为是稳定的。这意味着您可以期望没有扩展的 Mercurial 不会更改命令的输出。对大多数命令使用“-T json”也会产生易于解析的 Json 输出。这种方法很健壮,而且很容易实现,因为您只需要调用 Mercurial 并解析 json。大多数标准命令,如commit、log 等都应该可以使用它来实现
hglib
Mercurial 正在提供 hglib。 C 和 Python 中提供的库,它允许您通过本地协议与 Mercurial 交互。 Mercurial 将以服务器模式启动,您可以使用库进行交互。这种方法也非常稳定,提供了更好的抽象,但依赖于可用的命令服务器,并暗示库中潜在的 API 更改。请注意,在链接库时,您还必须考虑到库的许可。
嵌入 Mercurial
Python 进程可以通过重要的正确模块直接嵌入 Mercurial。然而,Mercurial API 内部不稳定,会不断变化。此选项为您提供最大的灵活性,因为您可以访问所有内容,包括数据结构的低级解析,公开隐藏功能(如过时标记)。缺点是:1. 您必须知道该怎么做,否则可能会损坏存储库 2. api 一直在变化 3. 您受 GPL 许可的约束。