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>
This commit is contained in:
Junio C Hamano 2006-03-12 13:39:31 -08:00
parent a41e109c4b
commit c348f31ab9

View File

@ -317,12 +317,16 @@ static void try_to_simplify_commit(struct rev_info *revs, struct commit *commit)
case TREE_NEW: case TREE_NEW:
if (revs->remove_empty_trees && if (revs->remove_empty_trees &&
same_tree_as_empty(p->tree)) { same_tree_as_empty(p->tree)) {
/* We are adding all the specified paths from /* We are adding all the specified
* this parent, so the parents of it is * paths from this parent, so the
* not interesting, but the difference between * history beyond this parent is not
* this parent and us still is interesting. * 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 */ /* fallthrough */
case TREE_DIFFERENT: case TREE_DIFFERENT: