diff options
author | Ivan Frade <ifrade@google.com> | 2024-02-21 15:28:03 -0800 |
---|---|---|
committer | Ivan Frade <ifrade@google.com> | 2024-02-21 15:28:03 -0800 |
commit | f11d1365faad2dcac73570f53f1e05e86f058cde (patch) | |
tree | 4e0e403e338655bf2828e6379a8e89880690a649 /org.eclipse.jgit/src | |
parent | 90674ab152102b16081bd109d7f72bc37c4040ab (diff) | |
download | jgit-f11d1365faad2dcac73570f53f1e05e86f058cde.tar.gz jgit-f11d1365faad2dcac73570f53f1e05e86f058cde.zip |
Revert "StartGenerator: Fix parent rewrite with non-default RevFilter"
This reverts commit db5ce6b5c24408ae27eb6fa0b6289d51b129baeb.
Reason to revert: This change utilizes the RewriteGenerator even in
absence of a path, making the walk lengthy.
Change-Id: I5ffa6e8fead328191348c1e46828bf8c75ae1e42
Diffstat (limited to 'org.eclipse.jgit/src')
-rw-r--r-- | org.eclipse.jgit/src/org/eclipse/jgit/revwalk/StartGenerator.java | 10 | ||||
-rw-r--r-- | org.eclipse.jgit/src/org/eclipse/jgit/revwalk/TreeRevFilter.java | 24 |
2 files changed, 24 insertions, 10 deletions
diff --git a/org.eclipse.jgit/src/org/eclipse/jgit/revwalk/StartGenerator.java b/org.eclipse.jgit/src/org/eclipse/jgit/revwalk/StartGenerator.java index 61a91e70dc..6854b6083d 100644 --- a/org.eclipse.jgit/src/org/eclipse/jgit/revwalk/StartGenerator.java +++ b/org.eclipse.jgit/src/org/eclipse/jgit/revwalk/StartGenerator.java @@ -98,14 +98,14 @@ class StartGenerator extends Generator { } else { pending = RevWalk.newDateRevQueue(q); } - if (rf != RevFilter.ALL && w.getRewriteParents()) { - pendingOutputType |= HAS_REWRITE | NEEDS_REWRITE; - } if (tf != TreeFilter.ALL) { + int rewriteFlag; if (w.getRewriteParents()) { pendingOutputType |= HAS_REWRITE | NEEDS_REWRITE; - } - rf = AndRevFilter.create(new TreeRevFilter(w, tf), rf); + rewriteFlag = RevWalk.REWRITE; + } else + rewriteFlag = 0; + rf = AndRevFilter.create(new TreeRevFilter(w, tf, rewriteFlag), rf); } walker.queue = q; diff --git a/org.eclipse.jgit/src/org/eclipse/jgit/revwalk/TreeRevFilter.java b/org.eclipse.jgit/src/org/eclipse/jgit/revwalk/TreeRevFilter.java index 4085954638..43571a6868 100644 --- a/org.eclipse.jgit/src/org/eclipse/jgit/revwalk/TreeRevFilter.java +++ b/org.eclipse.jgit/src/org/eclipse/jgit/revwalk/TreeRevFilter.java @@ -60,8 +60,21 @@ public class TreeRevFilter extends RevFilter { * Create a {@link org.eclipse.jgit.revwalk.filter.RevFilter} from a * {@link org.eclipse.jgit.treewalk.filter.TreeFilter}. * - * When revWalk's rewrite parent flag is set, it creates a filter for the - * first phase of a parent-rewriting limited revision walk. + * @param walker + * walker used for reading trees. + * @param t + * filter to compare against any changed paths in each commit. If + * a {@link org.eclipse.jgit.revwalk.FollowFilter}, will be + * replaced with a new filter following new paths after a rename. + * @since 3.5 + */ + public TreeRevFilter(RevWalk walker, TreeFilter t) { + this(walker, t, 0); + } + + /** + * Create a filter for the first phase of a parent-rewriting limited + * revision walk. * <p> * This filter is ANDed to evaluate before all other filters and ties the * configured {@link TreeFilter} into the revision walking process. @@ -78,13 +91,14 @@ public class TreeRevFilter extends RevFilter { * filter to compare against any changed paths in each commit. If * a {@link FollowFilter}, will be replaced with a new filter * following new paths after a rename. - * @since 3.5 + * @param rewriteFlag + * flag to color commits to be removed from the simplified DAT. */ - public TreeRevFilter(RevWalk walker, TreeFilter t) { + TreeRevFilter(RevWalk walker, TreeFilter t, int rewriteFlag) { pathFilter = new TreeWalk(walker.reader); pathFilter.setFilter(t); pathFilter.setRecursive(t.shouldBeRecursive()); - this.rewriteFlag = walker.getRewriteParents() ? RevWalk.REWRITE : 0; + this.rewriteFlag = rewriteFlag; } @Override |