clone: always fetch remote HEAD
[gitweb.git] / builtin / push.c
index f4358b9d230f6d8d7a9a67fdfbc60279c5ec71ee..31da418cf4a9e4732edb8201c80b07f7ddadbac1 100644 (file)
@@ -22,13 +22,13 @@ static int progress;
 
 static const char **refspec;
 static int refspec_nr;
+static int refspec_alloc;
 
 static void add_refspec(const char *ref)
 {
-       int nr = refspec_nr + 1;
-       refspec = xrealloc(refspec, nr * sizeof(char *));
-       refspec[nr-1] = ref;
-       refspec_nr = nr;
+       refspec_nr++;
+       ALLOC_GROW(refspec, refspec_nr, refspec_alloc);
+       refspec[refspec_nr-1] = ref;
 }
 
 static void set_refspecs(const char **refs, int nr)
@@ -64,17 +64,17 @@ static void set_refspecs(const char **refs, int nr)
        }
 }
 
-static void setup_push_tracking(void)
+static void setup_push_upstream(void)
 {
        struct strbuf refspec = STRBUF_INIT;
        struct branch *branch = branch_get(NULL);
        if (!branch)
                die("You are not currently on a branch.");
        if (!branch->merge_nr || !branch->merge)
-               die("The current branch %s is not tracking anything.",
+               die("The current branch %s has no upstream branch.",
                    branch->name);
        if (branch->merge_nr != 1)
-               die("The current branch %s is tracking multiple branches, "
+               die("The current branch %s has multiple upstream branches, "
                    "refusing to push.", branch->name);
        strbuf_addf(&refspec, "%s:%s", branch->name, branch->merge[0]->src);
        add_refspec(refspec.buf);
@@ -88,8 +88,8 @@ static void setup_default_push_refspecs(void)
                add_refspec(":");
                break;
 
-       case PUSH_DEFAULT_TRACKING:
-               setup_push_tracking();
+       case PUSH_DEFAULT_UPSTREAM:
+               setup_push_upstream();
                break;
 
        case PUSH_DEFAULT_CURRENT:
@@ -130,8 +130,8 @@ static int push_with_options(struct transport *transport, int flags)
 
        if (nonfastforward && advice_push_nonfastforward) {
                fprintf(stderr, "To prevent you from losing history, non-fast-forward updates were rejected\n"
-                               "Merge the remote changes before pushing again.  See the 'Note about\n"
-                               "fast-forwards' section of 'git push --help' for details.\n");
+                               "Merge the remote changes (e.g. 'git pull') before pushing again.  See the\n"
+                               "'Note about fast-forwards' section of 'git push --help' for details.\n");
        }
 
        return 1;