Новая опция JavaHg , которая предоставляет высокоуровневый Java API. модульные тесты дают хороший пример того, как с ним программировать (начиная с 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 , присутствующим в версии 1.9 и более поздних. Это означает, что будет существовать постоянный процесс Mercurial, который принимает несколько команд, и поэтому вы избегаете издержек запуска , обычно связанных с запуском Mercurial. Мы ожидаем, что он будет использоваться в следующей версии MercurialEclipse. (Я один из авторов JavaHg.)