summary | shortlog | log | commit | commitdiff | tree
raw | patch | inline | side by side (parent: a41e109)
raw | patch | inline | side by side (parent: a41e109)
author | Junio C Hamano <junkio@cox.net> | |
Sun, 12 Mar 2006 21:39:31 +0000 (13:39 -0800) | ||
committer | Junio C Hamano <junkio@cox.net> | |
Mon, 13 Mar 2006 01:06:57 +0000 (17:06 -0800) |
Marco Costalba reports that --remove-empty omits the commit that
created paths we are interested in. try_to_simplify_commit()
logic was dropping a parent we introduced those paths against,
which I think is not what we meant. Instead, this makes such
parent parentless.
Signed-off-by: Junio C Hamano <junkio@cox.net>
created paths we are interested in. try_to_simplify_commit()
logic was dropping a parent we introduced those paths against,
which I think is not what we meant. Instead, this makes such
parent parentless.
Signed-off-by: Junio C Hamano <junkio@cox.net>
revision.c | patch | blob | history |
diff --git a/revision.c b/revision.c
index 03085ffe9d9eafb2e40b962b75608b139d25e108..73fba5d3daa0a3447827bf85af513c0ad033a27e 100644 (file)
--- a/revision.c
+++ b/revision.c
@@ -317,12 +317,16 @@ static void try_to_simplify_commit(struct rev_info *revs, struct commit *commit)
case TREE_NEW:
if (revs->remove_empty_trees &&
same_tree_as_empty(p->tree)) {
- /* We are adding all the specified paths from
- * this parent, so the parents of it is
- * not interesting, but the difference between
- * this parent and us still is interesting.
+ /* 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.
*/
- p->object.flags |= UNINTERESTING;
+ parse_commit(p);
+ p->parents = NULL;
}
/* fallthrough */
case TREE_DIFFERENT: