Merge branch 'hv/cvsps-tests'

* hv/cvsps-tests:
  t/t9600: remove exit after test_done
  cvsimport: extend testcase about patchset order to contain branches
  cvsimport: add test illustrating a bug in cvsps
  Add a test of "git cvsimport"'s handling of tags and branches
  Add some tests of git-cvsimport's handling of vendor branches
  Test contents of entire cvsimported "master" tree contents
  Use CVS's -f option if available (ignore user's ~/.cvsrc file)
  Start a library for cvsimport-related tests
This commit is contained in:
Junio C Hamano 2009-07-29 10:39:57 -07:00
commit b65954d172
28 changed files with 1627 additions and 33 deletions

75
t/lib-cvs.sh Normal file
View file

@ -0,0 +1,75 @@
#!/bin/sh
. ./test-lib.sh
unset CVS_SERVER
# for clean cvsps cache
HOME=$(pwd)
export HOME
if ! type cvs >/dev/null 2>&1
then
say 'skipping cvsimport tests, cvs not found'
test_done
fi
CVS="cvs -f"
export CVS
cvsps_version=`cvsps -h 2>&1 | sed -ne 's/cvsps version //p'`
case "$cvsps_version" in
2.1 | 2.2*)
;;
'')
say 'skipping cvsimport tests, cvsps not found'
test_done
;;
*)
say 'skipping cvsimport tests, unsupported cvsps version'
test_done
;;
esac
test_cvs_co () {
# Usage: test_cvs_co BRANCH_NAME
rm -rf module-cvs-"$1"
if [ "$1" = "master" ]
then
$CVS co -P -d module-cvs-"$1" -A module
else
$CVS co -P -d module-cvs-"$1" -r "$1" module
fi
}
test_git_co () {
# Usage: test_git_co BRANCH_NAME
(cd module-git && git checkout "$1")
}
test_cmp_branch_file () {
# Usage: test_cmp_branch_file BRANCH_NAME PATH
# The branch must already be checked out of CVS and git.
test_cmp module-cvs-"$1"/"$2" module-git/"$2"
}
test_cmp_branch_tree () {
# Usage: test_cmp_branch_tree BRANCH_NAME
# Check BRANCH_NAME out of CVS and git and make sure that all
# of the files and directories are identical.
test_cvs_co "$1" &&
test_git_co "$1" &&
(
cd module-cvs-"$1"
find . -type d -name CVS -prune -o -type f -print
) | sort >module-cvs-"$1".list &&
(
cd module-git
find . -type d -name .git -prune -o -type f -print
) | sort >module-git-"$1".list &&
test_cmp module-cvs-"$1".list module-git-"$1".list &&
cat module-cvs-"$1".list | while read f
do
test_cmp_branch_file "$1" "$f" || return 1
done
}

View file

@ -1,7 +1,7 @@
#!/bin/sh
test_description='git cvsimport basic tests'
. ./test-lib.sh
. ./lib-cvs.sh
if ! test_have_prereq PERL; then
say 'skipping git cvsimport tests, perl not available'
@ -10,37 +10,13 @@ fi
CVSROOT=$(pwd)/cvsroot
export CVSROOT
unset CVS_SERVER
# for clean cvsps cache
HOME=$(pwd)
export HOME
if ! type cvs >/dev/null 2>&1
then
say 'skipping cvsimport tests, cvs not found'
test_done
fi
cvsps_version=`cvsps -h 2>&1 | sed -ne 's/cvsps version //p'`
case "$cvsps_version" in
2.1 | 2.2*)
;;
'')
say 'skipping cvsimport tests, cvsps not found'
test_done
;;
*)
say 'skipping cvsimport tests, unsupported cvsps version'
test_done
;;
esac
test_expect_success 'setup cvsroot' 'cvs init'
test_expect_success 'setup cvsroot' '$CVS init'
test_expect_success 'setup a cvs module' '
mkdir "$CVSROOT/module" &&
cvs co -d module-cvs module &&
$CVS co -d module-cvs module &&
cd module-cvs &&
cat <<EOF >o_fortuna &&
O Fortuna
@ -59,13 +35,13 @@ egestatem,
potestatem
dissolvit ut glaciem.
EOF
cvs add o_fortuna &&
$CVS add o_fortuna &&
cat <<EOF >message &&
add "O Fortuna" lyrics
These public domain lyrics make an excellent sample text.
EOF
cvs commit -F message &&
$CVS commit -F message &&
cd ..
'
@ -103,7 +79,7 @@ translate to English
My Latin is terrible.
EOF
cvs commit -F message &&
$CVS commit -F message &&
cd ..
'
@ -121,8 +97,8 @@ test_expect_success 'update cvs module' '
cd module-cvs &&
echo 1 >tick &&
cvs add tick &&
cvs commit -m 1
$CVS add tick &&
$CVS commit -m 1
cd ..
'
@ -140,7 +116,7 @@ test_expect_success 'cvsimport.module config works' '
test_expect_success 'import from a CVS working tree' '
cvs co -d import-from-wt module &&
$CVS co -d import-from-wt module &&
cd import-from-wt &&
git cvsimport -a -z0 &&
echo 1 >expect &&
@ -150,4 +126,6 @@ test_expect_success 'import from a CVS working tree' '
'
test_expect_success 'test entire HEAD' 'test_cmp_branch_tree master'
test_done

