Felipe Contreras <felipe.contreras@xxxxxxxxx> writes: > So that all the tests pass. > > Signed-off-by: Felipe Contreras <felipe.contreras@xxxxxxxxx> > --- > git-rebase--cherry.sh | 17 ++++++++++++++++- > 1 file changed, 16 insertions(+), 1 deletion(-) > > diff --git a/git-rebase--cherry.sh b/git-rebase--cherry.sh > index ca78b1b..c3a2ac9 100644 > --- a/git-rebase--cherry.sh > +++ b/git-rebase--cherry.sh > @@ -23,11 +23,26 @@ test -n "$rebase_root" && root_flag=--root > mkdir "$state_dir" || die "Could not create temporary $state_dir" > : > "$state_dir"/cherry || die "Could not mark as cherry" > > +if test -n "$rebase_root" > +then > + revisions="$onto...$orig_head" > +else > + revisions="$upstream...$orig_head" > +fi "So that all the tests pass" needs a bit more explanation to say for cherry-pick codepath why and how two-dot range fails and why and how three-dot variant with --right-only fixes it. What are the problematic cases? > # we have to do this the hard way. git format-patch completely squashes > # empty commits and even if it didn't the format doesn't really lend > # itself well to recording empty patches. fortunately, cherry-pick > # makes this easy > -git cherry-pick --allow-empty "$revisions" > +if test -n "$keep_empty" > +then > + extra="--allow-empty" > +else > + extra="--skip-empty --cherry-pick" > +fi > +test -n "$GIT_QUIET" && extra="$extra -q" > +test -z "$force_rebase" && extra="$extra --ff" > +git cherry-pick --no-merges --right-only --topo-order --do-walk --copy-notes $extra "$revisions" > ret=$? > > if test 0 != $ret -- 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