Supplying a non-linear range was another orphan factory. While in theory there
could be a use case for skipping over garbage commits (like adding debugging)
and getting the valuable commits extracted out at the same time as posting a
review, it seems far more likely that specifying a non-linear range is a user
error. This is another case of issue6045, but predates both 0680b8a1992a and
601ce5392cb0.
Neither the --no-amend case nor resubmitting a previously submitted commit
would cause orphans. But for the sake of simplicity and to keep the parents
tracked on Phabricator in the proper state, ban missing commits unconditionally.
Not sure about the use of first and last here. Are the revs already sorted ? Did we filter set with multiple head/root already?
If so, it could be useful to mention the assertion in the inline comment. If not, we have a probleme.
(also, not that if revs is a smartset, you can use first() and last() on them IIRC.)