tests/test-symlinks
author Thomas Arendsen Hein <thomas@intevation.de>
Fri, 09 Mar 2007 18:09:02 +0100
changeset 4167 4574a8cb080f
parent 3988 9dcf9d45cab8
child 4137 26596a6b6518
permissions -rwxr-xr-x
Store empty (default) branch in branch cache, too. Operations on this branch don't work otherwise. Reading branches.cache had to be adjusted to allow an empty label. Adjusted reading of the cache tip for symmetry, no functional change here.
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
1408
5010207c3527 symlink unit test
Matthew Elder <sseses@gmail.com>
parents:
diff changeset
     1
#!/bin/sh
5010207c3527 symlink unit test
Matthew Elder <sseses@gmail.com>
parents:
diff changeset
     2
#Test bug regarding symlinks that showed up in hg 0.7
5010207c3527 symlink unit test
Matthew Elder <sseses@gmail.com>
parents:
diff changeset
     3
#Author: Matthew Elder <sseses@gmail.com>
5010207c3527 symlink unit test
Matthew Elder <sseses@gmail.com>
parents:
diff changeset
     4
5010207c3527 symlink unit test
Matthew Elder <sseses@gmail.com>
parents:
diff changeset
     5
#make and initialize repo
5010207c3527 symlink unit test
Matthew Elder <sseses@gmail.com>
parents:
diff changeset
     6
hg init test; cd test;
5010207c3527 symlink unit test
Matthew Elder <sseses@gmail.com>
parents:
diff changeset
     7
5010207c3527 symlink unit test
Matthew Elder <sseses@gmail.com>
parents:
diff changeset
     8
#make a file and a symlink
5010207c3527 symlink unit test
Matthew Elder <sseses@gmail.com>
parents:
diff changeset
     9
touch foo; ln -s foo bar;
5010207c3527 symlink unit test
Matthew Elder <sseses@gmail.com>
parents:
diff changeset
    10
5010207c3527 symlink unit test
Matthew Elder <sseses@gmail.com>
parents:
diff changeset
    11
#import with addremove -- symlink walking should _not_ screwup.
5010207c3527 symlink unit test
Matthew Elder <sseses@gmail.com>
parents:
diff changeset
    12
hg addremove
5010207c3527 symlink unit test
Matthew Elder <sseses@gmail.com>
parents:
diff changeset
    13
5010207c3527 symlink unit test
Matthew Elder <sseses@gmail.com>
parents:
diff changeset
    14
#commit -- the symlink should _not_ appear added to dir state
5010207c3527 symlink unit test
Matthew Elder <sseses@gmail.com>
parents:
diff changeset
    15
hg commit -m 'initial'
5010207c3527 symlink unit test
Matthew Elder <sseses@gmail.com>
parents:
diff changeset
    16
5010207c3527 symlink unit test
Matthew Elder <sseses@gmail.com>
parents:
diff changeset
    17
#add a new file so hg will let me commit again
5010207c3527 symlink unit test
Matthew Elder <sseses@gmail.com>
parents:
diff changeset
    18
touch bomb
5010207c3527 symlink unit test
Matthew Elder <sseses@gmail.com>
parents:
diff changeset
    19
5010207c3527 symlink unit test
Matthew Elder <sseses@gmail.com>
parents:
diff changeset
    20
#again, symlink should _not_ show up on dir state
5010207c3527 symlink unit test
Matthew Elder <sseses@gmail.com>
parents:
diff changeset
    21
hg addremove
5010207c3527 symlink unit test
Matthew Elder <sseses@gmail.com>
parents:
diff changeset
    22
5010207c3527 symlink unit test
Matthew Elder <sseses@gmail.com>
parents:
diff changeset
    23
#Assert screamed here before, should go by without consequence
5010207c3527 symlink unit test
Matthew Elder <sseses@gmail.com>
parents:
diff changeset
    24
hg commit -m 'is there a bug?'
1487
2bc6cd62a29c fix handling of files of unsupported type in the walk code
Benoit Boissinot <benoit.boissinot@ens-lyon.org>
parents: 1408
diff changeset
    25
3988
9dcf9d45cab8 Don't use -f for rm in tests where not needed. Drop /bin/ from /bin/rm.
Thomas Arendsen Hein <thomas@intevation.de>
parents: 3750
diff changeset
    26
cd .. ; rm -r test
1487
2bc6cd62a29c fix handling of files of unsupported type in the walk code
Benoit Boissinot <benoit.boissinot@ens-lyon.org>
parents: 1408
diff changeset
    27
hg init test; cd test;
2bc6cd62a29c fix handling of files of unsupported type in the walk code
Benoit Boissinot <benoit.boissinot@ens-lyon.org>
parents: 1408
diff changeset
    28
2bc6cd62a29c fix handling of files of unsupported type in the walk code
Benoit Boissinot <benoit.boissinot@ens-lyon.org>
parents: 1408
diff changeset
    29
mkdir dir
2bc6cd62a29c fix handling of files of unsupported type in the walk code
Benoit Boissinot <benoit.boissinot@ens-lyon.org>
parents: 1408
diff changeset
    30
touch a.c dir/a.o dir/b.o
2bc6cd62a29c fix handling of files of unsupported type in the walk code
Benoit Boissinot <benoit.boissinot@ens-lyon.org>
parents: 1408
diff changeset
    31
# test what happens if we want to trick hg
2bc6cd62a29c fix handling of files of unsupported type in the walk code
Benoit Boissinot <benoit.boissinot@ens-lyon.org>
parents: 1408
diff changeset
    32
