JGit i znalezienie głowy
Próbuję dostać swoje ręce do zatwierdzenia HEAD za pomocą JGit:
val builder = new FileRepositoryBuilder()
val repo = builder.setGitDir(new File("/www/test-repo"))
.readEnvironment()
.findGitDir()
.build()
val walk: RevWalk = new RevWalk(repo, 100)
val head: ObjectId = repo.resolve(Constants.HEAD)
val headCommit: RevCommit = walk.parseCommit(head)
Uważam, że otwiera repo grzywny, alehead
wartość jest ustawiona nanull
. Zastanawiam się, dlaczego nie może znaleźć HEAD?
Czytam tę dokumentację:http://wiki.eclipse.org/JGit/User_Guide
Repozytorium jest skonstruowane tak, jak mówi dokument, iRevWalk
także. Używam najnowszej wersji JGit, która jest2.0.0.201206130900-r
zhttp://download.eclipse.org/jgit/maven.
Moje pytanie: co muszę zmienić w moim kodzie, aby JGit zwracał rzeczywiste instancjeRevCommit
zamiastnull
tak jak teraz?
Aktualizacja: Ten kod:
val git = new Git(repo)
val logs: Iterable[RevCommit] = git.log().call().asInstanceOf[Iterable[RevCommit]]
Daje mi ten wyjątek:No HEAD exists and no explicit starting revision was specified
Wyjątek jest dziwny, bo prostygit rev-parse HEAD
mówi mi0b0e8bf2cae9201f30833d93cc248986276a4d75
, co oznacza, że w repozytorium znajduje się HEAD. Próbowałem różnych repozytoriów, moich i innych osób.