java - 用于 Java 的 Mercurial API?

标签 java api mercurial javahg

是否有一个简单的 API 可以从 Java 访问 Mercurial 存储库?

Netbeans 和 Eclipse 有插件,但与 Subversion 对应的插件不同,它们不使用通用的低级库,而是使用自己的包装器调用 Mercurial 二进制文件。调用二进制文件是可以的(目前),但在独立应用程序中使用这些插件似乎非常困难(在它们构建的 IDE 之外)。

还有 HgKit,但那是非常早期的。

最佳答案

一个新选项是JavaHg ,它为您提供了高级 Java API。 unit tests举一个很好的例子来说明它是如何编程的(从 JavaHg 0.1 开始):

public void commitTest() throws IOException {
    Repository repo = getTestRepository();
    writeFile("x", "abc");

    CommitCommand commit = CommitCommand.on(repo);
    StatusCommand status = StatusCommand.on(repo);

    List<StatusLine> statusLines = status.lines();
    Assert.assertEquals(1, statusLines.size());
    Assert.assertEquals(StatusLine.Type.UNKNOWN, statusLines.get(0).getType());

    AddCommand.on(repo).execute();
    statusLines = status.lines();
    Assert.assertEquals(1, statusLines.size());
    Assert.assertEquals(StatusLine.Type.ADDED, statusLines.get(0).getType());

    commit.message("Add a file").user("Martin Geisler");
    Changeset cset = commit.execute();
    Assert.assertEquals("Martin Geisler", cset.getUser());
    statusLines = status.lines();
    Assert.assertEquals(0, statusLines.size());
}

它与 Mercurial command server 交互存在于版本 1.9 及更高版本中。这意味着将有一个持续的 Mercurial 进程接受多个命令,因此您避免了通常与启动 Mercurial 相关的启动开销。我们预计它将在即将发布的 MercurialEclipse 版本中使用。 (我是 JavaHg 的作者之一。)

关于java - 用于 Java 的 Mercurial API?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/380321/

相关文章:

java - 如何用J2SE测试android方法

java - 无法使用 Apache POI 读取 Excel

java - 在 Selenium getattribute() 中同时使用文本和位置

c# - 将 OpenXML 创建的 Excel 电子表格导出到客户端

mercurial - 崩溃和回滚后如何修复 Mercurial 存储库?

git - Mercurial 相当于 Git 的挤压 merge

java - Java 中有面板监听器吗?

javascript - 调查 Monkey API 事件

api - 从 strapi api 获取组件中图像的响应

mercurial - 本地 Mercurial 忽略文件