Merge branch 'pw/p4'
authorJunio C Hamano <gitster@pobox.com>
Wed, 23 Mar 2011 21:54:24 +0000 (14:54 -0700)
committerJunio C Hamano <gitster@pobox.com>
Wed, 23 Mar 2011 21:54:24 +0000 (14:54 -0700)
* pw/p4:
git-p4: test sync new branch
git-p4: fix sync new branch regression

contrib/fast-import/git-p4
t/t9800-git-p4.sh
index 47ba7adafba2f0eb3966dcac11b8063e3171145a..388151503423aeff0a99ee943f7eebf0c8fec476 100755 (executable)
@@ -1780,7 +1780,9 @@ class P4Sync(Command):
 
                 changes.sort()
             else:
-                if not isinstance(self, P4Clone) and not self.p4BranchesInGit:
+                # catch "git-p4 sync" with no new branches, in a repo that
+                # does not have any existing git-p4 branches
+                if len(args) == 0 and not self.p4BranchesInGit:
                     die("No remote p4 branches.  Perhaps you never did \"git p4 clone\" in here.");
                 if self.verbose:
                     print "Getting p4 changes for %s...%s" % (', '.join(self.depotPaths),
index abe7c64ba9ca8442f4c50d15fffeefd6bba02b5f..a523473954a43193e8111beb58027b6734cb664b 100755 (executable)
@@ -61,6 +61,29 @@ test_expect_success 'git-p4 clone @all' '
        rm -rf "$git" && mkdir "$git"
 '
 
+test_expect_success 'git-p4 sync uninitialized repo' '
+       test_create_repo "$git" &&
+       cd "$git" &&
+       test_must_fail "$GITP4" sync &&
+       rm -rf "$git" && mkdir "$git"
+'
+
+#
+# Create a git repo by hand.  Add a commit so that HEAD is valid.
+# Test imports a new p4 repository into a new git branch.
+#
+test_expect_success 'git-p4 sync new branch' '
+       test_create_repo "$git" &&
+       cd "$git" &&
+       test_commit head &&
+       "$GITP4" sync --branch=refs/remotes/p4/depot //depot@all &&
+       git log --oneline p4/depot >lines &&
+       cat lines &&
+       test_line_count = 2 lines &&
+       cd .. &&
+       rm -rf "$git" && mkdir "$git"
+'
+
 test_expect_success 'exit when p4 fails to produce marshaled output' '
        badp4dir="$TRASH_DIRECTORY/badp4dir" &&
        mkdir -p "$badp4dir" &&