JGit e encontrando a cabeça
Estou tentando colocar minhas mãos no commit do HEAD com o 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)
Eu acho que ele abre o repo bem, mashead
o valor está definido comonull
. Eu me pergunto por que não consegue encontrar a cabeça?
Estou lendo esta documentação:http://wiki.eclipse.org/JGit/User_Guide
O repositório é construído exatamente como o doc diz, e oRevWalk
também. Estou usando a versão mais recente do JGit, que é2.0.0.201206130900-r
dehttp://download.eclipse.org/jgit/maven.
Minha pergunta: o que preciso alterar no meu código para que o JGit retorne instâncias reais deRevCommit
ao invés denull
como agora faz?
Atualizar: Este código:
val git = new Git(repo)
val logs: Iterable[RevCommit] = git.log().call().asInstanceOf[Iterable[RevCommit]]
Me dá essa exceção:No HEAD exists and no explicit starting revision was specified
A exceção é estranha, porque uma simplesgit rev-parse HEAD
diga-me0b0e8bf2cae9201f30833d93cc248986276a4d75
, o que significa que existe um HEAD no repositório. Eu tentei repositórios diferentes, meus e de outras pessoas.