браузер репозитория jgit - PullRequest
0 голосов
/ 18 июня 2011

Я хотел бы создать браузер git-репозитория с jgit.Но я не знаю, как получить дату последнего изменения и последнее сообщение о коммите для файла.Вот мой текущий код для браузера:

File directory = new File("/Users/sdorra/.scm/repositories/git/scm-git");
Repository repository =
  RepositoryCache.open(RepositoryCache.FileKey.lenient(directory,
    FS.DETECTED), true);

try
{
  ObjectId revId = repository.resolve(Constants.HEAD);
  DirCache cache = new DirCache(directory, FS.DETECTED);
  TreeWalk treeWalk = new TreeWalk(repository);

  treeWalk.addTree(new RevWalk(repository).parseTree(revId));
  treeWalk.addTree(new DirCacheIterator(cache));

  while (treeWalk.next())
  {
    System.out.println("---------------------------");
    System.out.append("name: ").println(treeWalk.getNameString());
    System.out.append("path: ").println(treeWalk.getPathString());

    ObjectLoader loader = repository.open(treeWalk.getObjectId(0));

    System.out.append("directory: ").println(loader.getType()
                      == Constants.OBJ_TREE);
    System.out.append("size: ").println(loader.getSize());
    // ???
    System.out.append("last modified: ").println("???");
    System.out.append("message: ").println("???");
  }
}
finally
{
  if (repository != null)
  {
    repository.close();
  }
}

Возможно ли получить последний коммит файла?

Примечание: мой репозиторий git представляет собой пустой репозиторий без рабочей копии.

1 Ответ

1 голос
/ 19 июня 2011

Вы используете API нижнего уровня JGit, почему бы вам не использовать LogCommand через пакет org.eclipse.jgit.api? Затем используйте addPath (...), call () ...

После этого вы должны получить список RevCommit для указанного пути.

...