##// END OF EJS Templates
addremove: correctly handle intermediate symlinks...
addremove: correctly handle intermediate symlinks This fixes problems mentioned in issue660 comments (unrelated to original issue) where directory was renamed, and symlink was added instead. In such situation addremove wasn't able to correctly detect that old files no longer here, but tried to add symlink (and failed due collision with old files).

File last commit:

r6439:c1b47c0f default
r6651:7f0dd352 default
Show More
test-convert-svn-sink
135 lines | 2.5 KiB | text/plain | TextLexer
/ tests / test-convert-svn-sink
#!/bin/sh
"$TESTDIR/hghave" svn svn-bindings || exit 80
fixpath()
{
tr '\\' /
}
svnupanddisplay()
{
(
cd $1;
svn up;
svn st -v | fixpath
limit=''
if [ $2 -gt 0 ]; then
limit="--limit=$2"
fi
svn log --xml -v $limit | fixpath | sed 's,<date>.*,<date/>,'
)
}
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 --cwd b ci -d '5 0' -m 'merge'
hg convert -d svn b
echo % expect 4 changes
svnupanddisplay b-hg-wc 0