mirror of
https://github.com/facebook/sapling.git
synced 2024-10-09 08:18:15 +03:00
b948193861
This test case backs the fix in changeset 1e2514ff3be7. The subversion sink used to crash, if the source repo used tags.
149 lines
2.8 KiB
Bash
Executable File
149 lines
2.8 KiB
Bash
Executable File
#!/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
|
|
|
|
echo % tags are not supported, but must not break conversion
|
|
|
|
rm -rf a a-hg a-hg-wc
|
|
hg init a
|
|
echo a > a/a
|
|
hg --cwd a ci -d '0 0' -A -m 'Add file a'
|
|
hg --cwd a tag -d '1 0' -m 'Tagged as v1.0' v1.0
|
|
|
|
hg convert -d svn a
|
|
svnupanddisplay a-hg-wc 2
|
|
rm -rf a a-hg a-hg-wc
|