0

我想尝试构建类似于 mercurial 客户端的东西。我搜索了一个官方 API,我发现这个页面https://www.mercurial-scm.org/wiki/MercurialApi描述了一个 API,但非常不鼓励人们依赖它。此外,上面的页面在某些地方指出

对于绝大多数第三方代码,最好的方法是使用 Mercurial 已发布、文档化且稳定的 API:命令行界面。

那么最好的方法是解析各种 mercurial 命令的输出吗?我不害怕做这样的事情,但让我烦恼的是这些命令的输出在未来会发生轻微的变化,可能会破坏我的代码。

是否有其他方法,或者您只依赖 CLI,如果它发生变化,您只需适应?

4

2 回答 2

1

一个中间选项是使用命令 server,它使用命令行 API,但避免了一些天真的包装会导致的问题。

有各种各样的客户。hglib 是一个 Python 实现,JavaHg 是一个 Java 库。我相信 JavaHg 还具有高级功能,可以为您进行输出解析和交互。

于 2013-06-22T11:07:24.000 回答
1

只需依靠 CLI。此外,您可以将特定版本的 hg 与您的客户端一起打包,以便您可以控制正在使用的版本。但是,在这样做之前,您应该调查其对许可证的影响。从https://www.mercurial-scm.org/wiki/License开始

于 2013-06-22T05:26:26.890 回答