From 003717275d022d08b0de1ad8461a52b62ef8cd6b Mon Sep 17 00:00:00 2001 From: Sebastian Sdorra Date: Sun, 18 Sep 2011 16:24:39 +0200 Subject: [PATCH] added tree filter --- .../main/java/sonia/scm/repository/GitDiffViewer.java | 11 +++++++++-- 1 file changed, 9 insertions(+), 2 deletions(-) diff --git a/scm-plugins/scm-git-plugin/src/main/java/sonia/scm/repository/GitDiffViewer.java b/scm-plugins/scm-git-plugin/src/main/java/sonia/scm/repository/GitDiffViewer.java index 3b358182fc..418eb93e09 100644 --- a/scm-plugins/scm-git-plugin/src/main/java/sonia/scm/repository/GitDiffViewer.java +++ b/scm-plugins/scm-git-plugin/src/main/java/sonia/scm/repository/GitDiffViewer.java @@ -42,6 +42,10 @@ import org.eclipse.jgit.revwalk.RevTree; import org.eclipse.jgit.revwalk.RevWalk; import org.eclipse.jgit.treewalk.EmptyTreeIterator; import org.eclipse.jgit.treewalk.TreeWalk; +import org.eclipse.jgit.treewalk.filter.PathFilter; +import org.eclipse.jgit.treewalk.filter.TreeFilter; + +import sonia.scm.util.Util; //~--- JDK imports ------------------------------------------------------------ @@ -106,8 +110,6 @@ public class GitDiffViewer implements DiffViewer try { - - // TODO set path if is set walk = new RevWalk(gr); RevCommit commit = walk.parseCommit(gr.resolve(revision)); @@ -118,6 +120,11 @@ public class GitDiffViewer implements DiffViewer treeWalk.reset(); treeWalk.setRecursive(true); + if (Util.isNotEmpty(path)) + { + treeWalk.setFilter(PathFilter.create(path)); + } + if (commit.getParentCount() > 0) { RevTree tree = commit.getParent(0).getTree();