Chcę uzyskać listę zmienionych/dodanych/usuniętych plików między wersjami XXXXXX i HEAD. To, co mam tak daleko:Jak zrobić odpowiednik "git diff --name-status" z jgit?
String oldHash = "a97e5553e37a25bd1a3c99eab303145baed08dbd";
Git git = Git.open(new File("/tmp/jgit"));
Repository repository = git.getRepository();
ObjectId old = repository.resolve(oldHash);
ObjectId head = repository.resolve("HEAD");
// how do i get the trees from the obj. id?
List<<DiffEntry> diffs = git.diff().setNewTree(null).setOldTree(null).call();
for(DiffEntry diff : diffs) {
// do stuff
}
Czy to właściwa droga do tego zabrać, a jeśli tak, to w jaki sposób mogę uzyskać drzewa wymagana git.diff()?
To jest świetne pytanie, mimo że PO konkretnie pytał tylko o --name-status, ponieważ dotyczy o wszystkie pytania typu jgit.Git.diff(), dla których przykłady IMHO są skąpe, a dokumentacja interfejsu API skośna. Więc dziękuję! I dziękuję za odpowiedzi @ [Kevin Sawicki] (http://stackoverflow.com/users/687965/kevin-sawicki) i @ [ktoso] (http://stackoverflow.com/users/111024/ktoso) też! –