Code

Merge branch 'cn/pull-rebase-message'
authorJunio C Hamano <gitster@pobox.com>
Tue, 6 Mar 2012 22:53:06 +0000 (14:53 -0800)
committerJunio C Hamano <gitster@pobox.com>
Tue, 6 Mar 2012 22:53:06 +0000 (14:53 -0800)
By Carlos Martín Nieto
* cn/pull-rebase-message:
  Make git-{pull,rebase} message without tracking information friendlier

git-parse-remote.sh
git-pull.sh
git-rebase.sh
t/t3400-rebase.sh

index b24119d69c092e3bd345cff1b6bafd48f5fd1e1b..484b2e61ccd6df166a8d6447556ccca4236840ad 100644 (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
+
+    $example
 
-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>
+If you wish to set tracking information for this branch you can do so with:
 
-See git-config(1) for details."
+    git branch --set-upstream ${branch_name#refs/heads/} $remote/<branch>
+"
        fi
        exit 1
 }
index 434c139f077ed5b03fef2b70f2eabb66f7147f23..2a10047eb710011213024bd0acc57eec87a6f965 100755 (executable)
@@ -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."
index 00ca7b99fef35e21d24af844e6dbaa92cab5834f..69c1374823084804662dbd6b6d510ec2ec3428e9 100755 (executable)
@@ -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"
index e647272a01f3ac89e1d08e6b1ffa36a3a543e655..7788ae02adca18ab1d1f8cf7b76243fbf56377ae 100755 (executable)
@@ -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' '