[PATCH] git-merge: make it usable as the first class UI again.

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



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

[Index of Archives]     [Linux Kernel Development]     [Gcc Help]     [IETF Annouce]     [DCCP]     [Netdev]     [Networking]     [Security]     [V4L]     [Bugtraq]     [Yosemite]     [MIPS Linux]     [ARM Linux]     [Linux Security]     [Linux RAID]     [Linux SCSI]     [Fedora Users]