Получение списка измененных файлов из коммита в JGit - PullRequest
2 голосов
/ 24 февраля 2012

Я пытаюсь получить все файлы, которые фиксируются, предоставляя идентификатор фиксации.

RevCommit commit = walk.parseCommit(ObjectId.fromString(objId));
FileTreeIterator fileTreeItr = new FileTreeIterator(repository);
Tree tree = new Tree(repository);
IndexDiff indexDiff = new IndexDiff(repository, commit.getId(), fileTreeItr);
System.out.println(indexDiff.getChanged());
System.out.println(indexDiff.getAdded());

Приведенный выше код не работает, может кто-нибудь выяснить, что здесь не так или каким-либо другим способом заставить это работать?

1 Ответ

0 голосов
/ 24 февраля 2012

Может быть, этот пример кода может помочь при использовании IndexDiff.

IResource project = session.getLaunchedProject().getResource();
File gitDir = new File(project.getLocation().toFile().toString() + "/.git");
System.out.println("gitDir:" + gitDir);
Repository repository = new FileRepository(gitDir);

File workTree = repository.getWorkTree();
IWorkspaceRoot workspaceRoot = ResourcesPlugin.getWorkspace().getRoot();
WorkingTreeIterator fileTreeIterator =
new AdaptableFileTreeIterator(workTree, workspaceRoot);

IndexDiff indexDiff = new IndexDiff(repository, Constants.HEAD, fileTreeIterator);
...