tests: unify test-hardlinks-safety

This commit is contained in:
Adrian Buehlmann 2010-09-15 20:41:14 +02:00
parent e339f22cb2
commit 9b6356a565
3 changed files with 106 additions and 111 deletions

View File

@ -1,82 +0,0 @@
#!/bin/sh
# some implementations of cp can't create hardlinks
cat > cp.py <<EOF
from mercurial import util
import sys
util.copyfiles(sys.argv[1], sys.argv[2], hardlink=True)
EOF
# test hardlinking outside hg
mkdir x
echo foo > x/a
python cp.py x y
echo bar >> y/a
echo % no diff if hardlink
diff x/a y/a
# test mq hardlinking
echo "[extensions]" >> $HGRCPATH
echo "mq=" >> $HGRCPATH
echo % init
hg init a
cd a
hg qimport -n foo - << EOF
# HG changeset patch
# Date 1 0
diff -r 2588a8b53d66 a
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/a Wed Jul 23 15:54:29 2008 +0200
@@ -0,0 +1,1 @@
+a
EOF
hg qpush
cd ..
python cp.py a b
cd b
hg qimport -n bar - << EOF
# HG changeset patch
# Date 2 0
diff -r 2588a8b53d66 a
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/b Wed Jul 23 15:54:29 2008 +0200
@@ -0,0 +1,1 @@
+b
EOF
hg qpush
cat .hg/patches/status
echo %
cat .hg/patches/series
echo %%%
cat ../a/.hg/patches/status
echo %
cat ../a/.hg/patches/series
# test tags hardlinking
hg qdel -r qbase:qtip
hg tag -l lfoo
hg tag foo
cd ..
python cp.py b c
cd c
hg tag -l -r 0 lbar
hg tag -r 0 bar
echo %%%
cat .hgtags
echo %
cat .hg/localtags
echo %%%
cat ../b/.hgtags
echo %
cat ../b/.hg/localtags

View File

@ -1,29 +0,0 @@
% no diff if hardlink
% init
adding foo to series file
applying foo
now at: foo
adding bar to series file
applying bar
now at: bar
430ed4828a74fa4047bc816a25500f7472ab4bfe:foo
4e7abb4840c46a910f6d7b4d3c3fc7e5209e684c:bar
%
foo
bar
%%%
430ed4828a74fa4047bc816a25500f7472ab4bfe:foo
%
foo
patch foo finalized without changeset message
patch bar finalized without changeset message
%%%
4e7abb4840c46a910f6d7b4d3c3fc7e5209e684c foo
430ed4828a74fa4047bc816a25500f7472ab4bfe bar
%
4e7abb4840c46a910f6d7b4d3c3fc7e5209e684c lfoo
430ed4828a74fa4047bc816a25500f7472ab4bfe lbar
%%%
4e7abb4840c46a910f6d7b4d3c3fc7e5209e684c foo
%
4e7abb4840c46a910f6d7b4d3c3fc7e5209e684c lfoo

View File

@ -0,0 +1,106 @@
# some implementations of cp can't create hardlinks
$ cat > cp.py <<EOF
> from mercurial import util
> import sys
> util.copyfiles(sys.argv[1], sys.argv[2], hardlink=True)
> EOF
Test hardlinking outside hg:
$ mkdir x
$ echo foo > x/a
$ python cp.py x y
$ echo bar >> y/a
No diff if hardlink:
$ diff x/a y/a
Test mq hardlinking:
$ echo "[extensions]" >> $HGRCPATH
$ echo "mq=" >> $HGRCPATH
$ hg init a
$ cd a
$ hg qimport -n foo - << EOF
> # HG changeset patch
> # Date 1 0
> diff -r 2588a8b53d66 a
> --- /dev/null Thu Jan 01 00:00:00 1970 +0000
> +++ b/a Wed Jul 23 15:54:29 2008 +0200
> @@ -0,0 +1,1 @@
> +a
> EOF
adding foo to series file
$ hg qpush
applying foo
now at: foo
$ cd ..
$ python cp.py a b
$ cd b
$ hg qimport -n bar - << EOF
> # HG changeset patch
> # Date 2 0
> diff -r 2588a8b53d66 a
> --- /dev/null Thu Jan 01 00:00:00 1970 +0000
> +++ b/b Wed Jul 23 15:54:29 2008 +0200
> @@ -0,0 +1,1 @@
> +b
> EOF
adding bar to series file
$ hg qpush
applying bar
now at: bar
$ cat .hg/patches/status
430ed4828a74fa4047bc816a25500f7472ab4bfe:foo
4e7abb4840c46a910f6d7b4d3c3fc7e5209e684c:bar
$ cat .hg/patches/series
foo
bar
$ cat ../a/.hg/patches/status
430ed4828a74fa4047bc816a25500f7472ab4bfe:foo
$ cat ../a/.hg/patches/series
foo
Test tags hardlinking:
$ hg qdel -r qbase:qtip
patch foo finalized without changeset message
patch bar finalized without changeset message
$ hg tag -l lfoo
$ hg tag foo
$ cd ..
$ python cp.py b c
$ cd c
$ hg tag -l -r 0 lbar
$ hg tag -r 0 bar
$ cat .hgtags
4e7abb4840c46a910f6d7b4d3c3fc7e5209e684c foo
430ed4828a74fa4047bc816a25500f7472ab4bfe bar
$ cat .hg/localtags
4e7abb4840c46a910f6d7b4d3c3fc7e5209e684c lfoo
430ed4828a74fa4047bc816a25500f7472ab4bfe lbar
$ cat ../b/.hgtags
4e7abb4840c46a910f6d7b4d3c3fc7e5209e684c foo
$ cat ../b/.hg/localtags
4e7abb4840c46a910f6d7b4d3c3fc7e5209e684c lfoo