aboutsummaryrefslogtreecommitdiffstats
path: root/org.eclipse.jgit/src/org/eclipse/jgit/revwalk/RewriteGenerator.java
diff options
context:
space:
mode:
Diffstat (limited to 'org.eclipse.jgit/src/org/eclipse/jgit/revwalk/RewriteGenerator.java')
-rw-r--r--org.eclipse.jgit/src/org/eclipse/jgit/revwalk/RewriteGenerator.java37
1 files changed, 7 insertions, 30 deletions
diff --git a/org.eclipse.jgit/src/org/eclipse/jgit/revwalk/RewriteGenerator.java b/org.eclipse.jgit/src/org/eclipse/jgit/revwalk/RewriteGenerator.java
index 9ec331b697..2c88bb872e 100644
--- a/org.eclipse.jgit/src/org/eclipse/jgit/revwalk/RewriteGenerator.java
+++ b/org.eclipse.jgit/src/org/eclipse/jgit/revwalk/RewriteGenerator.java
@@ -11,8 +11,6 @@
package org.eclipse.jgit.revwalk;
import java.io.IOException;
-import java.util.HashMap;
-import java.util.Map;
import org.eclipse.jgit.errors.IncorrectObjectTypeException;
import org.eclipse.jgit.errors.MissingObjectException;
@@ -40,13 +38,10 @@ class RewriteGenerator extends Generator {
private final FIFORevQueue pending;
- private final Map<RevCommit, FilteredRevCommit> transformedCommits;
-
RewriteGenerator(Generator s) {
super(s.firstParent);
source = s;
pending = new FIFORevQueue(s.firstParent);
- transformedCommits = new HashMap<>();
}
@Override
@@ -63,10 +58,10 @@ class RewriteGenerator extends Generator {
@Override
RevCommit next() throws MissingObjectException,
IncorrectObjectTypeException, IOException {
- FilteredRevCommit c = (FilteredRevCommit) pending.next();
+ RevCommit c = pending.next();
if (c == null) {
- c = transform(source.next());
+ c = source.next();
if (c == null) {
// We are done: Both the source generator and our internal list
// are completely exhausted.
@@ -84,9 +79,9 @@ class RewriteGenerator extends Generator {
final RevCommit newp = rewrite(oldp);
if (firstParent) {
if (newp == null) {
- c.setParents(RevCommit.NO_PARENTS);
+ c.parents = RevCommit.NO_PARENTS;
} else {
- c.setParents(newp);
+ c.parents = new RevCommit[] { newp };
}
return c;
}
@@ -96,7 +91,7 @@ class RewriteGenerator extends Generator {
}
}
if (rewrote) {
- c.setParents(cleanup(pList));
+ c.parents = cleanup(pList);
}
return c;
}
@@ -116,7 +111,7 @@ class RewriteGenerator extends Generator {
for (RevCommit parent : c.getParents()) {
while ((parent.flags & RevWalk.TREE_REV_FILTER_APPLIED) == 0) {
- FilteredRevCommit n = transform(source.next());
+ RevCommit n = source.next();
if (n != null) {
pending.add(n);
@@ -135,8 +130,6 @@ class RewriteGenerator extends Generator {
IncorrectObjectTypeException, IOException {
for (;;) {
- p = transform(p);
-
if (p.getParentCount() > 1) {
// This parent is a merge, so keep it.
//
@@ -165,25 +158,9 @@ class RewriteGenerator extends Generator {
}
applyFilterToParents(p.getParent(0));
- p = transform(p.getParent(0));
-
- }
- }
+ p = p.getParent(0);
- private FilteredRevCommit transform(RevCommit c) {
- if (c == null) {
- return null;
}
-
- if (c instanceof FilteredRevCommit) {
- return (FilteredRevCommit) c;
- }
-
- if (!transformedCommits.containsKey(c)) {
- transformedCommits.put(c, new FilteredRevCommit(c, c.getParents()));
- }
-
- return transformedCommits.get(c);
}
private RevCommit[] cleanup(RevCommit[] oldList) {