mirror of
https://github.com/facebook/sapling.git
synced 2024-10-10 08:47:12 +03:00
6a98ca74f3
The order choosen by cvs to display commit is not stable when the tests are run under heavy CPU/IO load. This leads to irrelevant failures of the test suite. This changeset filters four lines impacted by this instability. The result of the conversion is still verified.
144 lines
3.5 KiB
Bash
Executable File
144 lines
3.5 KiB
Bash
Executable File
#!/bin/sh
|
|
|
|
"$TESTDIR/hghave" cvs || exit 80
|
|
|
|
cvscall()
|
|
{
|
|
cvs -f "$@"
|
|
}
|
|
|
|
hgcat()
|
|
{
|
|
hg --cwd src-hg cat -r tip "$1"
|
|
}
|
|
|
|
echo "[extensions]" >> $HGRCPATH
|
|
echo "convert = " >> $HGRCPATH
|
|
echo "graphlog = " >> $HGRCPATH
|
|
|
|
cat > cvshooks.py <<EOF
|
|
def cvslog(ui,repo,hooktype,log):
|
|
print "%s hook: %d entries"%(hooktype,len(log))
|
|
|
|
def cvschangesets(ui,repo,hooktype,changesets):
|
|
print "%s hook: %d changesets"%(hooktype,len(changesets))
|
|
EOF
|
|
hookpath=`pwd`
|
|
|
|
echo "[hooks]" >> $HGRCPATH
|
|
echo "cvslog=python:$hookpath/cvshooks.py:cvslog" >> $HGRCPATH
|
|
echo "cvschangesets=python:$hookpath/cvshooks.py:cvschangesets" >> $HGRCPATH
|
|
|
|
echo % create cvs repository
|
|
mkdir cvsrepo
|
|
cd cvsrepo
|
|
CVSROOT=`pwd`
|
|
export CVSROOT
|
|
CVS_OPTIONS=-f
|
|
export CVS_OPTIONS
|
|
cd ..
|
|
|
|
cvscall -q -d "$CVSROOT" init
|
|
|
|
echo % create source directory
|
|
mkdir src-temp
|
|
cd src-temp
|
|
echo a > a
|
|
mkdir b
|
|
cd b
|
|
echo c > c
|
|
cd ..
|
|
|
|
echo % import source directory
|
|
cvscall -q import -m import src INITIAL start
|
|
cd ..
|
|
|
|
echo % checkout source directory
|
|
cvscall -q checkout src
|
|
|
|
echo % commit a new revision changing b/c
|
|
cd src
|
|
sleep 1
|
|
echo c >> b/c
|
|
cvscall -q commit -mci0 . | grep '<--' |\
|
|
sed -e 's:.*src/\(.*\),v.*:checking in src/\1,v:g'
|
|
cd ..
|
|
|
|
echo % convert fresh repo
|
|
hg convert src src-hg | sed -e 's/connecting to.*cvsrepo/connecting to cvsrepo/g'
|
|
hgcat a
|
|
hgcat b/c
|
|
|
|
echo % convert fresh repo with --filemap
|
|
echo include b/c > filemap
|
|
hg convert --filemap filemap src src-filemap | sed -e 's/connecting to.*cvsrepo/connecting to cvsrepo/g'
|
|
hgcat b/c
|
|
hg -R src-filemap log --template '{rev} {desc} files: {files}\n'
|
|
|
|
echo % 'convert full repository (issue1649)'
|
|
cvscall -q -d "$CVSROOT" checkout -d srcfull "." | grep -v CVSROOT
|
|
ls srcfull
|
|
hg convert srcfull srcfull-hg \
|
|
| sed -e 's/connecting to.*cvsrepo/connecting to cvsrepo/g' \
|
|
| grep -v 'log entries' | grep -v 'hook:' \
|
|
| grep -v '^[0-3] .*' # filter instable changeset order
|
|
hg cat -r tip srcfull-hg/src/a
|
|
hg cat -r tip srcfull-hg/src/b/c
|
|
|
|
echo % commit new file revisions
|
|
cd src
|
|
echo a >> a
|
|
echo c >> b/c
|
|
cvscall -q commit -mci1 . | grep '<--' |\
|
|
sed -e 's:.*src/\(.*\),v.*:checking in src/\1,v:g'
|
|
cd ..
|
|
|
|
echo % convert again
|
|
hg convert src src-hg | sed -e 's/connecting to.*cvsrepo/connecting to cvsrepo/g'
|
|
hgcat a
|
|
hgcat b/c
|
|
|
|
echo % convert again with --filemap
|
|
hg convert --filemap filemap src src-filemap | sed -e 's/connecting to.*cvsrepo/connecting to cvsrepo/g'
|
|
hgcat b/c
|
|
hg -R src-filemap log --template '{rev} {desc} files: {files}\n'
|
|
|
|
echo % commit branch
|
|
cd src
|
|
cvs -q update -r1.1 b/c
|
|
cvs -q tag -b branch
|
|
cvs -q update -r branch > /dev/null
|
|
echo d >> b/c
|
|
cvs -q commit -mci2 . | grep '<--' |\
|
|
sed -e 's:.*src/\(.*\),v.*:checking in src/\1,v:g'
|
|
cd ..
|
|
|
|
echo % convert again
|
|
hg convert src src-hg | sed -e 's/connecting to.*cvsrepo/connecting to cvsrepo/g'
|
|
hgcat b/c
|
|
|
|
echo % convert again with --filemap
|
|
hg convert --filemap filemap src src-filemap | sed -e 's/connecting to.*cvsrepo/connecting to cvsrepo/g'
|
|
hgcat b/c
|
|
hg -R src-filemap log --template '{rev} {desc} files: {files}\n'
|
|
|
|
echo % commit a new revision with funny log message
|
|
cd src
|
|
sleep 1
|
|
echo e >> a
|
|
cvscall -q commit -m'funny
|
|
----------------------------
|
|
log message' . | grep '<--' |\
|
|
sed -e 's:.*src/\(.*\),v.*:checking in src/\1,v:g'
|
|
cd ..
|
|
|
|
echo % convert again
|
|
hg convert src src-hg | sed -e 's/connecting to.*cvsrepo/connecting to cvsrepo/g'
|
|
|
|
echo "graphlog = " >> $HGRCPATH
|
|
hg -R src-hg glog --template '{rev} ({branches}) {desc} files: {files}\n'
|
|
|
|
echo % testing debugcvsps
|
|
cd src
|
|
hg debugcvsps | sed -e 's/Author:.*/Author:/' -e 's/Date:.*/Date:/'
|