Skip to content

Commit

Permalink
Add a test of "git cvsimport"'s handling of tags and branches
Browse files Browse the repository at this point in the history
6 out of 11 of these tests fail.

The test CVS repository used for these tests is derived from one in
cvs2svn's test suite.

Signed-off-by: Michael Haggerty <mhagger@alum.mit.edu>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
  • Loading branch information
Michael Haggerty authored and Junio C Hamano committed Feb 24, 2009
1 parent b225290 commit 0dc0621
Show file tree
Hide file tree
Showing 12 changed files with 921 additions and 0 deletions.
79 changes: 79 additions & 0 deletions t/t9602-cvsimport-branches-tags.sh
Original file line number Diff line number Diff line change
@@ -0,0 +1,79 @@
#!/bin/sh

# A description of the repository used for this test can be found in
# t9602/README.

test_description='git cvsimport handling of branches and tags'
. ./lib-cvs.sh

CVSROOT="$TEST_DIRECTORY"/t9602/cvsroot
export CVSROOT

test_expect_success 'import module' '
git cvsimport -C module-git module
'

test_expect_success 'test branch master' '
test_cmp_branch_tree master
'

test_expect_success 'test branch vendorbranch' '
test_cmp_branch_tree vendorbranch
'

test_expect_failure 'test branch B_FROM_INITIALS' '
test_cmp_branch_tree B_FROM_INITIALS
'

test_expect_failure 'test branch B_FROM_INITIALS_BUT_ONE' '
test_cmp_branch_tree B_FROM_INITIALS_BUT_ONE
'

test_expect_failure 'test branch B_MIXED' '
test_cmp_branch_tree B_MIXED
'

test_expect_success 'test branch B_SPLIT' '
test_cmp_branch_tree B_SPLIT
'

test_expect_failure 'test tag vendortag' '
test_cmp_branch_tree vendortag
'

test_expect_success 'test tag T_ALL_INITIAL_FILES' '
test_cmp_branch_tree T_ALL_INITIAL_FILES
'

test_expect_failure 'test tag T_ALL_INITIAL_FILES_BUT_ONE' '
test_cmp_branch_tree T_ALL_INITIAL_FILES_BUT_ONE
'

test_expect_failure 'test tag T_MIXED' '
test_cmp_branch_tree T_MIXED
'


test_done
62 changes: 62 additions & 0 deletions t/t9602/README
Original file line number Diff line number Diff line change
@@ -0,0 +1,62 @@
This repository is for testing the ability to group revisions
correctly along tags and branches. Here is its history:

1. The initial import (revision 1.1 of everybody) created a
directory structure with a file named `default' in each dir:

./
default
sub1/default
subsubA/default
subsubB/default
sub2/default
subsubA/default
sub3/default

2. Then tagged everyone with T_ALL_INITIAL_FILES.

3. Then tagged everyone except sub1/subsubB/default with
T_ALL_INITIAL_FILES_BUT_ONE.

4. Then created branch B_FROM_INITIALS on everyone.

5. Then created branch B_FROM_INITIALS_BUT_ONE on everyone except
/sub1/subsubB/default.

6. Then committed modifications to two files: sub3/default, and
sub1/subsubA/default.

7. Then committed a modification to all 7 files.

8. Then backdated sub3/default to revision 1.2, and
sub2/subsubA/default to revision 1.1, and tagged with T_MIXED.

9. Same as 8, but tagged with -b to create branch B_MIXED.

10. Switched the working copy to B_MIXED, and added
sub2/branch_B_MIXED_only. (That's why the RCS file is in
sub2/Attic/ -- it never existed on trunk.)

11. In one commit, modified default, sub1/default, and
sub2/subsubA/default, on branch B_MIXED.

12. Did "cvs up -A" on sub2/default, then in one commit, made a
change to sub2/default and sub2/branch_B_MIXED_only. So this
commit should be spread between the branch and the trunk.

13. Do "cvs up -A" to get everyone back to trunk, then make a new
branch B_SPLIT on everyone except sub1/subsubB/default,v.

14. Switch to branch B_SPLIT (see sub1/subsubB/default disappear)
and commit a change that affects everyone except sub3/default.

15. An hour or so later, "cvs up -A" to get sub1/subsubB/default
back, then commit a change on that file, on trunk. (It's
important that this change happened after the previous commits
on B_SPLIT.)

16. Branch sub1/subsubB/default to B_SPLIT, then "cvs up -r B_SPLIT"
to switch the whole working copy to the branch.

17. Commit a change on B_SPLIT, to sub1/subsubB/default and
sub3/default.
1 change: 1 addition & 0 deletions t/t9602/cvsroot/.gitattributes
Original file line number Diff line number Diff line change
@@ -0,0 +1 @@
* -whitespace
2 changes: 2 additions & 0 deletions t/t9602/cvsroot/CVSROOT/.gitignore
Original file line number Diff line number Diff line change
@@ -0,0 +1,2 @@
history
val-tags
102 changes: 102 additions & 0 deletions t/t9602/cvsroot/module/default,v
Original file line number Diff line number Diff line change
@@ -0,0 +1,102 @@
head 1.2;
access;
symbols
B_SPLIT:1.2.0.4
B_MIXED:1.2.0.2
T_MIXED:1.2
B_FROM_INITIALS_BUT_ONE:1.1.1.1.0.4
B_FROM_INITIALS:1.1.1.1.0.2
T_ALL_INITIAL_FILES_BUT_ONE:1.1.1.1
T_ALL_INITIAL_FILES:1.1.1.1
vendortag:1.1.1.1
vendorbranch:1.1.1;
locks; strict;
comment @# @;


1.2
date 2003.05.23.00.17.53; author jrandom; state Exp;
branches
1.2.2.1
1.2.4.1;
next 1.1;

1.1
date 2003.05.22.23.20.19; author jrandom; state Exp;
branches
1.1.1.1;
next ;

1.1.1.1
date 2003.05.22.23.20.19; author jrandom; state Exp;
branches;
next ;

1.2.2.1
date 2003.05.23.00.31.36; author jrandom; state Exp;
branches;
next ;

1.2.4.1
date 2003.06.03.03.20.31; author jrandom; state Exp;
branches;
next ;


desc
@@


1.2
log
@Second commit to proj, affecting all 7 files.
@
text
@This is the file `default' in the top level of the project.

