On Thu, Apr 05, 2012 at 02:01:43PM -0700, Junio C Hamano wrote: ><snip> > > + including those which were made empty due to a previous change. > > + While this may be desireable, likely it is not. > > Mental note. Up to this point, the reader is told that "--allow-empty" > alone is likely to do a wrong thing. > > > + This option > > + restricts the scope of --allow-empty to only those commits which > > + were created as empty commits ... > > And the user is asked to give "--ignore-if-made-empty" in addition to > "--allow-empty" to get a saner and more likely to be useful behaviour. > Isn't that backwards? This "the other option is insane, and please make > it saner" option needs a lot more typing than the more insane option. > > I would expect that "--allow-empty" would by default filter ones that are > originally non-empty but are made unnecessary (we are allowing empty > commits in the original history to be cherry-picked, but the general > principle that unnecessary commits must not be picked still is in effect). > If you want to give a user the other more insane mode of operation, it is > OK to let the user give a different option *instead* *of* the saner > "--allow-empty". > > Perhaps name that "--keep-unnecessary-commit" (it is no longer about > allowing empty commits in the original history to be picked; it is about > keeping unnecessary and irrelevant commits in the resulting history). > > And error out if both options are given. > I'm working on this today, and in doing so, I don't think I like the one or the other option approach. I think it makes more sense to use an --option / --option-harder model here. Theres precident for this in a few other git command (git format-patch has --find-copies and --find-copies harder). I think we can do an --allow-empty option and a --keep-redundant-commits option, where the former explicitly keeps commits that were non-empty but are now because their changes have already been applied. the latter option then naturally implies the former. Neil -- 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