List of usage examples for org.eclipse.jgit.revwalk RevSort REVERSE
RevSort REVERSE
To view the source code for org.eclipse.jgit.revwalk RevSort REVERSE.
Click Source Link
From source file:at.ac.tuwien.inso.subcat.miner.GitMiner.java
License:Open Source License
private void _run() throws IOException, MinerException, SQLException { FileRepositoryBuilder builder = new FileRepositoryBuilder(); Repository repository = builder.setGitDir(new File(settings.srcLocalPath, ".git")).readEnvironment() .findGitDir().build();//from w w w . j av a 2 s.com /* Map<String,Ref> refs = repository.getAllRefs(); for (Map.Entry<String, Ref> ref : refs.entrySet ()) { System.out.println (ref.getKey ()); } */ Ref head = repository.getRef(startRef); if (head == null) { throw new MinerException("Unknown reference: '" + startRef + "'"); } RevWalk walk = new RevWalk(repository); RevCommit commit = walk.parseCommit(head.getObjectId()); walk.markStart(commit); walk.sort(RevSort.REVERSE); // count commit: (fast) int commitCount = 0; Iterator<RevCommit> iter = walk.iterator(); while (iter.hasNext()) { iter.next(); commitCount++; } emitTasksTotal(commitCount); // process commits: (slow) walk.reset(); walk.markStart(commit); walk.sort(RevSort.REVERSE); Map<String, ManagedFile> fileCache = new HashMap<String, ManagedFile>(); for (RevCommit rev : walk) { if (stopped == true) { break; } processCommit(repository, walk, rev, fileCache); } walk.dispose(); repository.close(); }
From source file:boa.datagen.scm.GitConnector.java
License:Apache License
@Override protected void setRevisions() { try {//from w w w .j av a 2 s . co m revwalk.reset(); revwalk.markStart(revwalk.parseCommit(repository.resolve(Constants.HEAD))); revwalk.sort(RevSort.TOPO, true); revwalk.sort(RevSort.COMMIT_TIME_DESC, true); revwalk.sort(RevSort.REVERSE, true); revisions.clear(); revisionMap = new HashMap<String, Integer>(); for (final RevCommit rc : revwalk) { final GitCommit gc = new GitCommit(repository, this); gc.setId(rc.getName()); gc.setAuthor(rc.getAuthorIdent().getName()); gc.setCommitter(rc.getCommitterIdent().getName()); gc.setDate(new Date(((long) rc.getCommitTime()) * 1000)); gc.setMessage(rc.getFullMessage()); gc.getChangeFiles(this.revisionMap, rc); revisionMap.put(gc.id, revisions.size()); revisions.add(gc); } } catch (final IOException e) { if (debug) System.err.println("Git Error getting parsing HEAD commit for " + path + ". " + e.getMessage()); } }
From source file:br.com.metricminer2.scm.GitRepository.java
License:Apache License
public SCMRepository info() { RevWalk rw = null;/*from w ww . jav a2 s .co m*/ Git git = null; try { git = Git.open(new File(path)); AnyObjectId headId = git.getRepository().resolve(Constants.HEAD); rw = new RevWalk(git.getRepository()); RevCommit root = rw.parseCommit(headId); rw.sort(RevSort.REVERSE); rw.markStart(root); RevCommit lastCommit = rw.next(); String origin = git.getRepository().getConfig().getString("remote", "origin", "url"); return new SCMRepository(this, origin, path, headId.getName(), lastCommit.getName()); } catch (Exception e) { throw new RuntimeException("error when info " + path, e); } finally { if (rw != null) rw.release(); if (git != null) git.close(); } }
From source file:com.gitblit.plugin.flowdock.TicketMessageGenerator.java
License:Apache License
private List<RevCommit> getCommits(String repositoryName, String baseId, String tipId) { IRepositoryManager repositoryManager = GitblitContext.getManager(IRepositoryManager.class); Repository db = repositoryManager.getRepository(repositoryName); List<RevCommit> list = new ArrayList<RevCommit>(); RevWalk walk = new RevWalk(db); walk.reset();//from w ww . j a v a2 s. co m walk.sort(RevSort.TOPO); walk.sort(RevSort.REVERSE, true); try { RevCommit tip = walk.parseCommit(db.resolve(tipId)); RevCommit base = walk.parseCommit(db.resolve(baseId)); walk.markStart(tip); walk.markUninteresting(base); for (;;) { RevCommit c = walk.next(); if (c == null) { break; } list.add(c); } } catch (IOException e) { // Should never happen, the core receive process would have // identified the missing object earlier before we got control. log.error("failed to get commits", e); } finally { walk.release(); db.close(); } return list; }
From source file:com.gitblit.utils.JGitUtils.java
License:Apache License
/** * Returns the first commit on a branch. If the repository does not exist or * is empty, null is returned.//w w w . jav a2 s .c o m * * @param repository * @param branch * if unspecified, HEAD is assumed. * @return RevCommit */ public static RevCommit getFirstCommit(Repository repository, String branch) { if (!hasCommits(repository)) { return null; } RevCommit commit = null; try { // resolve branch ObjectId branchObject; if (StringUtils.isEmpty(branch)) { branchObject = getDefaultBranch(repository); } else { branchObject = repository.resolve(branch); } RevWalk walk = new RevWalk(repository); walk.sort(RevSort.REVERSE); RevCommit head = walk.parseCommit(branchObject); walk.markStart(head); commit = walk.next(); walk.dispose(); } catch (Throwable t) { error(t, repository, "{0} failed to determine first commit"); } return commit; }
From source file:com.gitblit.utils.JGitUtils.java
License:Apache License
/** * Try to identify all referenced tickets between two commits * * @param commit//from w w w .ja v a 2 s . co m * @param parseMessage * @param currentTicketId, or 0 if not on a ticket branch * @return a collection of TicketLink, or null if commit is already linked */ public static List<TicketLink> identifyTicketsBetweenCommits(Repository repository, IStoredSettings settings, String baseSha, String tipSha) { List<TicketLink> links = new ArrayList<TicketLink>(); if (repository == null) { return links; } RevWalk walk = new RevWalk(repository); walk.sort(RevSort.TOPO); walk.sort(RevSort.REVERSE, true); try { RevCommit tip = walk.parseCommit(repository.resolve(tipSha)); RevCommit base = walk.parseCommit(repository.resolve(baseSha)); walk.markStart(tip); walk.markUninteresting(base); for (;;) { RevCommit commit = walk.next(); if (commit == null) { break; } links.addAll(JGitUtils.identifyTicketsFromCommitMessage(repository, settings, commit)); } } catch (IOException e) { LOGGER.error("failed to identify tickets between commits.", e); } finally { walk.dispose(); } return links; }
From source file:com.gitblit.utils.JGitUtils.java
License:Apache License
public static int countCommits(Repository repository, RevWalk walk, ObjectId baseId, ObjectId tipId) { int count = 0; walk.reset();/*w w w .ja v a 2 s . c om*/ walk.sort(RevSort.TOPO); walk.sort(RevSort.REVERSE, true); try { RevCommit tip = walk.parseCommit(tipId); RevCommit base = walk.parseCommit(baseId); walk.markStart(tip); walk.markUninteresting(base); for (;;) { RevCommit c = walk.next(); if (c == null) { break; } count++; } } catch (IOException e) { // Should never happen, the core receive process would have // identified the missing object earlier before we got control. LOGGER.error("failed to get commit count", e); return 0; } finally { walk.close(); } return count; }
From source file:com.google.appraise.eclipse.core.client.git.AppraiseGitReviewClient.java
License:Open Source License
/** * Gets the review commit, which is the first commit on the review branch * after the merge base.//from w w w . ja v a 2 s. c om */ public RevCommit getReviewCommit(String reviewBranch, String targetBranch) throws GitClientException { try (RevWalk walk = new RevWalk(repo)) { walk.markStart(walk.parseCommit(repo.resolve(reviewBranch))); walk.markUninteresting(walk.parseCommit(repo.resolve(targetBranch))); walk.sort(RevSort.REVERSE); return walk.next(); } catch (Exception e) { throw new GitClientException("Failed to get review commit for " + reviewBranch + " and " + targetBranch, e); } }
From source file:com.google.gerrit.server.git.GroupCollectorTest.java
License:Apache License
private RevWalk newWalk(ObjectId start, ObjectId branchTip) throws Exception { // Match RevWalk conditions from ReceiveCommits. RevWalk rw = new RevWalk(tr.getRepository()); rw.sort(RevSort.TOPO);/*www . j a v a 2s . c o m*/ rw.sort(RevSort.REVERSE, true); rw.markStart(rw.parseCommit(start)); rw.markUninteresting(rw.parseCommit(branchTip)); return rw; }
From source file:com.google.gerrit.server.git.MergeUtil.java
License:Apache License
public void markCleanMerges(final RevWalk rw, final RevFlag canMergeFlag, final CodeReviewCommit mergeTip, final Set<RevCommit> alreadyAccepted) throws MergeException { if (mergeTip == null) { // If mergeTip is null here, branchTip was null, indicating a new branch // at the start of the merge process. We also elected to merge nothing, // probably due to missing dependencies. Nothing was cleanly merged. ///*from www . j av a2 s. c o m*/ return; } try { rw.resetRetain(canMergeFlag); rw.sort(RevSort.TOPO); rw.sort(RevSort.REVERSE, true); rw.markStart(mergeTip); for (RevCommit c : alreadyAccepted) { rw.markUninteresting(c); } CodeReviewCommit c; while ((c = (CodeReviewCommit) rw.next()) != null) { if (c.getPatchsetId() != null) { c.setStatusCode(CommitMergeStatus.CLEAN_MERGE); } } } catch (IOException e) { throw new MergeException("Cannot mark clean merges", e); } }