Every directory in the `proj' project has a file named `default'.

This line was added in the second commit (affecting all 7 files).
@


1.2.4.1
log
@First change on branch B_SPLIT.

This change excludes sub3/default, because it was not part of this
commit, and sub1/subsubB/default, which is not even on the branch yet.
@
text
@a5 2

First change on branch B_SPLIT.
@


1.2.2.1
log
@Modify three files, on branch B_MIXED.
@
text
@a5 2

This line was added on branch B_MIXED only (affecting 3 files).
@


1.1
log
@Initial revision
@
text
@d4 2
@


1.1.1.1
log
@Initial import.
@
text
@@
102 changes: 102 additions & 0 deletions t/t9602/cvsroot/module/sub1/default,v
Original file line number Diff line number Diff line change
@@ -0,0 +1,102 @@
head 1.2;
access;
symbols
B_SPLIT:1.2.0.4
B_MIXED:1.2.0.2
T_MIXED:1.2
B_FROM_INITIALS_BUT_ONE:1.1.1.1.0.4
B_FROM_INITIALS:1.1.1.1.0.2
T_ALL_INITIAL_FILES_BUT_ONE:1.1.1.1
T_ALL_INITIAL_FILES:1.1.1.1
vendortag:1.1.1.1
vendorbranch:1.1.1;
locks; strict;
comment @# @;


1.2
date 2003.05.23.00.17.53; author jrandom; state Exp;
branches
1.2.2.1
1.2.4.1;
next 1.1;

1.1
date 2003.05.22.23.20.19; author jrandom; state Exp;
branches
1.1.1.1;
next ;

1.1.1.1
date 2003.05.22.23.20.19; author jrandom; state Exp;
branches;
next ;

1.2.2.1
date 2003.05.23.00.31.36; author jrandom; state Exp;
branches;
next ;

1.2.4.1
date 2003.06.03.03.20.31; author jrandom; state Exp;
branches;
next ;


desc
@@


1.2
log
@Second commit to proj, affecting all 7 files.
@
text
@This is sub1/default.

Every directory in the `proj' project has a file named `default'.

This line was added in the second commit (affecting all 7 files).
@


1.2.4.1
log
@First change on branch B_SPLIT.

This change excludes sub3/default, because it was not part of this
commit, and sub1/subsubB/default, which is not even on the branch yet.
@
text
@a5 2

First change on branch B_SPLIT.
@


1.2.2.1
log
@Modify three files, on branch B_MIXED.
@
text
@a5 2

This line was added on branch B_MIXED only (affecting 3 files).
@


1.1
log
@Initial revision
@
text
@d4 2
@


1.1.1.1
log
@Initial import.
@
text
@@
Loading

0 comments on commit 0dc0621

Please sign in to comment.