Запустите команду hg log из java в существующей ветке - PullRequest
0 голосов
/ 28 июня 2018

Я пытаюсь использовать JavaHg для запуска некоторых команд hg из Java.

У меня уже есть рабочий каталог hg.

:pwd
/Users/theodore/Work/proj1
:hg identify -b
PROJ1_FEATUREX_BRANCH

Я хочу подключиться к этому рабочему каталогу с помощью JavaHg и запустить команду hg log.

Вот как далеко я дошел:

public static void main(String[] args) {
    RepositoryConfiguration conf = new RepositoryConfiguration();
    conf.setHgBin("/usr/local/bin/hg"); //Path to HG executable

    Repository repo = Repository.create(conf, new File("/Users/theodore/Work/proj1"));


    LogCommand log = LogCommand.on(repo);
    List<Changeset> changesets = log.execute();

    System.out.println(changesets);
    for(int i=0;i<changesets.size();i++) {
        Changeset cs = changesets.get(i);
        System.out.println( cs.getUser());
        System.out.println( cs.getMessage());
        System.out.println( cs.getAddedFiles() );
        System.out.println( cs.getModifiedFiles() );
    }

    repo.close();
}

Но приведенный выше код пытается каждый раз создавать новый репозиторий в этой папке.

Итак, это не с этой ошибкой:

Exception in thread "main" java.lang.RuntimeException: abort: repository /Users/theodore-3428/eclipse-workspace/hgviewer/~/DISKS/Work/CODE/HG/sdplive already exists!

1 Ответ

0 голосов
/ 28 июня 2018

Проверьте исходный код для класса репозитория . Вам нужно использовать Repository.open(RepositoryConfiguration, File) вместо Repository.create(RepositoryConfiguration, File), поэтому создайте объект репо следующим образом:

Repository repo = Repository.open(conf, new File("/Users/theodore/Work/proj1"));
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...