我想尝试构建类似于mercurial客户端的东西。我搜索了一个官方API,我找到的是这个页面https://www.mercurial-scm.org/wiki/MercurialApi,它描述了一个API,但却极力阻止人们依赖它。此外,上面的页面在某些地方陈述
对于绝大多数第三方代码,最好的方法是使用 Mercurial发布,记录并稳定的API:命令行 接口
那么解析各种mercurial命令的输出的最佳方法是什么?我并不害怕做这样的事情,但让我感到困扰的是,这些命令的输出在未来会稍微改变,这可能会破坏我的代码。
是否有其他方法,或者您只是依赖于CLI,如果它发生了变化,您只需适应?
答案 0 :(得分:1)
只需依赖CLI。此外,您可以将特定版本的hg打包到您的客户端,以便您可以控制您正在使用的版本。但是,在执行此操作之前,您应该调查其许可证含义。从https://www.mercurial-scm.org/wiki/License
开始答案 1 :(得分:1)
中间选项是使用command server,它使用命令行API,但避免了一些天真的包装会导致的问题。
这有各种各样的客户; hglib是一个Python实现,JavaHg是一个Java库。我相信JavaHg还具有为您进行输出解析和交互的高级功能。