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>
diff --git a/revision.c b/revision.c
index 03085ff..73fba5d 100644
--- a/revision.c
+++ b/revision.c
@@ -317,12 +317,16 @@
 		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: