##// END OF EJS Templates
tests: remove unneeded -d flags...
tests: remove unneeded -d flags Many tests fixed the commit date of their changesets at '1000000 0' or similar. However testing with "Mon Jan 12 13:46:40 1970 +0000" is not better than testing with "Thu Jan 01 00:00:00 1970 +0000", which is the default run-tests.py installs. Removing the unnecessary flag removes some clutter and will hopefully make it clearer what the tests are really trying to test. Some tests did not even change their output when the dates were changed, in which case the -d flag was truly irrelevant. Dates used in sequence (such as '0 0', '1 0', etc...) were left alone since they may make the test easier to understand.

File last commit:

r11680:7fefef3c default
r12156:4c94b6d0 default
Show More
test-convert-filemap
141 lines | 2.9 KiB | text/plain | TextLexer
/ tests / test-convert-filemap
#!/bin/sh
HGMERGE=true; export HGMERGE
echo '[extensions]' >> $HGRCPATH
echo 'graphlog =' >> $HGRCPATH
echo 'convert =' >> $HGRCPATH
glog()
{
hg glog --template '{rev} "{desc}" files: {files}\n' "$@"
}
hg init source
cd source
echo foo > foo
echo baz > baz
mkdir -p dir/subdir
echo dir/file >> dir/file
echo dir/file2 >> dir/file2
echo dir/subdir/file3 >> dir/subdir/file3
echo dir/subdir/file4 >> dir/subdir/file4
hg ci -d '0 0' -qAm '0: add foo baz dir/'
echo bar > bar
echo quux > quux
hg copy foo copied
hg ci -d '1 0' -qAm '1: add bar quux; copy foo to copied'
echo >> foo
hg ci -d '2 0' -m '2: change foo'
hg up -qC 1
echo >> bar
echo >> quux
hg ci -d '3 0' -m '3: change bar quux'
hg up -qC 2
hg merge -qr 3
echo >> bar
echo >> baz
hg ci -d '4 0' -m '4: first merge; change bar baz'
echo >> bar
echo 1 >> baz
echo >> quux
hg ci -d '5 0' -m '5: change bar baz quux'
hg up -qC 4
echo >> foo
echo 2 >> baz
hg ci -d '6 0' -m '6: change foo baz'
hg up -qC 5
hg merge -qr 6
echo >> bar
hg ci -d '7 0' -m '7: second merge; change bar'
echo >> foo
hg ci -m '8: change foo'
glog
echo '% final file versions in this repo:'
hg manifest --debug
hg debugrename copied
echo
cd ..
splitrepo()
{
msg="$1"
files="$2"
opts=$3
echo "% $files: $msg"
prefix=`echo "$files" | sed -e 's/ /-/g'`
fmap="$prefix.fmap"
repo="$prefix.repo"
for i in $files; do
echo "include $i" >> "$fmap"
done
hg -q convert $opts --filemap "$fmap" --datesort source "$repo"
hg up -q -R "$repo"
glog -R "$repo"
hg -R "$repo" manifest --debug
}
splitrepo 'skip unwanted merges; use 1st parent in 1st merge, 2nd in 2nd' foo
splitrepo 'merges are not merges anymore' bar
splitrepo '1st merge is not a merge anymore; 2nd still is' baz
splitrepo 'we add additional merges when they are interesting' 'foo quux'
splitrepo 'partial conversion' 'bar quux' '-r 3'
splitrepo 'complete the partial conversion' 'bar quux'
rm -r foo.repo
splitrepo 'partial conversion' 'foo' '-r 3'
splitrepo 'complete the partial conversion' 'foo'
splitrepo 'copied file; source not included in new repo' copied
hg --cwd copied.repo debugrename copied
splitrepo 'copied file; source included in new repo' 'foo copied'
hg --cwd foo-copied.repo debugrename copied
cat > renames.fmap <<EOF
include dir
exclude dir/file2
rename dir dir2
include foo
include copied
rename foo foo2
rename copied copied2
exclude dir/subdir
include dir/subdir/file3
EOF
hg -q convert --filemap renames.fmap --datesort source renames.repo
hg up -q -R renames.repo
glog -R renames.repo
hg -R renames.repo manifest --debug
hg --cwd renames.repo debugrename copied2
echo 'copied:'
hg --cwd source cat copied
echo 'copied2:'
hg --cwd renames.repo cat copied2
echo % filemap errors
cat > errors.fmap <<EOF
include dir/ # beware that comments changes error line numbers!
exclude /dir
rename dir//dir /dir//dir/ "out of sync"
include
EOF
hg -q convert --filemap errors.fmap source errors.repo
true # happy ending