View file

@ -0,0 +1,86 @@
#!/bin/sh
# Description of the files in the repository:
#
# imported-once.txt:
#
# Imported once. 1.1 and 1.1.1.1 should be identical.
#
# imported-twice.txt:
#
# Imported twice. HEAD should reflect the contents of the
# second import (i.e., have the same contents as 1.1.1.2).
#
# imported-modified.txt:
#
# Imported, then modified on HEAD. HEAD should reflect the
# modification.
#
# imported-modified-imported.txt:
#
# Imported, then modified on HEAD, then imported again.
#
# added-imported.txt,v:
#
# Added with 'cvs add' to create 1.1, then imported with
# completely different contents to create 1.1.1.1, therefore the
# vendor branch was never the default branch.
#
# imported-anonymously.txt:
#
# Like imported-twice.txt, but with a vendor branch whose branch
# tag has been removed.
test_description='git cvsimport handling of vendor branches'
. ./lib-cvs.sh
CVSROOT="$TEST_DIRECTORY"/t9601/cvsroot
export CVSROOT
test_expect_success 'import a module with a vendor branch' '
git cvsimport -C module-git module
'
test_expect_success 'check HEAD out of cvs repository' 'test_cvs_co master'
test_expect_success 'check master out of git repository' 'test_git_co master'
test_expect_success 'check a file that was imported once' '
test_cmp_branch_file master imported-once.txt
'
test_expect_failure 'check a file that was imported twice' '
test_cmp_branch_file master imported-twice.txt
'
test_expect_success 'check a file that was imported then modified on HEAD' '
test_cmp_branch_file master imported-modified.txt
'
test_expect_success 'check a file that was imported, modified, then imported again' '
test_cmp_branch_file master imported-modified-imported.txt
'
test_expect_success 'check a file that was added to HEAD then imported' '
test_cmp_branch_file master added-imported.txt
'
test_expect_success 'a vendor branch whose tag has been removed' '
test_cmp_branch_file master imported-anonymously.txt
'
test_done

1
t/t9601/cvsroot/.gitattributes vendored Normal file
View file

@ -0,0 +1 @@
* -whitespace

2
t/t9601/cvsroot/CVSROOT/.gitignore vendored Normal file
View file

@ -0,0 +1,2 @@
history
val-tags

View file

@ -0,0 +1,44 @@
head 1.1;
access;
symbols
vtag-4:1.1.1.1
vbranchA:1.1.1;
locks; strict;
comment @# @;
1.1
date 2004.02.09.15.43.15; author kfogel; state Exp;
branches
1.1.1.1;
next ;
1.1.1.1
date 2004.02.09.15.43.16; author kfogel; state Exp;
branches;
next ;
desc
@@
1.1
log
@Add a file to the working copy.
@
text
@Adding this file, before importing it with different contents.
@
1.1.1.1
log
@Import (vbranchA, vtag-4).
@
text
@d1 1
a1 1
This is vtag-4 (on vbranchA) of added-then-imported.txt.
@

