reflog wants to have a short-and-sweet single line message, but its set_reflog_action was slurping the whole command line arguments. When given a multi-line commit message from the command line, reflog code refused to update the ref with the resulting commit. Signed-off-by: Junio C Hamano <junkio@xxxxxxx> --- * When pull threw huge merge message, it has already set the reflog action on its own so this breakage was hidden. Also because most of the time people did not specify -m message (or use the old-style <msg> HEAD <others>) from the command line, nobody seems to have noticed this. git-merge.sh | 2 +- git-pull.sh | 27 +++++++++++++++++++++++++++ 2 files changed, 28 insertions(+), 1 deletions(-) diff --git a/git-merge.sh b/git-merge.sh index 7b59026..91909b7 100755 --- a/git-merge.sh +++ b/git-merge.sh @@ -7,7 +7,7 @@ USAGE='[-n] [--no-commit] [--squash] [-s <strategy>] [-m=<merge-message>] <commi SUBDIRECTORY_OK=Yes . git-sh-setup -set_reflog_action "merge $*" +set_reflog_action merge require_work_tree cd_to_toplevel diff --git a/git-pull.sh b/git-pull.sh index a3665d7..fc76aea 100755 --- a/git-pull.sh +++ b/git-pull.sh @@ -51,6 +51,33 @@ do shift done +if test "X$1" = X. +then + # We are merging from this repository. We can avoid fetch + # and go right into merge if the user isn't doing something + # odd like asking us to also update tracking branches in + # this repository as part of the pull. Yeah, they probably + # shouldn't do that - but we allowed it in the past... + # + direct_merge=1 + for remote + do + case "$remote" in + *:*) direct_merge=0; break;; + esac + done + if test $direct_merge = 1 + then + shift + exec git-merge \ + $no_summary $no_commit $squash $strategy_args \ + "$@" + else + echo >&2 "Clever... Updating tracking branch while pulling from yourself." + echo >&2 + fi +fi + orig_head=$(git-rev-parse --verify HEAD 2>/dev/null) git-fetch --update-head-ok "$@" || exit 1 -- 1.5.0.rc2.g8a816 - 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