私は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)
リポジトリは正常に開きますが、head
値はに設定されていnull
ます。なぜHEADが見つからないのかしら?
私はこのドキュメントを読んでいます:http ://wiki.eclipse.org/JGit/User_Guide
リポジトリは、ドキュメントに記載されているとおりに構築さRevWalk
れます。http://download.eclipse.org/jgit/mavenにある最新バージョンのJGitを使用してい2.0.0.201206130900-r
ます。
RevCommit
私の質問:JGitが現在のようにではなく実際のインスタンスを返すようにするには、コードを何に変更する必要があり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があるということです。私は、自分のリポジトリと他の人のリポジトリを試しました。