2012-02-24 17 views
2

コミットしたすべてのファイルを取得しようとしていますが、コミットIDを提供しています。変更されたファイルのリストをJGitのコミットから取得する

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()); 

上記のコードは、誰かがここか、この作業を取得するための任意の別の方法が間違っているかを把握することができ、動作していませんか?

答えて

0

多分このcode exampleは、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); 
+0

ない:https://github.com/eclipse/egit/tree/master/org.eclipse.egit.core/src/org/eclipse/egit/core/internal/indexdiff – VonC

+1

の源私はこの例をテストしていますが、AdaptableFileTreeIteratorはJGitクラスには含まれていません... EGitクラスですが、依存関係定義を見つけることができません。どうすればいいですか? – jomaora

+0

@jomaora true:クラス:https://github.com/eclipse/egit/blob/master/org.eclipse.egit.core/src/org/eclipse/egit/core/AdaptableFileTreeIterator.java。したがって、 'pom.xml'は' org.eclipse.egit 'をその依存関係で参照する必要があります。 – VonC

関連する問題