aboutsummaryrefslogtreecommitdiff
path: root/revision.c
diff options
context:
space:
mode:
authorJunio C Hamano <junkio@cox.net>2006-03-18 00:43:47 -0800
committerJunio C Hamano <junkio@cox.net>2006-03-18 00:43:47 -0800
commit8a414ad50cd9edfe6c8f0a6b9b08df4aaa9ccb75 (patch)
tree8ddde36d93ccb281777d2fd10648fdcba8591a42 /revision.c
parent5a1fb2ca92caaa7ae9044ab81dc102f59d17b97a (diff)
parentc348f31ab9d8f695aef405d9981b85c943a5875a (diff)
downloadgit-8a414ad50cd9edfe6c8f0a6b9b08df4aaa9ccb75.tar.gz
git-8a414ad50cd9edfe6c8f0a6b9b08df4aaa9ccb75.tar.xz
Merge branch 'jc/empty'
* jc/empty: revision traversal: --remove-empty fix (take #2). revision traversal: --remove-empty fix. Conflicts: revision.c (adjust for the updates by Fredrik)
Diffstat (limited to 'revision.c')
-rw-r--r--revision.c12
1 files changed, 10 insertions, 2 deletions
diff --git a/revision.c b/revision.c
index 01386ed6d..12cd0529a 100644
--- a/revision.c
+++ b/revision.c
@@ -313,8 +313,16 @@ static void try_to_simplify_commit(struct rev_info *revs, struct commit *commit)
case REV_TREE_NEW:
if (revs->remove_empty_trees &&
rev_same_tree_as_empty(p->tree)) {
- *pp = parent->next;
- continue;
+ /* We are adding all the specified
+ * paths from this parent, so the
+ * history beyond this parent is not
+ * interesting. Remove its parents
+ * (they are grandparents for us).
+ * IOW, we pretend this parent is a
+ * "root" commit.
+ */
+ parse_commit(p);
+ p->parents = NULL;
}
/* fallthrough */
case REV_TREE_DIFFERENT: