git_remote_helpers: push all refs during a non-local export
authorJeff King <peff@peff.net>
Sat, 16 Jul 2011 13:03:27 +0000 (15:03 +0200)
committerJunio C Hamano <gitster@pobox.com>
Tue, 19 Jul 2011 18:17:47 +0000 (11:17 -0700)
When a remote helper exports to a non-local git repo, the
steps are roughly:

  1. fast-export into a local staging area; the set of
     interesting refs is defined by what is in the fast-export
     stream

  2. git push from the staging area to the non-local repo

In the second step, we should explicitly push all refs, not
just matching ones. This will let us push refs that do not
yet exist in the remote repo.

Signed-off-by: Jeff King <peff@peff.net>
Signed-off-by: Sverre Rabbelier <srabbelier@gmail.com>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
git_remote_helpers/git/non_local.py
t/t5800-remote-helpers.sh

index f27389bb945ef423dc412c2368762439086f593e..c53e07445a48ff78535baaf7085efccb9a9aa31b 100644 (file)
@@ -63,7 +63,7 @@ class NonLocalGit(object):
         if not os.path.exists(path):
             die("could not find repo at %s", path)
 
-        args = ["git", "--git-dir=" + path, "push", "--quiet", self.repo.gitpath]
+        args = ["git", "--git-dir=" + path, "push", "--quiet", self.repo.gitpath, "--all"]
         child = subprocess.Popen(args)
         if child.wait() != 0:
             raise CalledProcessError
index ceb0010574d276063d010320d174e5961db7ce55..12f471c07088db530b3f94193fd86a1efeb29509 100755 (executable)
@@ -115,7 +115,7 @@ test_expect_success 'push when remote has extra refs' '
        compare_refs clone master server master
 '
 
-test_expect_failure 'push new branch by name' '
+test_expect_success 'push new branch by name' '
        (cd clone &&
         git checkout -b new-name  &&
         echo content >>file &&