git/list[1] front-page[2] threads[3] people[4] search[5] about
 

[PATCHv4 5/5] git-p4: label import fails with multiple labels at the same changelist

From
Luke Diamand <luke@diamand.org>
Date
Jan 19, 2012, 09:52 UTC
Message-ID
<1326966749-9077-6-git-send-email-luke@diamand.org>
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
Previous: Luke DiamandNext: Pete Wyckoff
Message 6 of 7 in “[PATCHv4 0/5] git-p4: small fixes to branches and labels”
  1. Luke DiamandJan 19, 2012
  2. 1/5 git-p4: handle p4 branches and labels containing shell charsLuke Diamand, Jan 19, 2012
  3. 2/5 git-p4: cope with labels with empty descriptionsLuke Diamand, Jan 19, 2012
  4. 3/5 git-p4: importing labels should cope with missing ownerLuke Diamand, Jan 19, 2012
  5. 4/5 git-p4: add test for p4 labelsLuke Diamand, Jan 19, 2012
  6. 5/5 git-p4: label import fails with multiple labels at the same changelistLuke Diamand, Jan 19, 2012
  7. Pete WyckoffJan 19, 2012

Read the whole thread, see it on lore, or plain text.

$ cat FOOTERMessages come from the public archive at lore.kernel.org/git, fetched every hour. The front page is chosen and written each morning by an AI editor and can be wrong; the threads themselves are the record. About and API. For agents: an MCP server at https://gitlist.dev/mcp, and any thread, story or person page as Markdown by adding .md to its URL (or sending Accept: text/markdown). Details in /llms.txt.