View file

@ -0,0 +1,42 @@
head 1.1;
branch 1.1.1;
access;
symbols
vtag-1:1.1.1.1;
locks; strict;
comment @# @;
1.1
date 2004.02.09.15.43.13; author kfogel; state Exp;
branches
1.1.1.1;
next ;
1.1.1.1
date 2004.02.09.15.43.13; author kfogel; state Exp;
branches;
next ;
desc
@@
1.1
log
@Initial revision
@
text
@This is vtag-1 (on vbranchA) of imported-anonymously.txt.
@
1.1.1.1
log
@Import (vbranchA, vtag-1).
@
text
@@

View file

@ -0,0 +1,76 @@
head 1.2;
access;
symbols
vtag-2:1.1.1.2
vtag-1:1.1.1.1
vbranchA:1.1.1;
locks; strict;
comment @# @;
1.2
date 2004.02.09.15.43.14; author kfogel; state Exp;
branches;
next 1.1;
1.1
date 2004.02.09.15.43.13; author kfogel; state Exp;
branches
1.1.1.1;
next ;
1.1.1.1
date 2004.02.09.15.43.13; author kfogel; state Exp;
branches;
next 1.1.1.2;
1.1.1.2
date 2004.02.09.15.43.13; author kfogel; state Exp;
branches;
next ;
desc
@@
1.2
log
@First regular commit, to imported-modified-imported.txt, on HEAD.
@
text
@This is a modification of imported-modified-imported.txt on HEAD.
It should supersede the version from the vendor branch.
@
1.1
log
@Initial revision
@
text
@d1 2
a2 1
This is vtag-1 (on vbranchA) of imported-modified-imported.txt.
@
1.1.1.1
log
@Import (vbranchA, vtag-1).
@
text
@@
1.1.1.2
log
@Import (vbranchA, vtag-2).
@
text
@d1 1
a1 1
This is vtag-2 (on vbranchA) of imported-modified-imported.txt.
@

View file

@ -0,0 +1,59 @@
head 1.2;
access;
symbols
vtag-1:1.1.1.1
vbranchA:1.1.1;
locks; strict;
comment @# @;
1.2
date 2004.02.09.15.43.14; author kfogel; state Exp;
branches;
next 1.1;
1.1
date 2004.02.09.15.43.13; author kfogel; state Exp;
branches
1.1.1.1;
next ;
1.1.1.1
date 2004.02.09.15.43.13; author kfogel; state Exp;
branches;
next ;
desc
@@
1.2
log
@Commit on HEAD.
@
text
@This is a modification of imported-modified.txt on HEAD.
It should supersede the version from the vendor branch.
@
1.1
log
@Initial revision
@
text
@d1 2
a2 1
This is vtag-1 (on vbranchA) of imported-modified.txt.
@
1.1.1.1
log
@Import (vbranchA, vtag-1).
@
text
@@

View file

@ -0,0 +1,43 @@
head 1.1;
branch 1.1.1;
access;
symbols
vtag-1:1.1.1.1
vbranchA:1.1.1;
locks; strict;
comment @# @;
1.1
date 2004.02.09.15.43.13; author kfogel; state Exp;
branches
1.1.1.1;
next ;
1.1.1.1
date 2004.02.09.15.43.13; author kfogel; state Exp;
branches;
next ;
desc
@@
1.1
log
@Initial revision
@
text
@This is vtag-1 (on vbranchA) of imported-once.txt.
@
1.1.1.1
log
@Import (vbranchA, vtag-1).
@
text
@@

View file