hg commit -A -m 0
2bc6cd62a29c fix handling of files of unsupported type in the walk code
Benoit Boissinot <benoit.boissinot@ens-lyon.org>
parents: 1408
diff changeset
    33
echo "relglob:*.o" > .hgignore
2bc6cd62a29c fix handling of files of unsupported type in the walk code
Benoit Boissinot <benoit.boissinot@ens-lyon.org>
parents: 1408
diff changeset
    34
rm a.c
2bc6cd62a29c fix handling of files of unsupported type in the walk code
Benoit Boissinot <benoit.boissinot@ens-lyon.org>
parents: 1408
diff changeset
    35
rm dir/a.o
2bc6cd62a29c fix handling of files of unsupported type in the walk code
Benoit Boissinot <benoit.boissinot@ens-lyon.org>
parents: 1408
diff changeset
    36
rm dir/b.o
2bc6cd62a29c fix handling of files of unsupported type in the walk code
Benoit Boissinot <benoit.boissinot@ens-lyon.org>
parents: 1408
diff changeset
    37
mkdir dir/a.o
3750
0f550b87deb8 Compatibility fix for 'ln -sf'.
Thomas Arendsen Hein <thomas@intevation.de>
parents: 2115
diff changeset
    38
ln -s nonexist dir/b.o
1487
2bc6cd62a29c fix handling of files of unsupported type in the walk code
Benoit Boissinot <benoit.boissinot@ens-lyon.org>
parents: 1408
diff changeset
    39
mkfifo a.c
1620
6c61646fee5e Adjusted all but one test output for the new behaviour of localrepo.changes()
Thomas Arendsen Hein <thomas@intevation.de>
parents: 1527
diff changeset
    40
# it should show a.c, dir/a.o and dir/b.o deleted
1487
2bc6cd62a29c fix handling of files of unsupported type in the walk code
Benoit Boissinot <benoit.boissinot@ens-lyon.org>
parents: 1408
diff changeset
    41
hg status
1527
c13fce7167c2 don't print anything about file of unsupported type unless
Benoit Boissinot <benoit.boissinot@ens-lyon.org>
parents: 1487
diff changeset
    42
hg status a.c
2115
fd77b7ee4aac Fix issue 165: `hg status' with abs path containing a symlink-to-dir fails
Jim Meyering <list+hg@meyering.net>
parents: 1620
diff changeset
    43
fd77b7ee4aac Fix issue 165: `hg status' with abs path containing a symlink-to-dir fails
Jim Meyering <list+hg@meyering.net>
parents: 1620
diff changeset
    44
echo '# test absolute path through symlink outside repo'
fd77b7ee4aac Fix issue 165: `hg status' with abs path containing a symlink-to-dir fails
Jim Meyering <list+hg@meyering.net>
parents: 1620
diff changeset
    45
cd ..
fd77b7ee4aac Fix issue 165: `hg status' with abs path containing a symlink-to-dir fails
Jim Meyering <list+hg@meyering.net>
parents: 1620
diff changeset
    46
p=`pwd`
fd77b7ee4aac Fix issue 165: `hg status' with abs path containing a symlink-to-dir fails
Jim Meyering <list+hg@meyering.net>
parents: 1620
diff changeset
    47
hg init x
fd77b7ee4aac Fix issue 165: `hg status' with abs path containing a symlink-to-dir fails
Jim Meyering <list+hg@meyering.net>
parents: 1620
diff changeset
    48
ln -s x y
fd77b7ee4aac Fix issue 165: `hg status' with abs path containing a symlink-to-dir fails
Jim Meyering <list+hg@meyering.net>
parents: 1620
diff changeset
    49
cd x
fd77b7ee4aac Fix issue 165: `hg status' with abs path containing a symlink-to-dir fails
Jim Meyering <list+hg@meyering.net>
parents: 1620
diff changeset
    50
touch f
fd77b7ee4aac Fix issue 165: `hg status' with abs path containing a symlink-to-dir fails
Jim Meyering <list+hg@meyering.net>
parents: 1620
diff changeset
    51
hg add f
fd77b7ee4aac Fix issue 165: `hg status' with abs path containing a symlink-to-dir fails
Jim Meyering <list+hg@meyering.net>
parents: 1620
diff changeset
    52
hg status $p/y/f
fd77b7ee4aac Fix issue 165: `hg status' with abs path containing a symlink-to-dir fails
Jim Meyering <list+hg@meyering.net>
parents: 1620
diff changeset
    53
fd77b7ee4aac Fix issue 165: `hg status' with abs path containing a symlink-to-dir fails
Jim Meyering <list+hg@meyering.net>
parents: 1620
diff changeset
    54
echo '# try symlink outside repo to file inside'
fd77b7ee4aac Fix issue 165: `hg status' with abs path containing a symlink-to-dir fails
Jim Meyering <list+hg@meyering.net>
parents: 1620
diff changeset
    55
ln -s x/f ../z
fd77b7ee4aac Fix issue 165: `hg status' with abs path containing a symlink-to-dir fails
Jim Meyering <list+hg@meyering.net>
parents: 1620
diff changeset
    56
# this should fail
fd77b7ee4aac Fix issue 165: `hg status' with abs path containing a symlink-to-dir fails
Jim Meyering <list+hg@meyering.net>
parents: 1620
diff changeset
    57
hg status ../z && { echo hg mistakenly exited with status 0; exit 1; } || :