Junio C Hamano <gitster@xxxxxxxxx> writes: > 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? Yikes, sorry, this was me being slow. Walking A...B range with right-only and --cherry applied will filter the duplicates, which is wat you want, I think, and walking A..B range will not do the filtering for you. >> # 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