Подтвердить что ты не робот

Mercurial API для Java?

Существует ли простой API для доступа к репозиториям Mercurial из Java?

Существуют плагины для Netbeans и Eclipse, но в отличие от их аналогов Subversion они не используют общую библиотеку нижнего уровня, но приносят свои собственные обертки для вызова двоичного кода Mercurial. Вызов двоичного кода будет в порядке (на данный момент), но очень сложно использовать эти плагины в автономных приложениях (за пределами среды IDE, для которой они были созданы).

Существует также HgKit, но это очень пред-альфа.

4b9b3361

Ответ 1

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

Ответ 2

hg4j теперь имеет больше функциональных возможностей (например, клон) и, по-видимому, находится в реальной разработке

Ответ 3

Вы посмотрели на Jython? Насколько я могу видеть здесь, это должно помочь использовать модули python mercurial из среды Java, подобно JRuby для Ruby.

Ответ 4

Плагин Maven SCM, похоже, имеет Доступен Mercurial провайдер. Однако я не знаю, насколько применим этот поставщик в вашем случае (то есть, насколько он привязан к архитектуре Maven и/или как он взаимодействует с hg).

Ответ 5

Существует также hg4j, но теперь он позволяет читать репозиторий.