# [PATCH 0/2] git-p4: sync new branch regression

3 messages from 2011-03-16 to 2011-03-16. Participants: Pete Wyckoff.
Thread: https://gitlist.dev/t/26755

## Pete Wyckoff, 2011-03-16 20:50

Subject: [PATCH 0/2] git-p4: sync new branch regression
Message-ID: <20110316205008.GA22702@arf.padd.com>
URL: https://gitlist.dev/e/20110316205008.GA22702%40arf.padd.com

```
Here is another fix for e32e00d (git-p4: better message for
"git-p4 sync" when not cloned, 2011-02-19).  Mike pointed out
that his use case breaks too.

These two patches fix it, and add two new test cases to
check for future breakage.  At least we're coming up with
a good set of tests.

    git-p4: fix sync new branch regression
    git-p4: test sync new branch

 contrib/fast-import/git-p4 |    4 +++-
 t/t9800-git-p4.sh          |   23 +++++++++++++++++++++++
 2 files changed, 26 insertions(+), 1 deletions(-)

These would be good on master, beyond e32e00d that is
in your pw/p4.  Thanks,

                -- Pete

```

## Pete Wyckoff, 2011-03-16 20:52

Subject: [PATCH 1/2] git-p4: fix sync new branch regression
Message-ID: <20110316205246.GA23387@arf.padd.com>
URL: https://gitlist.dev/e/20110316205246.GA23387%40arf.padd.com
In-Reply-To: <20110316205008.GA22702@arf.padd.com>

```
e32e00d (git-p4: better message for "git-p4 sync" when not
cloned, 2011-02-19) broke another use case, that of using
"git-p4 sync" to import a new branch into an existing repository.

Refine the fix again, on top of the fix in ac34efc.

Reported-by: Michael Horowitz <michael.horowitz@ieee.org>
Signed-off-by: Pete Wyckoff <pw@padd.com>
Tested-by: Michael Horowitz <michael.horowitz@ieee.org>
---
 contrib/fast-import/git-p4 |    4 +++-
 1 files changed, 3 insertions(+), 1 deletions(-)

diff --git a/contrib/fast-import/git-p4 b/contrib/fast-import/git-p4
index 7cb479c..2eacb95 100755
--- a/contrib/fast-import/git-p4
+++ b/contrib/fast-import/git-p4
@@ -1763,7 +1763,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),
-- 
1.7.4.1

```

## Pete Wyckoff, 2011-03-16 20:53

Subject: [PATCH 2/2] git-p4: test sync new branch
Message-ID: <20110316205353.GB23387@arf.padd.com>
URL: https://gitlist.dev/e/20110316205353.GB23387%40arf.padd.com
In-Reply-To: <20110316205008.GA22702@arf.padd.com>

```
Add two new unit tests.  One to test the feature that that
was added in e32e00d, and another to test the regression
that was fixed in the parent to this commit.

Signed-off-by: Pete Wyckoff <pw@padd.com>
---
 t/t9800-git-p4.sh |   23 +++++++++++++++++++++++
 1 files changed, 23 insertions(+), 0 deletions(-)

diff --git a/t/t9800-git-p4.sh b/t/t9800-git-p4.sh
index abe7c64..a523473 100755
--- a/t/t9800-git-p4.sh
+++ b/t/t9800-git-p4.sh
@@ -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" &&
-- 
1.7.4.1

```
