1

テストコミットを含むリポジトリがあります(すべてデフォルトブランチにあります)。JGit log コマンドを使用して、これらのコミットを確認できます (例):

RepositoryBuilder builder = new RepositoryBuilder();
Repository repository = builder.setWorkTree("/tmp/myworkingdir").readEnvironment().findGitDir().build();
Git git = new Git(repository);

for (RevCommit commit : git.log().call()) {
    System.out.println("commit: " + commit.getId());
}

結果:

commit: commit f34a848371ff334b2e85aa16fbf9b871d028b443 1371652639 ----sp
commit: commit 33603f8c1c47712d45eb0db4b1827bbd113c2428 1371652639 ----sp
commit: commit d52bd5c768263a957d99975f5482020ffc3434d5 1371652639 ----sp

しかし、文字列 SHA1 から RevCommit を取得しようとすると、このスニペットの最後の行で失敗します。

ObjectId revid = repository.resolve("33603f8c1c47712d45eb0db4b1827bbd113c2428");
RevWalk revWalk = new RevWalk(repository);
RevCommit commit = revWalk.parseCommit(revid);

例外:

org.eclipse.jgit.errors.MissingObjectException: Missing unknown 33603f8c1c47712d45eb0db4b1827bbd113c2428
at org.eclipse.jgit.storage.file.WindowCursor.open(WindowCursor.java:126)
at org.eclipse.jgit.lib.ObjectReader.open(ObjectReader.java:229)
at org.eclipse.jgit.revwalk.RevWalk.parseAny(RevWalk.java:817)
at org.eclipse.jgit.revwalk.RevWalk.parseCommit(RevWalk.java:730)

私は何を間違っていますか?

アクセス 部分でリポジトリの初期化が間違っていた..

4

1 に答える 1