##// END OF EJS Templates
convert/bzr: make it work with filemaps (issue1631)...
convert/bzr: make it work with filemaps (issue1631) The bzr converter maintains a child -> parents mapping and drop entries whenever a child is read. It does not work with filemaps, getchangedfiles() may be called more than once when filtered files belong to merge revisions. getchanges() still works that way but it is not clear whether a similar issue can arise when interacting with merges.

File last commit:

r8049:99e5f97c default
r8165:78658990 default
Show More
test-convert-svn-sink
136 lines | 2.5 KiB | text/plain | TextLexer
/ tests / test-convert-svn-sink
#!/bin/sh
"$TESTDIR/hghave" svn svn-bindings no-outer-repo || exit 80
fixpath()
{
tr '\\' /
}
svnupanddisplay()
{
(
cd $1;
svn up;
svn st -v | fixpath | sed 's/ */ /g'
limit=''
if [ $2 -gt 0 ]; then
limit="--limit=$2"
fi
svn log --xml -v $limit | fixpath | sed 's,<date>.*,<date/>,' | grep -v 'kind="'
)
}
echo "[extensions]" >> $HGRCPATH
echo "convert = " >> $HGRCPATH
hg init a
echo a > a/a
mkdir -p a/d1/d2
echo b > a/d1/d2/b
echo % add
hg --cwd a ci -d '0 0' -A -m 'add a file'
"$TESTDIR/svn-safe-append.py" a a/a
echo % modify
hg --cwd a ci -d '1 0' -m 'modify a file'
hg --cwd a tip -q
hg convert -d svn a
svnupanddisplay a-hg-wc 2
ls a a-hg-wc
cmp a/a a-hg-wc/a && echo same || echo different
hg --cwd a mv a b
echo % rename
hg --cwd a ci -d '2 0' -m 'rename a file'
hg --cwd a tip -q
hg convert -d svn a
svnupanddisplay a-hg-wc 1
ls a a-hg-wc
hg --cwd a cp b c
echo % copy
hg --cwd a ci -d '3 0' -m 'copy a file'
hg --cwd a tip -q
hg convert -d svn a
svnupanddisplay a-hg-wc 1
ls a a-hg-wc
hg --cwd a rm b
echo % remove
hg --cwd a ci -d '4 0' -m 'remove a file'
hg --cwd a tip -q
hg convert -d svn a
svnupanddisplay a-hg-wc 1
ls a a-hg-wc
chmod +x a/c
echo % executable
hg --cwd a ci -d '5 0' -m 'make a file executable'
hg --cwd a tip -q
hg convert -d svn a
svnupanddisplay a-hg-wc 1
test -x a-hg-wc/c && echo executable || echo not executable
echo % executable in new directory
rm -rf a a-hg a-hg-wc
hg init a
mkdir a/d1
echo a > a/d1/a
chmod +x a/d1/a
hg --cwd a ci -d '0 0' -A -m 'add executable file in new directory'
hg convert -d svn a
svnupanddisplay a-hg-wc 1
test -x a-hg-wc/d1/a && echo executable || echo not executable
echo % copy to new directory
mkdir a/d2
hg --cwd a cp d1/a d2/a
hg --cwd a ci -d '1 0' -A -m 'copy file to new directory'
hg convert -d svn a
svnupanddisplay a-hg-wc 1
echo % branchy history
hg init b
echo base > b/b
hg --cwd b ci -d '0 0' -Ambase
"$TESTDIR/svn-safe-append.py" left-1 b/b
echo left-1 > b/left-1
hg --cwd b ci -d '1 0' -Amleft-1
"$TESTDIR/svn-safe-append.py" left-2 b/b
echo left-2 > b/left-2
hg --cwd b ci -d '2 0' -Amleft-2
hg --cwd b up 0
"$TESTDIR/svn-safe-append.py" right-1 b/b
echo right-1 > b/right-1
hg --cwd b ci -d '3 0' -Amright-1
"$TESTDIR/svn-safe-append.py" right-2 b/b
echo right-2 > b/right-2
hg --cwd b ci -d '4 0' -Amright-2
hg --cwd b up -C 2
hg --cwd b merge
hg --cwd b revert -r 2 b
hg resolve -m b
hg --cwd b ci -d '5 0' -m 'merge'
hg convert -d svn b
echo % expect 4 changes
svnupanddisplay b-hg-wc 0