@ -0,0 +1,60 @@
head 1.1;
branch 1.1.1;
access;
symbols
vtag-2:1.1.1.2
vtag-1:1.1.1.1
vbranchA:1.1.1;
locks; strict;
comment @# @;
1.1
date 2004.02.09.15.43.13; author kfogel; state Exp;
branches
1.1.1.1;
next ;
1.1.1.1
date 2004.02.09.15.43.13; author kfogel; state Exp;
branches;
next 1.1.1.2;
1.1.1.2
date 2004.02.09.15.43.13; author kfogel; state Exp;
branches;
next ;
desc
@@
1.1
log
@Initial revision
@
text
@This is vtag-1 (on vbranchA) of imported-twice.txt.
@
1.1.1.1
log
@Import (vbranchA, vtag-1).
@
text
@@
1.1.1.2
log
@Import (vbranchA, vtag-2).
@
text
@d1 1
a1 1
This is vtag-2 (on vbranchA) of imported-twice.txt.
@

View file

@ -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
t/t9602/README Normal file
View file

@ -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
t/t9602/cvsroot/.gitattributes vendored Normal file
View file

@ -0,0 +1 @@
* -whitespace

2
t/t9602/cvsroot/CVSROOT/.gitignore vendored Normal file
View file

@ -0,0 +1,2 @@
history
val-tags

View file

@ -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
@@

View file

@ -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
@@

View file

@ -0,0 +1,101 @@
head 1.3;
access;
symbols
B_SPLIT:1.3.0.4
B_MIXED:1.3.0.2
T_MIXED:1.3
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.3
date 2003.05.23.00.17.53; author jrandom; state Exp;
branches
1.3.4.1;
next 1.2;
1.2
date 2003.05.23.00.15.26; author jrandom; state Exp;
branches;
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.3.4.1
date 2003.06.03.03.20.31; author jrandom; state Exp;
branches;
next ;
desc
@@
1.3
log
@Second commit to proj, affecting all 7 files.
@
text
@This is sub1/subsubA/default.
Every directory in the `proj' project has a file named `default'.
This line was added by the first commit (affecting two files).
This line was added in the second commit (affecting all 7 files).
@
1.3.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
@a7 2
First change on branch B_SPLIT.
@
1.2
log
@First commit to proj, affecting two files.
@
text
@d6 2
@
1.1
log
@Initial revision
@
text
@d4 2
@
1.1.1.1
log
@Initial import.
@
text
@@

View file

@ -0,0 +1,107 @@
head 1.3;
access;
symbols
B_SPLIT:1.3.0.2
B_MIXED:1.2.0.2
T_MIXED:1.2
B_FROM_INITIALS:1.1.1.1.0.2
T_ALL_INITIAL_FILES:1.1.1.1
vendortag:1.1.1.1
vendorbranch:1.1.1;
locks; strict;
comment @# @;
1.3
date 2003.06.03.04.29.14; author jrandom; state Exp;
branches
1.3.2.1;
next 1.2;
1.2
date 2003.05.23.00.17.53; author jrandom; state Exp;
branches;
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.3.2.1
date 2003.06.03.04.33.13; author jrandom; state Exp;
branches;
next ;
desc
@@
1.3
log
@A trunk change to sub1/subsubB/default. This was committed about an
hour after an earlier change that affected most files on branch
B_SPLIT. This file is not on that branch yet, but after this commit,
we'll branch to B_SPLIT, albeit rooted in a revision that didn't exist
at the time the rest of B_SPLIT was created.
@
text
@This is sub1/subsubB/default.
Every directory in the `proj' project has a file named `default'.
This line was added in the second commit (affecting all 7 files).
This bit was committed on trunk about an hour after an earlier change
to everyone else on branch B_SPLIT. Afterwards, we'll finally branch
this file to B_SPLIT, but rooted in a revision that didn't exist at
the time the rest of B_SPLIT was created.
@
1.3.2.1
log
@This change affects sub3/default and sub1/subsubB/default, on branch
B_SPLIT. Note that the latter file did not even exist on this branch
until after some other files had had revisions committed on B_SPLIT.
@
text
@a10 4
This change affects sub3/default and sub1/subsubB/default, on branch
B_SPLIT. Note that the latter file did not even exist on this branch
until after some other files had had revisions committed on B_SPLIT.
@
1.2
log
@Second commit to proj, affecting all 7 files.
@
text
@d6 5
@
1.1
log
@Initial revision
@
text
@d4 2
@
1.1.1.1
log
@Initial import.
@
text
@@

View file

