diff options
-rw-r--r-- | git-parse-remote.sh | 43 | ||||
-rwxr-xr-x | git-pull.sh | 2 | ||||
-rwxr-xr-x | git-rebase.sh | 2 | ||||
-rwxr-xr-x | t/t3400-rebase.sh | 6 |
4 files changed, 24 insertions, 29 deletions
diff --git a/git-parse-remote.sh b/git-parse-remote.sh index b24119d69c..484b2e61cc 100644 --- a/git-parse-remote.sh +++ b/git-parse-remote.sh @@ -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 } diff --git a/git-pull.sh b/git-pull.sh index 434c139f07..2a10047eb7 100755 --- a/git-pull.sh +++ b/git-pull.sh @@ -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." diff --git a/git-rebase.sh b/git-rebase.sh index 00ca7b99fe..69c1374823 100755 --- a/git-rebase.sh +++ b/git-rebase.sh @@ -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" diff --git a/t/t3400-rebase.sh b/t/t3400-rebase.sh index e647272a01..7788ae02ad 100755 --- a/t/t3400-rebase.sh +++ b/t/t3400-rebase.sh @@ -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' ' |