List of usage examples for org.eclipse.jgit.revwalk.filter CommitTimeRevFilter before
public static final RevFilter before(long ts)
From source file:org.apache.maven.scm.provider.git.jgit.command.JGitUtils.java
License:Apache License
/** * Get a list of commits between two revisions. * * @param repo the repository to work on * @param sortings sorting/* w w w . j a v a 2s.co m*/ * @param fromRev start revision * @param toRev if null, falls back to head * @param fromDate from which date on * @param toDate until which date * @param maxLines max number of lines * @return a list of commits, might be empty, but never <code>null</code> * @throws IOException * @throws MissingObjectException * @throws IncorrectObjectTypeException */ public static List<RevCommit> getRevCommits(Repository repo, RevSort[] sortings, String fromRev, String toRev, final Date fromDate, final Date toDate, int maxLines) throws IOException, MissingObjectException, IncorrectObjectTypeException { List<RevCommit> revs = new ArrayList<RevCommit>(); RevWalk walk = new RevWalk(repo); ObjectId fromRevId = fromRev != null ? repo.resolve(fromRev) : null; ObjectId toRevId = toRev != null ? repo.resolve(toRev) : null; if (sortings == null || sortings.length == 0) { sortings = new RevSort[] { RevSort.TOPO, RevSort.COMMIT_TIME_DESC }; } for (final RevSort s : sortings) { walk.sort(s, true); } if (fromDate != null && toDate != null) { //walk.setRevFilter( CommitTimeRevFilter.between( fromDate, toDate ) ); walk.setRevFilter(new RevFilter() { @Override public boolean include(RevWalk walker, RevCommit cmit) throws StopWalkException, MissingObjectException, IncorrectObjectTypeException, IOException { int cmtTime = cmit.getCommitTime(); return (cmtTime >= (fromDate.getTime() / 1000)) && (cmtTime <= (toDate.getTime() / 1000)); } @Override public RevFilter clone() { return this; } }); } else { if (fromDate != null) { walk.setRevFilter(CommitTimeRevFilter.after(fromDate)); } if (toDate != null) { walk.setRevFilter(CommitTimeRevFilter.before(toDate)); } } if (fromRevId != null) { RevCommit c = walk.parseCommit(fromRevId); c.add(RevFlag.UNINTERESTING); RevCommit real = walk.parseCommit(c); walk.markUninteresting(real); } if (toRevId != null) { RevCommit c = walk.parseCommit(toRevId); c.remove(RevFlag.UNINTERESTING); RevCommit real = walk.parseCommit(c); walk.markStart(real); } else { final ObjectId head = repo.resolve(Constants.HEAD); if (head == null) { throw new RuntimeException("Cannot resolve " + Constants.HEAD); } RevCommit real = walk.parseCommit(head); walk.markStart(real); } int n = 0; for (final RevCommit c : walk) { n++; if (maxLines != -1 && n > maxLines) { break; } revs.add(c); } return revs; }
From source file:org.eclipse.orion.server.git.jobs.LogCommand.java
License:Eclipse Distribution License
public LogCommand setDateFilter(String fromDate, String toDate) { checkCallable();/*from w ww. j a v a 2 s.c o m*/ try { if (fromDate != null) { long fromD = Long.parseLong(fromDate); if (toDate != null) { long toD = Long.parseLong(toDate); dateFilter = CommitTimeRevFilter.between(fromD, toD); } else { dateFilter = CommitTimeRevFilter.after(fromD); } } else if (toDate != null) { Long toD = Long.parseLong(toDate); if (toD != null) dateFilter = CommitTimeRevFilter.before(toD); } } catch (NumberFormatException ex) { } return this; }
From source file:org.kuali.student.git.cleaner.RepositorySplitter.java
License:Educational Community License
@Override protected void onBeforeRevWalk() { leftSideCommits = new HashSet<>(); leftSidePreventGCCommits = new HashSet<>(); walkLeft.setRevFilter(CommitTimeRevFilter.before(splitDate)); Iterator<RevCommit> it = walkLeft.iterator(); while (it.hasNext()) { RevCommit commit = it.next();//from w w w . ja v a 2 s. c o m ObjectId commitId = commit.getId(); leftSideCommits.add(commitId); Set<Ref> branches = commitToBranchMap.get(commitId); if (branches != null) { for (Ref ref : branches) { leftRefsWriter.println(ref.getName()); } } Set<Ref> tags = commitToTagMap.get(commitId); if (tags != null) { for (Ref ref : tags) { leftRefsWriter.println(ref.getName()); } } } }