@ -0,0 +1,59 @@
head 1.1;
access;
symbols
B_MIXED:1.1.0.2;
locks; strict;
comment @# @;
1.1
date 2003.05.23.00.25.26; author jrandom; state dead;
branches
1.1.2.1;
next ;
1.1.2.1
date 2003.05.23.00.25.26; author jrandom; state Exp;
branches;
next 1.1.2.2;
1.1.2.2
date 2003.05.23.00.48.51; author jrandom; state Exp;
branches;
next ;
desc
@@
1.1
log
@file branch_B_MIXED_only was initially added on branch B_MIXED.
@
text
@@
1.1.2.1
log
@Add a file on branch B_MIXED.
@
text
@a0 1
This file was added on branch B_MIXED. It never existed on trunk.
@
1.1.2.2
log
@A single commit affecting one file on branch B_MIXED and one on trunk.
@
text
@a1 3
The same commit added these two lines here on branch B_MIXED, and two
similar lines to ./default on trunk.
@

View file

@ -0,0 +1,102 @@
head 1.3;
access;
symbols
B_SPLIT:1.3.0.2
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.3
date 2003.05.23.00.48.51; author jrandom; state Exp;
branches
1.3.2.1;
next 1.2;
1.2
date 2003.05.23.00.17.53; author jrandom; state Exp;
branches;
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.3.2.1
date 2003.06.03.03.20.31; author jrandom; state Exp;
branches;
next ;
desc
@@
1.3
log
@A single commit affecting one file on branch B_MIXED and one on trunk.
@
text
@This is sub2/default.
Every directory in the `proj' project has a file named `default'.
This line was added in the second commit (affecting all 7 files).
The same commit added these two lines here on trunk, and two similar
lines to ./branch_B_MIXED_only on branch B_MIXED.
@
1.3.2.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
@a8 2
First change on branch B_SPLIT.
@
1.2
log
@Second commit to proj, affecting all 7 files.
@
text
@d6 3
@
1.1
log
@Initial revision
@
text
@d4 2
@
1.1.1.1
log
@Initial import.
@
text
@@

View file

@ -0,0 +1,102 @@
head 1.2;
access;
symbols
B_SPLIT:1.2.0.2
B_MIXED:1.1.0.2
T_MIXED:1.1
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;
next 1.1;
1.1
date 2003.05.22.23.20.19; author jrandom; state Exp;
branches
1.1.1.1
1.1.2.1;
next ;
1.1.1.1
date 2003.05.22.23.20.19; author jrandom; state Exp;
branches;
next ;
1.1.2.1
date 2003.05.23.00.31.36; author jrandom; state Exp;
branches;
next ;
1.2.2.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 sub2/subsub2/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.2.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.1
log
@Initial revision
@
text
@d4 2
@
1.1.2.1
log
@Modify three files, on branch B_MIXED.
@
text
@a3 2
This line was added on branch B_MIXED only (affecting 3 files).
@
1.1.1.1
log
@Initial import.
@
text
@@

View file

@ -0,0 +1,102 @@
head 1.3;
access;
symbols
B_SPLIT:1.3.0.2
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.3
date 2003.05.23.00.17.53; author jrandom; state Exp;
branches
1.3.2.1;
next 1.2;
1.2
date 2003.05.23.00.15.26; author jrandom; state Exp;
branches;
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.3.2.1
date 2003.06.03.04.33.13; author jrandom; state Exp;
branches;
next ;
desc
@@
1.3
log
@Second commit to proj, affecting all 7 files.
@
text
@This is sub3/default.
Every directory in the `proj' project has a file named `default'.
This line was added by the first commit (affecting two files).
This line was added in the second commit (affecting all 7 files).
@
1.3.2.1
log
@This change affects sub3/default and sub1/subsubB/default, on branch
B_SPLIT. Note that the latter file did not even exist on this branch
until after some other files had had revisions committed on B_SPLIT.
@
text
@a7 4
This change affects sub3/default and sub1/subsubB/default, on branch
B_SPLIT. Note that the latter file did not even exist on this branch
until after some other files had had revisions committed on B_SPLIT.
@
1.2
log
@First commit to proj, affecting two files.
@
text
@d6 2
@
1.1
log
@Initial revision
@
text
@d4 2
@
1.1.1.1
log
@Initial import.
@
text
@@

