diff options
author | Luke Diamand <luke@diamand.org> | 2012-01-19 09:52:29 +0000 |
---|---|---|
committer | Junio C Hamano <gitster@pobox.com> | 2012-01-20 14:47:46 -0800 |
commit | a080558ed77952b2394499531edc324eb2885d67 (patch) | |
tree | ce703d5a5d7912288709d3a622cddb752db72dd9 | |
parent | git-p4: add test for p4 labels (diff) | |
download | tgif-a080558ed77952b2394499531edc324eb2885d67.tar.xz |
git-p4: label import fails with multiple labels at the same changelist
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>
-rwxr-xr-x | 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 5fa2bcfa97..80d01ea438 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 ' |