JGit und den Kopf finden

Ich versuche, das HEAD-Commit mit JGit in den Griff zu bekommen:

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)

Ich finde, dass es das Repo fein öffnet, aberhead Wert ist auf gesetztnull. Ich frage mich, warum es HEAD nicht finden kann.

Ich lese diese Dokumentation:http://wiki.eclipse.org/JGit/User_Guide

Das Repository ist so aufgebaut, wie es der Doc sagt, und dasRevWalk auch. Ich verwende die neueste Version von JGit2.0.0.201206130900-r vonhttp://download.eclipse.org/jgit/maven.

Meine Frage: Was muss ich in meinem Code ändern, damit JGit tatsächliche Instanzen von zurückgibt?RevCommit anstattnull mag es jetzt?

Aktualisieren: Dieser Code:

val git = new Git(repo)
val logs: Iterable[RevCommit] = git.log().call().asInstanceOf[Iterable[RevCommit]]

Gibt mir diese Ausnahme:No HEAD exists and no explicit starting revision was specified

Die Ausnahme ist ungerade, weil eine einfachegit rev-parse HEAD sagt mir0b0e8bf2cae9201f30833d93cc248986276a4d75Dies bedeutet, dass sich ein HEAD im Repository befindet. Ich habe verschiedene Repositories ausprobiert, meine und von anderen Leuten.

Antworten auf die Frage(4)

Ihre Antwort auf die Frage