Retrieving Commit Message Log from Git Using JGit
git, java, jgit
Solution
This is correct of piece of code will do the above..
FileRepositoryBuilder builder = new FileRepositoryBuilder();
Repository repo = builder.setGitDir(new File("localrepositary"+"\\.git")).setMustExist(true).build();
Git git = new Git(repo);
Iterable<RevCommit> log = git.log().call();
for (Iterator<RevCommit> iterator = log.iterator(); iterator.hasNext();) {
RevCommit rev = iterator.next();
logMessages.add(rev.getFullMessage());
}
Problem
I just want to retrieve the commitlog from Git repository that has messages for all the commit you've done on a specific repopsitory. I had found some code snippets for achieve this and ends with an exception. ``` try { FileRepositoryBuilder builder = new FileRepositoryBuilder(); Repository repo = builder.setGitDir(new File("https://github.com/name/repository.git")).readEnvironment().findGitDir().build(); RevWalk walk =new RevWalk(repo); ObjectId head = repo.resolve(Constants.HEAD); RevCommit commit =walk.parseCommit(head); Git git =new Git(repo); Iterable<RevCommit> gitLog = git.log().call(); Iterator<RevCommit> it = gitLog.iterator(); while(it.hasNext()) { RevCommit logMessage = it.next(); System.out.println(logMessage.getFullMessage()); } } catch(Exception e) { e.printStackTrace(); } ``` However it gives me: ``` org.eclipse.jgit.api.errors.NoHeadException: No HEAD exists and no explicit starting revision was specified exception. ``` How do I get rid of this? I am using org.eclipse.jgit JAR version 2.0.0.201206130900-r