rebase -i: ignore patches that are already in the upstream
Non-interactive rebase had this from the beginning -- match it by using --cherry-pick option to rev-list. Signed-off-by: Johannes Schindelin <johannes.schindelin@gmx.de> Signed-off-by: Junio C Hamano <gitster@pobox.com>maint
parent
420acb31ac
commit
96ffe892e3
|
@ -463,8 +463,9 @@ do
|
||||||
#
|
#
|
||||||
EOF
|
EOF
|
||||||
git rev-list $MERGES_OPTION --pretty=oneline --abbrev-commit \
|
git rev-list $MERGES_OPTION --pretty=oneline --abbrev-commit \
|
||||||
--abbrev=7 --reverse $UPSTREAM..$HEAD | \
|
--abbrev=7 --reverse --left-right --cherry-pick \
|
||||||
sed "s/^/pick /" >> "$TODO"
|
$UPSTREAM...$HEAD | \
|
||||||
|
sed -n "s/^>/pick /p" >> "$TODO"
|
||||||
|
|
||||||
test -z "$(grep -ve '^$' -e '^#' < $TODO)" &&
|
test -z "$(grep -ve '^$' -e '^#' < $TODO)" &&
|
||||||
die_abort "Nothing to do"
|
die_abort "Nothing to do"
|
||||||
|
|
|
@ -68,6 +68,9 @@ test "\$1" = .git/COMMIT_EDITMSG && {
|
||||||
test -z "\$FAKE_COMMIT_AMEND" || echo "\$FAKE_COMMIT_AMEND" >> "\$1"
|
test -z "\$FAKE_COMMIT_AMEND" || echo "\$FAKE_COMMIT_AMEND" >> "\$1"
|
||||||
exit
|
exit
|
||||||
}
|
}
|
||||||
|
test -z "\$EXPECT_COUNT" ||
|
||||||
|
test "\$EXPECT_COUNT" = \$(grep -ve "^#" -e "^$" < "\$1" | wc -l) ||
|
||||||
|
exit
|
||||||
test -z "\$FAKE_LINES" && exit
|
test -z "\$FAKE_LINES" && exit
|
||||||
grep -v "^#" < "\$1" > "\$1".tmp
|
grep -v "^#" < "\$1" > "\$1".tmp
|
||||||
rm "\$1"
|
rm "\$1"
|
||||||
|
@ -251,4 +254,16 @@ test_expect_success 'interrupted squash works as expected' '
|
||||||
test $one = $(git rev-parse HEAD~2)
|
test $one = $(git rev-parse HEAD~2)
|
||||||
'
|
'
|
||||||
|
|
||||||
|
test_expect_success 'ignore patch if in upstream' '
|
||||||
|
HEAD=$(git rev-parse HEAD) &&
|
||||||
|
git checkout -b has-cherry-picked HEAD^ &&
|
||||||
|
echo unrelated > file7 &&
|
||||||
|
git add file7 &&
|
||||||
|
test_tick &&
|
||||||
|
git commit -m "unrelated change" &&
|
||||||
|
git cherry-pick $HEAD &&
|
||||||
|
EXPECT_COUNT=1 git rebase -i $HEAD &&
|
||||||
|
test $HEAD = $(git rev-parse HEAD^)
|
||||||
|
'
|
||||||
|
|
||||||
test_done
|
test_done
|
||||||
|
|
Loading…
Reference in New Issue