Merge branch 'cn/pull-rebase-message'

By Carlos Martín Nieto
* cn/pull-rebase-message:
  Make git-{pull,rebase} message without tracking information friendlier
This commit is contained in:
Junio C Hamano 2012-03-06 14:53:06 -08:00
commit 4b4ec3fc64
4 changed files with 24 additions and 29 deletions

View File

@ -57,34 +57,31 @@ error_on_missing_default_upstream () {
op_prep="$3"
example="$4"
branch_name=$(git symbolic-ref -q HEAD)
# If there's only one remote, use that in the suggestion
remote="<remote>"
if test $(git remote | wc -l) = 1
then
remote=$(git remote)
fi
if test -z "$branch_name"
then
echo "You are not currently on a branch, so I cannot use any
'branch.<branchname>.merge' in your configuration file.
Please specify which branch you want to $op_type $op_prep on the command
line and try again (e.g. '$example').
See git-${cmd}(1) for details."
echo "You are not currently on a branch. Please specify which
branch you want to $op_type $op_prep. See git-${cmd}(1) for details.
$example
"
else
echo "You asked me to $cmd without telling me which branch you
want to $op_type $op_prep, and 'branch.${branch_name#refs/heads/}.merge' in
your configuration file does not tell me, either. Please
specify which branch you want to use on the command line and
try again (e.g. '$example').
See git-${cmd}(1) for details.
echo "There is no tracking information for the current branch.
Please specify which branch you want to $op_type $op_prep.
See git-${cmd}(1) for details
If you often $op_type $op_prep the same branch, you may want to
use something like the following in your configuration file:
[branch \"${branch_name#refs/heads/}\"]
remote = <nickname>
merge = <remote-ref>"
test rebase = "$op_type" &&
echo " rebase = true"
echo "
[remote \"<nickname>\"]
url = <url>
fetch = <refspec>
$example
See git-config(1) for details."
If you wish to set tracking information for this branch you can do so with:
git branch --set-upstream ${branch_name#refs/heads/} $remote/<branch>
"
fi
exit 1
}

View File

@ -180,7 +180,7 @@ error_on_no_merge_candidates () {
elif [ -z "$curr_branch" -o -z "$upstream" ]; then
. git-parse-remote
error_on_missing_default_upstream "pull" $op_type $op_prep \
"git pull <repository> <refspec>"
"git pull <remote> <branch>"
else
echo "Your configuration specifies to $op_type $op_prep the ref '${upstream#refs/heads/}'"
echo "from the remote, but no such ref was fetched."

View File

@ -380,7 +380,7 @@ then
then
. git-parse-remote
error_on_missing_default_upstream "rebase" "rebase" \
"against" "git rebase <upstream branch>"
"against" "git rebase <branch>"
fi
;;
*) upstream_name="$1"

View File

@ -160,14 +160,12 @@ rm -f B
test_expect_success 'fail when upstream arg is missing and not on branch' '
git checkout topic &&
test_must_fail git rebase >output.out &&
grep "You are not currently on a branch" output.out
test_must_fail git rebase
'
test_expect_success 'fail when upstream arg is missing and not configured' '
git checkout -b no-config topic &&
test_must_fail git rebase >output.out &&
grep "branch.no-config.merge" output.out
test_must_fail git rebase
'
test_expect_success 'default to @{upstream} when upstream arg is missing' '