This patch isn't ready for prime-time yet but I wanted to get it out for some discussion. While cleaning up and enhancing git-subtree, I've come across the need to have rebase behave nicely in the case of empty and redundant commits. There's a case in pick_one_preserving_merges where git-cherry pick is used to process the rebase and if cherry-pick fails, the rebase aborts. This change does two things: - If --keep-empty is specified, invoke cherry-pick with --allow-empty. - If new option --keep-redundant is specified, invoke cherry-pick with --keep-redundant-commits. This allows the rebase to go forward without intrruption in the included tests. I will also need a third option that has cherry-pick ignore redundant commits and remove them from the history. Unfortunately, I can't make out exactly how to do that in commit.c, which is where I gather the cherry-pick stuff happens. I'll need some help with that if there's general agreement that this is a useful enhancement. During the course of developing this, I've encountered some strange rebase behavior. I'll send another message about that. I'd appreciate feedback on this direction and any help with the cherry-pick stuff. Thanks! -David -- To unsubscribe from this list: send the line "unsubscribe git" in the body of a message to majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html