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:
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: