2017-09-12 3 views
0

Je suis en train de lire des informations Remarques Git à partir d'une ref personnalisée refs/notes/abcd d'un engagement particulier dans un référentiel à l'aide JGitComment lire les notes Git en utilisant JGit donné une commettras-sha

Voici ce que j'ai essayé:

Repository repository = repositoryManager.openRepository(repoName); 
Git git = new Git(repository); 
ObjectId oid = repository.resolve("5740b142a7b5f66768a2d904b267dccaef1a095f"); 
Note note = git.notesShow().setNotesRef("refs/notes/abcd").setObjectId(oid).call(); 
ObjectLoader loader = repository.open(note.getData()); 
byte[] data = loader.getBytes(); 
System.out.println(new String(data, "utf-8")); 

que je reçois l'erreur de compilation suivante:

error: incompatible types: org.eclipse.jgit.lib.ObjectId cannot be converted to org.eclipse.jgit.revwalk.RevObject

Comment puis-je passer une variable RevObject à Git setObjectId() donné une chaîne commit-sha?

Répondre

1

Avec un RevWalk, l'ID d'objet peut être analysé et le résultat RevCommit peut être transmis au ShowNoteCommand.

Par exemple:

RevCommit commit; 
try(RevWalk revWalk = new RevWalk(repository)) { 
    commit = revWalk.parseCommit(oid); 
} 

git.notesShow().setObjectId(commit)... 
+0

Voir aussi l'exemple prêt à fonctionner à https://github.com/centic9/jgit-cookbook/blob/master/src/main/java/org/dstadler /jgit/porcelain/AddAndListNoteOfCommit.java dans mon [jgit-cookbook] (https://github.com/centic9/jgit-cookbook/) – centic