40
t/t9603-cvsimport-patchsets.sh Executable file
View file

@ -0,0 +1,40 @@
#!/bin/sh
# Structure of the test cvs repository
#
# Message File:Content Commit Time
# Rev 1 a: 1.1 2009-02-21 19:11:43 +0100
# Rev 2 a: 1.2 b: 1.1 2009-02-21 19:11:14 +0100
# Rev 3 b: 1.2 2009-02-21 19:11:43 +0100
#
# As you can see the commit of Rev 3 has the same time as
# Rev 1 this leads to a broken import because of a cvsps
# bug.
test_description='git cvsimport testing for correct patchset estimation'
. ./lib-cvs.sh
CVSROOT="$TEST_DIRECTORY"/t9603/cvsroot
export CVSROOT
test_expect_failure 'import with criss cross times on revisions' '
git cvsimport -p"-x" -C module-git module &&
cd module-git &&
git log --pretty=format:%s > ../actual-master &&
git log A~2..A --pretty="format:%s %ad" -- > ../actual-A &&
echo "" >> ../actual-master &&
echo "" >> ../actual-A &&
cd .. &&
echo "Rev 4
Rev 3
Rev 2
Rev 1" > expect-master &&
test_cmp actual-master expect-master &&
echo "Rev 5 Branch A Wed Mar 11 19:09:10 2009 +0000
Rev 4 Branch A Wed Mar 11 19:03:52 2009 +0000" > expect-A &&
test_cmp actual-A expect-A
'
test_done

1
t/t9603/cvsroot/.gitattributes vendored Normal file
View file

@ -0,0 +1 @@
* -whitespace

2
t/t9603/cvsroot/CVSROOT/.gitignore vendored Normal file
View file

@ -0,0 +1,2 @@
history
val-tags

View file

@ -0,0 +1,74 @@
head 1.2;
access;
symbols
A:1.2.0.2;
locks; strict;
comment @# @;
1.2
date 2009.02.21.18.11.14; author tester; state Exp;
branches
1.2.2.1;
next 1.1;
1.1
date 2009.02.21.18.11.43; author tester; state Exp;
branches;
next ;
1.2.2.1
date 2009.03.11.19.03.52; author tester; state Exp;
branches;
next 1.2.2.2;
1.2.2.2
date 2009.03.11.19.09.10; author tester; state Exp;
branches;
next ;
desc
@@
1.2
log
@Rev 2
@
text
@1.2
@
1.2.2.1
log
@Rev 4 Branch A
@
text
@d1 1
a1 1
1.2.2.1
@
1.2.2.2
log
@Rev 5 Branch A
@
text
@d1 1
a1 1
1.2.2.2
@
1.1
log
@Rev 1
@
text
@d1 1
a1 1
1.1
@

View file

@ -0,0 +1,90 @@
head 1.3;
access;
symbols
A:1.2.0.2;
locks; strict;
comment @# @;
1.3
date 2009.03.11.19.05.08; author tester; state Exp;
branches;
next 1.2;
1.2
date 2009.02.21.18.11.43; author tester; state Exp;
branches
1.2.2.1;
next 1.1;
1.1
date 2009.02.21.18.11.14; author tester; state Exp;
branches;
next ;
1.2.2.1
date 2009.03.11.19.03.52; author tester; state Exp;
branches;
next 1.2.2.2;
1.2.2.2
date 2009.03.11.19.09.10; author tester; state Exp;
branches;
next ;
desc
@@
1.3
log
@Rev 4
@
text
@1.3
@
1.2
log
@Rev 3
@
text
@d1 1
a1 1
1.2
@
1.2.2.1
log
@Rev 4 Branch A
@
text
@d1 1
a1 1
1.2.2.1
@
1.2.2.2
log
@Rev 5 Branch A
@
text
@d1 1
a1 1
1.2
@
1.1
log
@Rev 2
@
text
@d1 1
a1 1
1.1
@