[EGIT PATCH] Avoid breaking the walk prematurely

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



The optimization broke the walk when all changes we adds, assuming
the parent was an empty tree. This assumption was wrong. The tree does
not have to bee empty, it can contain other trees and blobs.

http://code.google.com/p/egit/issues/detail?id=46

Signed-off-by: Robin Rosenberg <robin.rosenberg@xxxxxxxxxx>
---
 .../spearce/jgit/revwalk/RewriteTreeFilter.java    |    7 -------
 1 files changed, 0 insertions(+), 7 deletions(-)

We could introduce a fixed version later on if we supply an option to select
whether to optimize the walk this way. The problem with doing it without an
option is that imports from legacy SCMs do not necessarily record file moves
as add/removes in direct sucession, but other events may happen in beteens
for various reasons.

-- robin 

diff --git a/org.spearce.jgit/src/org/spearce/jgit/revwalk/RewriteTreeFilter.java b/org.spearce.jgit/src/org/spearce/jgit/revwalk/RewriteTreeFilter.java
index 587d6d2..a5edbf0 100644
--- a/org.spearce.jgit/src/org/spearce/jgit/revwalk/RewriteTreeFilter.java
+++ b/org.spearce.jgit/src/org/spearce/jgit/revwalk/RewriteTreeFilter.java
@@ -118,13 +118,6 @@ public boolean include(final RevWalk walker, final RevCommit c)
 				//
 				c.flags |= REWRITE;
 				return false;
-			} else if (chgs == adds) {
-				// We added everything, so the parent may as well just
-				// be an empty tree. Kill our parent, we can assume
-				// it did not supply interesting changes.
-				//
-				c.parents = RevCommit.NO_PARENTS;
-				return true;
 			} else {
 				// We have interesting items, but neither of the special
 				// cases denoted above.
-- 
1.6.0.3.640.g6331a

--
To unsubscribe from this list: send the line "unsubscribe git" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at  http://vger.kernel.org/majordomo-info.html

[Index of Archives]     [Linux Kernel Development]     [Gcc Help]     [IETF Annouce]     [DCCP]     [Netdev]     [Networking]     [Security]     [V4L]     [Bugtraq]     [Yosemite]     [MIPS Linux]     [ARM Linux]     [Linux Security]     [Linux RAID]     [Linux SCSI]     [Fedora Users]

  Powered by Linux