diff options
author | Junio C Hamano <junkio@cox.net> | 2006-03-12 13:39:31 -0800 |
---|---|---|
committer | Junio C Hamano <junkio@cox.net> | 2006-03-12 17:06:57 -0800 |
commit | c348f31ab9d8f695aef405d9981b85c943a5875a (patch) | |
tree | 6df4d4c7e4e311b18294db68bae3850449d42af5 /revision.c | |
parent | a41e109c4bcd56537fc3801623b1aa0dd4e06f1c (diff) | |
download | git-c348f31ab9d8f695aef405d9981b85c943a5875a.tar.gz |
revision traversal: --remove-empty fix (take #2).
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>
Diffstat (limited to 'revision.c')
-rw-r--r-- | revision.c | 14 |
1 files changed, 9 insertions, 5 deletions
diff --git a/revision.c b/revision.c index 03085ffe9d..73fba5d3da 100644 --- 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: |