JGit y encontrar la cabeza
Estoy tratando de poner mis manos en el HEAD commit con 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)
Encuentro que abre el repo bien, perohead
el valor se establece ennull
. Me pregunto por qué no puede encontrar HEAD.
Estoy leyendo esta documentación:http://wiki.eclipse.org/JGit/User_Guide
El repositorio se construye tal como lo dice el documento, y elRevWalk
también. Estoy usando la última versión de JGit que es2.0.0.201206130900-r
desdehttp://download.eclipse.org/jgit/maven.
Mi pregunta: ¿qué debo cambiar en mi código para que JGit devuelva instancias reales deRevCommit
en lugar denull
como ahora lo hace?
Actualizar: Este código:
val git = new Git(repo)
val logs: Iterable[RevCommit] = git.log().call().asInstanceOf[Iterable[RevCommit]]
Me da esta excepción:No HEAD exists and no explicit starting revision was specified
La excepción es impar, porque un simplegit rev-parse HEAD
me dice0b0e8bf2cae9201f30833d93cc248986276a4d75
, lo que significa que hay una CABEZA en el repositorio. He probado diferentes repositorios, el mio y de otras personas.