git.vger.kernel.org archive mirror
 help / color / mirror / Atom feed
From: Luke Diamand <luke@diamand.org>
To: git@vger.kernel.org
Cc: Pete Wyckoff <pw@padd.com>, Vitor Antunes <vitor.hda@gmail.com>,
	Luke Diamand <luke@diamand.org>
Subject: [PATCHv4 5/5] git-p4: label import fails with multiple labels at the same changelist
Date: Thu, 19 Jan 2012 09:52:29 +0000	[thread overview]
Message-ID: <1326966749-9077-6-git-send-email-luke@diamand.org> (raw)
In-Reply-To: <1326966749-9077-1-git-send-email-luke@diamand.org>

git-p4 has an array of changelists with one label per changelist.
But you can have multiple labels on a single changelist and so this
code fails.

Add a test case demonstrating the problem.

Signed-off-by: Luke Diamand <luke@diamand.org>
---
 t/t9804-git-p4-label.sh |   41 +++++++++++++++++++++++++++++++++++++++++
 1 files changed, 41 insertions(+), 0 deletions(-)

diff --git a/t/t9804-git-p4-label.sh b/t/t9804-git-p4-label.sh
index 5fa2bcf..80d01ea 100755
--- a/t/t9804-git-p4-label.sh
+++ b/t/t9804-git-p4-label.sh
@@ -65,6 +65,47 @@ test_expect_success 'basic p4 labels' '
 	)
 '
 
+# Test some label corner cases:
+#
+# - two tags on the same file; both should be available
+# - a tag that is only on one file; this kind of tag
+#   cannot be imported (at least not easily).
+
+test_expect_failure 'two labels on the same changelist' '
+	test_when_finished cleanup_git &&
+	(
+		cd "$cli" &&
+		mkdir -p main &&
+
+		p4 edit main/f1 main/f2 &&
+		echo "hello world" >main/f1 &&
+		echo "not in the tag" >main/f2 &&
+		p4 submit -d "main/f[12]: testing two labels" &&
+
+		p4 tag -l tag_f1_1 main/... &&
+		p4 tag -l tag_f1_2 main/... &&
+
+		p4 labels ... &&
+
+		"$GITP4" clone --dest="$git" --detect-labels //depot@all &&
+		cd "$git" &&
+
+		git tag | grep tag_f1 &&
+		git tag | grep -q tag_f1_1 &&
+		git tag | grep -q tag_f1_2 &&
+
+		cd main &&
+
+		git checkout tag_tag_f1_1 &&
+		ls &&
+		test -f f1 &&
+
+		git checkout tag_tag_f1_2 &&
+		ls &&
+		test -f f1
+	)
+'
+
 test_expect_success 'kill p4d' '
 	kill_p4d
 '
-- 
1.7.8.rc1.209.geac91.dirty

  parent reply	other threads:[~2012-01-19  9:53 UTC|newest]

Thread overview: 7+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2012-01-19  9:52 [PATCHv4 0/5] git-p4: small fixes to branches and labels Luke Diamand
2012-01-19  9:52 ` [PATCHv4 1/5] git-p4: handle p4 branches and labels containing shell chars Luke Diamand
2012-01-19  9:52 ` [PATCHv4 2/5] git-p4: cope with labels with empty descriptions Luke Diamand
2012-01-19  9:52 ` [PATCHv4 3/5] git-p4: importing labels should cope with missing owner Luke Diamand
2012-01-19  9:52 ` [PATCHv4 4/5] git-p4: add test for p4 labels Luke Diamand
2012-01-19  9:52 ` Luke Diamand [this message]
2012-01-19 15:19 ` [PATCHv4 0/5] git-p4: small fixes to branches and labels Pete Wyckoff

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=1326966749-9077-6-git-send-email-luke@diamand.org \
    --to=luke@diamand.org \
    --cc=git@vger.kernel.org \
    --cc=pw@padd.com \
    --cc=vitor.hda@gmail.com \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).