protected List<GitInformationCommit> loadCommits(Repository repository, Git git, Ref branch) throws GitAPIException, NoHeadException, IOException, MissingObjectException, IncorrectObjectTypeException, AmbiguousObjectException {
		RevWalk revwalk = new RevWalk(repository);
		
		List<GitInformationCommit> result = new ArrayList<>();
		
		for (Ref rbranch : git.branchList().call()) {
			if (rbranch.getName().equals(branch.getName())) {
		        Iterable<RevCommit> commits = git.log().all().call();

		        for (RevCommit commit : commits) {
		            boolean foundInThisBranch = false;

		            RevCommit targetCommit = revwalk.parseCommit(repository.resolve(commit.getName()));
		            for (Map.Entry<String, Ref> e : repository.getAllRefs().entrySet()) {
		                if (e.getKey().startsWith(Constants.R_HEADS)) {
		                    if (revwalk.isMergedInto(targetCommit, revwalk.parseCommit(e.getValue().getObjectId()))) {
		                        String foundInBranch = e.getValue().getName();
		                        if (branch.getName().equals(foundInBranch)) {
		                            foundInThisBranch = true;
		                            break;
		                        }
		                    }
		                }
		            }

		            if (foundInThisBranch) {
		            	GitInformationCommit cmt = new GitInformationCommit();
		            	
		            	cmt.Checksum = commit.getName();
		            	cmt.Author = commit.getAuthorIdent().getName();
		            	cmt.Mail = commit.getAuthorIdent().getEmailAddress();
		            	cmt.Date = new Date(commit.getCommitTime());
		            	cmt.Message = commit.getFullMessage();
		            	
		            	result.add(cmt);
		            }
		        }
			}
		}
		
		return result;
	}