Merge branch 'jk/long-error-messages'
[gitweb.git] / builtin / pull.c
index eb2a28f4e4193722a9a9b44553598a3dd8399e83..b7bc1fff5e0c05782dbb9e9bf3210248db15c54a 100644 (file)
@@ -431,7 +431,10 @@ static void NORETURN die_no_merge_candidates(const char *repo, const char **refs
        const char *remote = curr_branch ? curr_branch->remote_name : NULL;
 
        if (*refspecs) {
-               fprintf_ln(stderr, _("There are no candidates for merging among the refs that you just fetched."));
+               if (opt_rebase)
+                       fprintf_ln(stderr, _("There is no candidate for rebasing against among the refs that you just fetched."));
+               else
+                       fprintf_ln(stderr, _("There are no candidates for merging among the refs that you just fetched."));
                fprintf_ln(stderr, _("Generally this means that you provided a wildcard refspec which had no\n"
                                        "matches on the remote end."));
        } else if (repo && curr_branch && (!remote || strcmp(repo, remote))) {
@@ -441,7 +444,10 @@ static void NORETURN die_no_merge_candidates(const char *repo, const char **refs
                        repo);
        } else if (!curr_branch) {
                fprintf_ln(stderr, _("You are not currently on a branch."));
-               fprintf_ln(stderr, _("Please specify which branch you want to merge with."));
+               if (opt_rebase)
+                       fprintf_ln(stderr, _("Please specify which branch you want to rebase against."));
+               else
+                       fprintf_ln(stderr, _("Please specify which branch you want to merge with."));
                fprintf_ln(stderr, _("See git-pull(1) for details."));
                fprintf(stderr, "\n");
                fprintf_ln(stderr, "    git pull <remote> <branch>");
@@ -453,7 +459,10 @@ static void NORETURN die_no_merge_candidates(const char *repo, const char **refs
                        remote_name = "<remote>";
 
                fprintf_ln(stderr, _("There is no tracking information for the current branch."));
-               fprintf_ln(stderr, _("Please specify which branch you want to merge with."));
+               if (opt_rebase)
+                       fprintf_ln(stderr, _("Please specify which branch you want to rebase against."));
+               else
+                       fprintf_ln(stderr, _("Please specify which branch you want to merge with."));
                fprintf_ln(stderr, _("See git-pull(1) for details."));
                fprintf(stderr, "\n");
                fprintf_ln(stderr, "    git pull <remote> <branch>");
@@ -789,13 +798,6 @@ int cmd_pull(int argc, const char **argv, const char *prefix)
        unsigned char orig_head[GIT_SHA1_RAWSZ], curr_head[GIT_SHA1_RAWSZ];
        unsigned char rebase_fork_point[GIT_SHA1_RAWSZ];
 
-       if (!getenv("_GIT_USE_BUILTIN_PULL")) {
-               const char *path = mkpath("%s/git-pull", git_exec_path());
-
-               if (sane_execvp(path, (char **)argv) < 0)
-                       die_errno("could not exec %s", path);
-       }
-
        if (!getenv("GIT_REFLOG_ACTION"))
                set_reflog_message(argc, argv);
 
@@ -821,10 +823,14 @@ int cmd_pull(int argc, const char **argv, const char *prefix)
                hashclr(orig_head);
 
        if (opt_rebase) {
+               int autostash = 0;
+
                if (is_null_sha1(orig_head) && !is_cache_unborn())
                        die(_("Updating an unborn branch with changes added to the index."));
 
-               die_on_unclean_work_tree(prefix);
+               git_config_get_bool("rebase.autostash", &autostash);
+               if (!autostash)
+                       die_on_unclean_work_tree(prefix);
 
                if (get_rebase_fork_point(rebase_fork_point, repo, *refspecs))
                        hashclr(rebase_fork_point);