我正在尝试使用 JGit 进行 HEAD 提交:
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)
我发现它可以很好地打开 repo,但head
值设置为null
. 我想知道为什么它找不到HEAD?
我正在阅读这份文档:http ://wiki.eclipse.org/JGit/User_Guide
存储库的构建就像文档所说的RevWalk
那样,也是如此。我正在使用2.0.0.201206130900-r
来自http://download.eclipse.org/jgit/maven的最新版本的 JGit 。
我的问题:我需要在我的代码中进行哪些更改才能让 JGit 返回实际实例,RevCommit
而不是null
像现在这样?
更新:此代码:
val git = new Git(repo)
val logs: Iterable[RevCommit] = git.log().call().asInstanceOf[Iterable[RevCommit]]
给了我这个例外:No HEAD exists and no explicit starting revision was specified
例外很奇怪,因为一个简单的git rev-parse HEAD
告诉我0b0e8bf2cae9201f30833d93cc248986276a4d75
,这意味着存储库中有一个 HEAD。我尝试了不同的存储库,我的和其他人的。