diff options
Diffstat (limited to 'git-pull.sh')
| -rwxr-xr-x | git-pull.sh | 25 | 
1 files changed, 15 insertions, 10 deletions
| diff --git a/git-pull.sh b/git-pull.sh index 3ce32b5f21..809e537a4d 100755 --- a/git-pull.sh +++ b/git-pull.sh @@ -4,7 +4,7 @@  #  # Fetch one or more remote refs and merge it/them into the current HEAD. -USAGE='[-n | --no-summary] [--[no-]commit] [--[no-]squash] [--[no-]ff] [-s strategy]... [<fetch-options>] <repo> <head>...' +USAGE='[-n | --no-stat] [--[no-]commit] [--[no-]squash] [--[no-]ff] [-s strategy]... [<fetch-options>] <repo> <head>...'  LONG_USAGE='Fetch one or more remote refs and merge it/them into the current HEAD.'  SUBDIRECTORY_OK=Yes  OPTIONS_SPEC= @@ -16,19 +16,19 @@ cd_to_toplevel  test -z "$(git ls-files -u)" ||  	die "You are in the middle of a conflicted merge." -strategy_args= no_summary= no_commit= squash= no_ff= +strategy_args= no_stat= no_commit= squash= no_ff= log_arg=  curr_branch=$(git symbolic-ref -q HEAD)  curr_branch_short=$(echo "$curr_branch" | sed "s|refs/heads/||")  rebase=$(git config --bool branch.$curr_branch_short.rebase)  while :  do  	case "$1" in -	-n|--n|--no|--no-|--no-s|--no-su|--no-sum|--no-summ|\ -		--no-summa|--no-summar|--no-summary) -		no_summary=-n ;; -	--summary) -		no_summary=$1 -		;; +	-n|--no-stat|--no-summary) +		no_stat=-n ;; +	--stat|--summary) +		no_stat=$1 ;; +	--log|--no-log) +		log_arg=$1 ;;  	--no-c|--no-co|--no-com|--no-comm|--no-commi|--no-commit)  		no_commit=--no-commit ;;  	--c|--co|--com|--comm|--commi|--commit) @@ -107,6 +107,11 @@ error_on_no_merge_candidates () {  }  test true = "$rebase" && { +	git update-index --refresh && +	git diff-files --quiet && +	git diff-index --cached --quiet HEAD -- || +	die "refusing to pull with rebase: your working tree is not up-to-date" +  	. git-parse-remote &&  	origin="$1"  	test -z "$origin" && origin=$(get_default_remote) @@ -172,9 +177,9 @@ then  	exit  fi -merge_name=$(git fmt-merge-msg <"$GIT_DIR/FETCH_HEAD") || exit +merge_name=$(git fmt-merge-msg $log_arg <"$GIT_DIR/FETCH_HEAD") || exit  test true = "$rebase" &&  	exec git-rebase $strategy_args --onto $merge_head \  	${oldremoteref:-$merge_head} -exec git-merge $no_summary $no_commit $squash $no_ff $strategy_args \ +exec git-merge $no_stat $no_commit $squash $no_ff $log_arg $strategy_args \  	"$merge_name" HEAD $merge_head | 
