Mercurial > public > mercurial-scm > hg
diff tests/test-convert-cvsnt-mergepoints.t @ 12523:a164a9cff771
tests: unify test-convert-cvsnt-mergepoints
author | Matt Mackall <mpm@selenic.com> |
---|---|
date | Sun, 26 Sep 2010 16:43:48 -0500 |
parents | tests/test-convert-cvsnt-mergepoints@56a5f80556f5 |
children | 4f795f5fbb0b |
line wrap: on
line diff
--- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/tests/test-convert-cvsnt-mergepoints.t Sun Sep 26 16:43:48 2010 -0500 @@ -0,0 +1,202 @@ + + $ "$TESTDIR/hghave" cvs || exit 80 + $ filterpath() + > { + > eval "$@" | sed "s:$CVSROOT:*REPO*:g" + > } + $ cvscall() + > { + > cvs -f "$@" + > } + +output of 'cvs ci' varies unpredictably, so discard most of it +-- just keep the part that matters + + $ cvsci() + > { + > cvs -f ci -f "$@" > /dev/null + > } + $ hgcat() + > { + > hg --cwd src-hg cat -r tip "$1" + > } + $ echo "[extensions]" >> $HGRCPATH + $ echo "convert = " >> $HGRCPATH + $ echo "graphlog = " >> $HGRCPATH + +create cvs repository + + $ mkdir cvsmaster + $ cd cvsmaster + $ CVSROOT=`pwd` + $ export CVSROOT + $ CVS_OPTIONS=-f + $ export CVS_OPTIONS + $ cd .. + $ filterpath cvscall -Q -d "$CVSROOT" init + +checkout #1: add foo.txt + + $ cvscall -Q checkout -d cvsworktmp . + $ cd cvsworktmp + $ mkdir foo + $ cvscall -Q add foo + $ cd foo + $ echo foo > foo.txt + $ cvscall -Q add foo.txt + $ cvsci -m "add foo.txt" foo.txt + $ cd ../.. + $ rm -rf cvsworktmp + +checkout #2: create MYBRANCH1 and modify foo.txt on it + + $ cvscall -Q checkout -d cvswork foo + $ cd cvswork + $ cvscall -q rtag -b -R MYBRANCH1 foo + $ cvscall -Q update -P -r MYBRANCH1 + $ echo bar > foo.txt + $ cvsci -m "bar" foo.txt + $ echo baz > foo.txt + $ cvsci -m "baz" foo.txt + +create MYBRANCH1_2 and modify foo.txt some more + + $ cvscall -q rtag -b -R -r MYBRANCH1 MYBRANCH1_2 foo + $ cvscall -Q update -P -r MYBRANCH1_2 + $ echo bazzie > foo.txt + $ cvsci -m "bazzie" foo.txt + +create MYBRANCH1_1 and modify foo.txt yet again + + $ cvscall -q rtag -b -R MYBRANCH1_1 foo + $ cvscall -Q update -P -r MYBRANCH1_1 + $ echo quux > foo.txt + $ cvsci -m "quux" foo.txt + +merge MYBRANCH1 to MYBRANCH1_1 + + $ filterpath cvscall -Q update -P -jMYBRANCH1 + rcsmerge: warning: conflicts during merge + RCS file: *REPO*/foo/foo.txt,v + retrieving revision 1.1 + retrieving revision 1.1.2.2 + Merging differences between 1.1 and 1.1.2.2 into foo.txt + +carefully placed sleep to dodge cvs bug (optimization?) where it +sometimes ignores a "commit" command if it comes too fast (the -f +option in cvsci seems to work for all the other commits in this +script) + + $ sleep 1 + $ echo xyzzy > foo.txt + $ cvsci -m "merge1+clobber" foo.txt + +return to trunk and merge MYBRANCH1_2 + + $ cvscall -Q update -P -A + $ filterpath cvscall -Q update -P -jMYBRANCH1_2 + RCS file: *REPO*/foo/foo.txt,v + retrieving revision 1.1 + retrieving revision 1.1.2.2.2.1 + Merging differences between 1.1 and 1.1.2.2.2.1 into foo.txt + $ cvsci -m "merge2" foo.txt + $ REALCVS=`which cvs` + $ echo "for x in \$*; do if [ \"\$x\" = \"rlog\" ]; then echo \"RCS file: $CVSROOT/foo/foo.txt,v\"; cat $TESTDIR/test-convert-cvsnt-mergepoints.rlog; exit 0; fi; done; $REALCVS \$*" > ../cvs + $ chmod +x ../cvs + $ PATH=..:${PATH} hg debugcvsps --parents foo + collecting CVS rlog + 7 log entries + creating changesets + 7 changeset entries + --------------------- + PatchSet 1 + Date: * (glob) + Author: user + Branch: HEAD + Tag: (none) + Branchpoints: MYBRANCH1_1, MYBRANCH1 + Log: + foo.txt + + Members: + foo.txt:INITIAL->1.1 + + --------------------- + PatchSet 2 + Date: * (glob) + Author: user + Branch: MYBRANCH1 + Tag: (none) + Parent: 1 + Log: + bar + + Members: + foo.txt:1.1->1.1.2.1 + + --------------------- + PatchSet 3 + Date: * (glob) + Author: user + Branch: MYBRANCH1 + Tag: (none) + Branchpoints: MYBRANCH1_2 + Parent: 2 + Log: + baz + + Members: + foo.txt:1.1.2.1->1.1.2.2 + + --------------------- + PatchSet 4 + Date: * (glob) + Author: user + Branch: MYBRANCH1_1 + Tag: (none) + Parent: 1 + Log: + quux + + Members: + foo.txt:1.1->1.1.4.1 + + --------------------- + PatchSet 5 + Date: * (glob) + Author: user + Branch: MYBRANCH1_2 + Tag: (none) + Parent: 3 + Log: + bazzie + + Members: + foo.txt:1.1.2.2->1.1.2.2.2.1 + + --------------------- + PatchSet 6 + Date: * (glob) + Author: user + Branch: HEAD + Tag: (none) + Parents: 1,5 + Log: + merge + + Members: + foo.txt:1.1->1.2 + + --------------------- + PatchSet 7 + Date: * (glob) + Author: user + Branch: MYBRANCH1_1 + Tag: (none) + Parents: 4,3 + Log: + merge + + Members: + foo.txt:1.1.4.1->1.1.4.2 +