2024-06-02 04:30:13 发布
网友
嗨,我有一个简单的pyQt文本编辑器
本质上,我想添加mercurial支持
我在其他各种编辑器中看到了支持许多dvc(Mercurial、GIT、Bazaar等)的能力,它们让用户能够执行提交、更新等功能
我真的很想知道我可以在pyQt文本编辑器中集成什么/如何集成mercurial,以便它的行为或多或少类似于其他高级编辑器。你知道吗
关于如何完成这项工作有什么好的教程/指南吗
这方面没有教程,但通常有三种方法:
Mercurials命令行界面被认为是稳定的。这意味着您可以期望没有扩展的Mercurial不会更改命令的输出。对大多数命令使用“-T json”也会产生易于解析的json输出。这种方法是健壮的,而且相当容易实现,因为您只需调用Mercurial并解析json即可。大多数标准命令,如commit、log等,都应该可以使用此命令实现
commit
log
Mercurial提供hglib。在C和Python中可用的库,允许您通过本地协议与Mercurial进行接口。Mercurial将在服务器模式下启动,您可以使用库进行交互。这种方法也非常稳定,提供了更好的抽象,但依赖于命令服务器的可用性,并意味着库中可能发生的API更改。请注意,在针对库进行链接时,还必须考虑库的许可证。你知道吗
Python进程可以通过正确的模块直接嵌入Mercurial。然而,Mercurial API在内部并不稳定,而且会不断变化。此选项为您提供了最大的灵活性,因为您可以访问所有内容,包括数据结构的低级解析、隐藏功能(如过时标记)的公开。缺点是:1。您必须知道该怎么做,否则可能会损坏存储库2。api一直在变化3。您必须遵守GPL许可证。你知道吗
这方面没有教程,但通常有三种方法:
命令行界面
Mercurials命令行界面被认为是稳定的。这意味着您可以期望没有扩展的Mercurial不会更改命令的输出。对大多数命令使用“-T json”也会产生易于解析的json输出。这种方法是健壮的,而且相当容易实现,因为您只需调用Mercurial并解析json即可。大多数标准命令,如
commit
、log
等,都应该可以使用此命令实现hglib公司
Mercurial提供hglib。在C和Python中可用的库,允许您通过本地协议与Mercurial进行接口。Mercurial将在服务器模式下启动,您可以使用库进行交互。这种方法也非常稳定,提供了更好的抽象,但依赖于命令服务器的可用性,并意味着库中可能发生的API更改。请注意,在针对库进行链接时,还必须考虑库的许可证。你知道吗
埋入水银
Python进程可以通过正确的模块直接嵌入Mercurial。然而,Mercurial API在内部并不稳定,而且会不断变化。此选项为您提供了最大的灵活性,因为您可以访问所有内容,包括数据结构的低级解析、隐藏功能(如过时标记)的公开。缺点是:1。您必须知道该怎么做,否则可能会损坏存储库2。api一直在变化3。您必须遵守GPL许可证。你知道吗
相关问题 更多 >
编程相关推荐