List of usage examples for org.eclipse.jgit.revplot PlotWalk setTreeFilter
public void setTreeFilter(TreeFilter newFilter)
From source file:de.fau.osr.core.vcs.impl.GitVcsClient.java
License:Open Source License
public Iterator<String> getCommitListForFileodification(String path) { String filename = path.replaceAll(Matcher.quoteReplacement("\\"), "/"); PlotCommitList<PlotLane> plotCommitList = new PlotCommitList<PlotLane>(); PlotWalk revWalk = new PlotWalk(repo); ArrayList<String> commitIDList = new ArrayList<String>(); try {/*from w w w .j av a 2 s. co m*/ ObjectId rootId = repo.resolve("HEAD"); if (rootId != null) { RevCommit root = revWalk.parseCommit(rootId); revWalk.markStart(root); revWalk.setTreeFilter( // VERY IMPORTANT: This works only with unix-style file paths. NO "\" allowed. AndTreeFilter.create(PathFilter.create(filename), TreeFilter.ANY_DIFF)); plotCommitList.source(revWalk); plotCommitList.fillTo(Integer.MAX_VALUE); Iterator<PlotCommit<PlotLane>> commitListIterator = plotCommitList.iterator(); while (commitListIterator.hasNext()) { commitIDList.add(commitListIterator.next().getName()); } return commitIDList.iterator(); } } catch (AmbiguousObjectException ex) { } catch (IOException ex) { } return commitIDList.iterator(); }
From source file:org.commonjava.aprox.subsys.git.GitManager.java
License:Apache License
public ChangeSummary getHeadCommit(final File f) throws GitSubsystemException { try {/*from w w w. ja va 2 s . c om*/ final ObjectId oid = repo.resolve("HEAD"); final PlotWalk pw = new PlotWalk(repo); final RevCommit rc = pw.parseCommit(oid); pw.markStart(rc); final String filepath = relativize(f); pw.setTreeFilter(AndTreeFilter.create(PathFilter.create(filepath), TreeFilter.ANY_DIFF)); final PlotCommitList<PlotLane> cl = new PlotCommitList<>(); cl.source(pw); cl.fillTo(1); final PlotCommit<PlotLane> commit = cl.get(0); return toChangeSummary(commit); } catch (RevisionSyntaxException | IOException e) { throw new GitSubsystemException("Failed to resolve HEAD commit for: %s. Reason: %s", e, f, e.getMessage()); } }
From source file:org.commonjava.aprox.subsys.git.GitManager.java
License:Apache License
public List<ChangeSummary> getChangelog(final File f, final int start, final int length) throws GitSubsystemException { if (length == 0) { return Collections.emptyList(); }// w w w. j a v a2s . com try { final ObjectId oid = repo.resolve(Constants.HEAD); final PlotWalk pw = new PlotWalk(repo); final RevCommit rc = pw.parseCommit(oid); toChangeSummary(rc); pw.markStart(rc); final String filepath = relativize(f); logger.info("Getting changelog for: {} (start: {}, length: {})", filepath, start, length); if (!isEmpty(filepath) && !filepath.equals("/")) { pw.setTreeFilter(AndTreeFilter.create(PathFilter.create(filepath), TreeFilter.ANY_DIFF)); } else { pw.setTreeFilter(TreeFilter.ANY_DIFF); } final List<ChangeSummary> changelogs = new ArrayList<ChangeSummary>(); int count = 0; final int stop = length > 0 ? length + 1 : 0; RevCommit commit = null; while ((commit = pw.next()) != null && (stop < 1 || count < stop)) { if (count < start) { count++; continue; } // printFiles( commit ); changelogs.add(toChangeSummary(commit)); count++; } if (length < -1) { final int remove = (-1 * length) - 1; for (int i = 0; i < remove; i++) { changelogs.remove(changelogs.size() - 1); } } return changelogs; } catch (RevisionSyntaxException | IOException e) { throw new GitSubsystemException("Failed to resolve HEAD commit for: %s. Reason: %s", e, f, e.getMessage()); } }
From source file:org.commonjava.indy.subsys.git.GitManager.java
License:Apache License
public ChangeSummary getHeadCommit(final File f) throws GitSubsystemException { return lockAnd(me -> { try {//from ww w .j a v a 2s . c o m final ObjectId oid = repo.resolve("HEAD"); final PlotWalk pw = new PlotWalk(repo); final RevCommit rc = pw.parseCommit(oid); pw.markStart(rc); final String filepath = relativize(f); pw.setTreeFilter(AndTreeFilter.create(PathFilter.create(filepath), TreeFilter.ANY_DIFF)); final PlotCommitList<PlotLane> cl = new PlotCommitList<>(); cl.source(pw); cl.fillTo(1); final PlotCommit<PlotLane> commit = cl.get(0); return toChangeSummary(commit); } catch (RevisionSyntaxException | IOException e) { throw new GitSubsystemException("Failed to resolve HEAD commit for: %s. Reason: %s", e, f, e.getMessage()); } }); }
From source file:org.commonjava.indy.subsys.git.GitManager.java
License:Apache License
public List<ChangeSummary> getChangelog(final File f, final int start, final int length) throws GitSubsystemException { return lockAnd(me -> { if (length == 0) { return Collections.emptyList(); }/* w w w. j a v a 2 s . c om*/ try { final ObjectId oid = repo.resolve(Constants.HEAD); final PlotWalk pw = new PlotWalk(repo); final RevCommit rc = pw.parseCommit(oid); toChangeSummary(rc); pw.markStart(rc); final String filepath = relativize(f); logger.info("Getting changelog for: {} (start: {}, length: {})", filepath, start, length); if (!isEmpty(filepath) && !filepath.equals("/")) { pw.setTreeFilter(AndTreeFilter.create(PathFilter.create(filepath), TreeFilter.ANY_DIFF)); } else { pw.setTreeFilter(TreeFilter.ANY_DIFF); } final List<ChangeSummary> changelogs = new ArrayList<ChangeSummary>(); int count = 0; final int stop = length > 0 ? length + 1 : 0; RevCommit commit = null; while ((commit = pw.next()) != null && (stop < 1 || count < stop)) { if (count < start) { count++; continue; } // printFiles( commit ); changelogs.add(toChangeSummary(commit)); count++; } if (length < -1) { final int remove = (-1 * length) - 1; for (int i = 0; i < remove; i++) { changelogs.remove(changelogs.size() - 1); } } return changelogs; } catch (RevisionSyntaxException | IOException e) { throw new GitSubsystemException("Failed to resolve HEAD commit for: %s. Reason: %s", e, f, e.getMessage()); } }); }
From source file:org.efaps.cli.rest.ImportCICall.java
License:Apache License
/** * Gets the file information./*from w ww . j av a2 s . co m*/ * * @param _file the _file * @return the file information */ protected String[] getFileInformation(final File _file) { final String[] ret = new String[2]; try { final Repository repo = new FileRepository(evalGitDir(_file)); final ObjectId lastCommitId = repo.resolve(Constants.HEAD); final PlotCommitList<PlotLane> plotCommitList = new PlotCommitList<PlotLane>(); final PlotWalk revWalk = new PlotWalk(repo); final RevCommit root = revWalk.parseCommit(lastCommitId); revWalk.markStart(root); revWalk.setTreeFilter(AndTreeFilter.create( PathFilter.create(_file.getPath().replaceFirst(repo.getWorkTree().getPath() + "/", "")), TreeFilter.ANY_DIFF)); plotCommitList.source(revWalk); plotCommitList.fillTo(2); final PlotCommit<PlotLane> commit = plotCommitList.get(0); if (commit != null) { final PersonIdent authorIdent = commit.getAuthorIdent(); final Date authorDate = authorIdent.getWhen(); final TimeZone authorTimeZone = authorIdent.getTimeZone(); final DateTime dateTime = new DateTime(authorDate.getTime(), DateTimeZone.forTimeZone(authorTimeZone)); ret[1] = dateTime.toString(); ret[0] = commit.getId().getName(); } else { ret[1] = new DateTime().toString(); ret[0] = "UNKNOWN"; } } catch (final RevisionSyntaxException | IOException e) { e.printStackTrace(); } return ret; }
From source file:org.efaps.eclipse.rest.RestClient.java
License:Apache License
protected String[] getFileInformation(final File _file) { final String[] ret = new String[2]; try {//from w w w.ja va2 s . com final Repository repo = new FileRepository(evalGitDir(_file)); final ObjectId lastCommitId = repo.resolve(Constants.HEAD); final PlotCommitList<PlotLane> plotCommitList = new PlotCommitList<PlotLane>(); final PlotWalk revWalk = new PlotWalk(repo); final RevCommit root = revWalk.parseCommit(lastCommitId); revWalk.markStart(root); revWalk.setTreeFilter(AndTreeFilter.create( PathFilter.create(_file.getPath().replaceFirst(repo.getWorkTree().getPath() + "/", "")), TreeFilter.ANY_DIFF)); plotCommitList.source(revWalk); plotCommitList.fillTo(2); final PlotCommit<PlotLane> commit = plotCommitList.get(0); if (commit != null) { final PersonIdent authorIdent = commit.getAuthorIdent(); final Date authorDate = authorIdent.getWhen(); final TimeZone authorTimeZone = authorIdent.getTimeZone(); final DateTime dateTime = new DateTime(authorDate.getTime(), DateTimeZone.forTimeZone(authorTimeZone)); ret[1] = dateTime.toString(); ret[0] = commit.getId().getName(); } else { ret[1] = new DateTime().toString(); ret[0] = "UNKNOWN"; } } catch (RevisionSyntaxException | IOException e) { e.printStackTrace(); } return ret; }
From source file:org.nbgit.ui.browser.BrowserController.java
License:Open Source License
public void show() { SwingUtilities.invokeLater(new Runnable() { public void run() { model.getCommitList().clear(); PlotWalk walk = null; try { walk = new PlotWalk(model.getRepository()); walk.sort(RevSort.BOUNDARY, true); if (model.hasPaths()) { walk.setTreeFilter(model.createPathFilter()); }//from ww w . jav a2 s. c o m for (Ref ref : model.getReferences()) walk.markStart(walk.parseCommit(ref.getObjectId())); model.getCommitList().source(walk); model.getCommitList().fillTo(Integer.MAX_VALUE); } catch (Throwable error) { model.setContent(error.getMessage()); } finally { if (walk != null) { walk.dispose(); } } } }); }