1
0
Fork 0
mirror of https://github.com/git/git.git synced 2024-05-24 04:56:09 +02:00

Merge branch 'ph/rebase-preserve-all-merges'

An earlier change to add --keep-empty option broke "git rebase
--preserve-merges" and lost merge commits that end up being the
same as its parent.

* ph/rebase-preserve-all-merges:
  rebase --preserve-merges: keep all merge commits including empty ones
This commit is contained in:
Junio C Hamano 2013-01-21 20:15:15 -08:00
commit 51c6de2bab

View File

@ -190,6 +190,11 @@ is_empty_commit() {
test "$tree" = "$ptree"
}
is_merge_commit()
{
git rev-parse --verify --quiet "$1"^2 >/dev/null 2>&1
}
# Run command with GIT_AUTHOR_NAME, GIT_AUTHOR_EMAIL, and
# GIT_AUTHOR_DATE exported from the current environment.
do_with_author () {
@ -874,7 +879,7 @@ git rev-list $merges_option --pretty=oneline --abbrev-commit \
while read -r shortsha1 rest
do
if test -z "$keep_empty" && is_empty_commit $shortsha1
if test -z "$keep_empty" && is_empty_commit $shortsha1 && ! is_merge_commit $shortsha1
then
comment_out="# "
else