Skip to content

Commit

Permalink
git-p4: label import fails with multiple labels at the same changelist
Browse files Browse the repository at this point in the history
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>
Acked-by: Pete Wyckoff <pw@padd.com>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
  • Loading branch information
Luke Diamand authored and Junio C Hamano committed Jan 20, 2012
1 parent 4139ecc commit a080558
Showing 1 changed file with 41 additions and 0 deletions.
41 changes: 41 additions & 0 deletions t/t9804-git-p4-label.sh
Original file line number Diff line number Diff line change
Expand Up @@ -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
'
Expand Down

0 comments on commit a080558

Please sign in to comment.