annotate tests/test-symlinks.t @ 11798:1ab3d8977bdf

tests: unify test-symlinks
author Nicolas Dumazet <nicdumz.commits@gmail.com>
date Thu, 12 Aug 2010 20:08:02 +0900
parents tests/test-symlinks@c52057614c72
children 6f12f53ae795
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
rev   line source
11798
1ab3d8977bdf tests: unify test-symlinks
Nicolas Dumazet <nicdumz.commits@gmail.com>
parents: 10775
diff changeset
1 Test bug regarding symlinks that showed up in hg 0.7
1ab3d8977bdf tests: unify test-symlinks
Nicolas Dumazet <nicdumz.commits@gmail.com>
parents: 10775
diff changeset
2 Author: Matthew Elder <sseses@gmail.com>
1ab3d8977bdf tests: unify test-symlinks
Nicolas Dumazet <nicdumz.commits@gmail.com>
parents: 10775
diff changeset
3
1ab3d8977bdf tests: unify test-symlinks
Nicolas Dumazet <nicdumz.commits@gmail.com>
parents: 10775
diff changeset
4 $ "$TESTDIR/hghave" symlink || exit 80
1ab3d8977bdf tests: unify test-symlinks
Nicolas Dumazet <nicdumz.commits@gmail.com>
parents: 10775
diff changeset
5
1ab3d8977bdf tests: unify test-symlinks
Nicolas Dumazet <nicdumz.commits@gmail.com>
parents: 10775
diff changeset
6 make and initialize repo
1408
5010207c3527 symlink unit test
Matthew Elder <sseses@gmail.com>
parents:
diff changeset
7
11798
1ab3d8977bdf tests: unify test-symlinks
Nicolas Dumazet <nicdumz.commits@gmail.com>
parents: 10775
diff changeset
8 $ hg init test; cd test;
1ab3d8977bdf tests: unify test-symlinks
Nicolas Dumazet <nicdumz.commits@gmail.com>
parents: 10775
diff changeset
9
1ab3d8977bdf tests: unify test-symlinks
Nicolas Dumazet <nicdumz.commits@gmail.com>
parents: 10775
diff changeset
10 make a file and a symlink
1ab3d8977bdf tests: unify test-symlinks
Nicolas Dumazet <nicdumz.commits@gmail.com>
parents: 10775
diff changeset
11
1ab3d8977bdf tests: unify test-symlinks
Nicolas Dumazet <nicdumz.commits@gmail.com>
parents: 10775
diff changeset
12 $ touch foo; ln -s foo bar;
1ab3d8977bdf tests: unify test-symlinks
Nicolas Dumazet <nicdumz.commits@gmail.com>
parents: 10775
diff changeset
13
1ab3d8977bdf tests: unify test-symlinks
Nicolas Dumazet <nicdumz.commits@gmail.com>
parents: 10775
diff changeset
14 import with addremove -- symlink walking should _not_ screwup.
4882
25d753efd48e test-symlink-basic: require symlinks availability
Patrick Mezard <pmezard@gmail.com>
parents: 4137
diff changeset
15
11798
1ab3d8977bdf tests: unify test-symlinks
Nicolas Dumazet <nicdumz.commits@gmail.com>
parents: 10775
diff changeset
16 $ hg addremove
1ab3d8977bdf tests: unify test-symlinks
Nicolas Dumazet <nicdumz.commits@gmail.com>
parents: 10775
diff changeset
17 adding bar
1ab3d8977bdf tests: unify test-symlinks
Nicolas Dumazet <nicdumz.commits@gmail.com>
parents: 10775
diff changeset
18 adding foo
1ab3d8977bdf tests: unify test-symlinks
Nicolas Dumazet <nicdumz.commits@gmail.com>
parents: 10775
diff changeset
19
1ab3d8977bdf tests: unify test-symlinks
Nicolas Dumazet <nicdumz.commits@gmail.com>
parents: 10775
diff changeset
20 commit -- the symlink should _not_ appear added to dir state
1ab3d8977bdf tests: unify test-symlinks
Nicolas Dumazet <nicdumz.commits@gmail.com>
parents: 10775
diff changeset
21
1ab3d8977bdf tests: unify test-symlinks
Nicolas Dumazet <nicdumz.commits@gmail.com>
parents: 10775
diff changeset
22 $ hg commit -m 'initial'
1408
5010207c3527 symlink unit test
Matthew Elder <sseses@gmail.com>
parents:
diff changeset
23
11798
1ab3d8977bdf tests: unify test-symlinks
Nicolas Dumazet <nicdumz.commits@gmail.com>
parents: 10775
diff changeset
24 add a new file so hg will let me commit again
1ab3d8977bdf tests: unify test-symlinks
Nicolas Dumazet <nicdumz.commits@gmail.com>
parents: 10775
diff changeset
25
1ab3d8977bdf tests: unify test-symlinks
Nicolas Dumazet <nicdumz.commits@gmail.com>
parents: 10775
diff changeset
26 $ touch bomb
1408
5010207c3527 symlink unit test
Matthew Elder <sseses@gmail.com>
parents:
diff changeset
27
11798
1ab3d8977bdf tests: unify test-symlinks
Nicolas Dumazet <nicdumz.commits@gmail.com>
parents: 10775
diff changeset
28 again, symlink should _not_ show up on dir state
1ab3d8977bdf tests: unify test-symlinks
Nicolas Dumazet <nicdumz.commits@gmail.com>
parents: 10775
diff changeset
29
1ab3d8977bdf tests: unify test-symlinks
Nicolas Dumazet <nicdumz.commits@gmail.com>
parents: 10775
diff changeset
30 $ hg addremove
1ab3d8977bdf tests: unify test-symlinks
Nicolas Dumazet <nicdumz.commits@gmail.com>
parents: 10775
diff changeset
31 adding bomb
1ab3d8977bdf tests: unify test-symlinks
Nicolas Dumazet <nicdumz.commits@gmail.com>
parents: 10775
diff changeset
32
1ab3d8977bdf tests: unify test-symlinks
Nicolas Dumazet <nicdumz.commits@gmail.com>
parents: 10775
diff changeset
33 Assert screamed here before, should go by without consequence
1408
5010207c3527 symlink unit test
Matthew Elder <sseses@gmail.com>
parents:
diff changeset
34
11798
1ab3d8977bdf tests: unify test-symlinks
Nicolas Dumazet <nicdumz.commits@gmail.com>
parents: 10775
diff changeset
35 $ hg commit -m 'is there a bug?'
1ab3d8977bdf tests: unify test-symlinks
Nicolas Dumazet <nicdumz.commits@gmail.com>
parents: 10775
diff changeset
36
1ab3d8977bdf tests: unify test-symlinks
Nicolas Dumazet <nicdumz.commits@gmail.com>
parents: 10775
diff changeset
37 $ cd .. ; rm -r test
1ab3d8977bdf tests: unify test-symlinks
Nicolas Dumazet <nicdumz.commits@gmail.com>
parents: 10775
diff changeset
38 $ hg init test; cd test;
1408
5010207c3527 symlink unit test
Matthew Elder <sseses@gmail.com>
parents:
diff changeset
39
11798
1ab3d8977bdf tests: unify test-symlinks
Nicolas Dumazet <nicdumz.commits@gmail.com>
parents: 10775
diff changeset
40 $ mkdir dir
1ab3d8977bdf tests: unify test-symlinks
Nicolas Dumazet <nicdumz.commits@gmail.com>
parents: 10775
diff changeset
41 $ touch a.c dir/a.o dir/b.o
1ab3d8977bdf tests: unify test-symlinks
Nicolas Dumazet <nicdumz.commits@gmail.com>
parents: 10775
diff changeset
42
1ab3d8977bdf tests: unify test-symlinks
Nicolas Dumazet <nicdumz.commits@gmail.com>
parents: 10775
diff changeset
43 test what happens if we want to trick hg
1408
5010207c3527 symlink unit test
Matthew Elder <sseses@gmail.com>
parents:
diff changeset
44
11798
1ab3d8977bdf tests: unify test-symlinks
Nicolas Dumazet <nicdumz.commits@gmail.com>
parents: 10775
diff changeset
45 $ hg commit -A -m 0
1ab3d8977bdf tests: unify test-symlinks
Nicolas Dumazet <nicdumz.commits@gmail.com>
parents: 10775
diff changeset
46 adding a.c
1ab3d8977bdf tests: unify test-symlinks
Nicolas Dumazet <nicdumz.commits@gmail.com>
parents: 10775
diff changeset
47 adding dir/a.o
1ab3d8977bdf tests: unify test-symlinks
Nicolas Dumazet <nicdumz.commits@gmail.com>
parents: 10775
diff changeset
48 adding dir/b.o
1ab3d8977bdf tests: unify test-symlinks
Nicolas Dumazet <nicdumz.commits@gmail.com>
parents: 10775
diff changeset
49 $ echo "relglob:*.o" > .hgignore
1ab3d8977bdf tests: unify test-symlinks
Nicolas Dumazet <nicdumz.commits@gmail.com>
parents: 10775
diff changeset
50 $ rm a.c
1ab3d8977bdf tests: unify test-symlinks
Nicolas Dumazet <nicdumz.commits@gmail.com>
parents: 10775
diff changeset
51 $ rm dir/a.o
1ab3d8977bdf tests: unify test-symlinks
Nicolas Dumazet <nicdumz.commits@gmail.com>
parents: 10775
diff changeset
52 $ rm dir/b.o
1ab3d8977bdf tests: unify test-symlinks
Nicolas Dumazet <nicdumz.commits@gmail.com>
parents: 10775
diff changeset
53 $ mkdir dir/a.o
1ab3d8977bdf tests: unify test-symlinks
Nicolas Dumazet <nicdumz.commits@gmail.com>
parents: 10775
diff changeset
54 $ ln -s nonexist dir/b.o
1ab3d8977bdf tests: unify test-symlinks
Nicolas Dumazet <nicdumz.commits@gmail.com>
parents: 10775
diff changeset
55 $ mkfifo a.c
1408
5010207c3527 symlink unit test
Matthew Elder <sseses@gmail.com>
parents:
diff changeset
56
11798
1ab3d8977bdf tests: unify test-symlinks
Nicolas Dumazet <nicdumz.commits@gmail.com>
parents: 10775
diff changeset
57 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
58
11798
1ab3d8977bdf tests: unify test-symlinks
Nicolas Dumazet <nicdumz.commits@gmail.com>
parents: 10775
diff changeset
59 $ hg status
1ab3d8977bdf tests: unify test-symlinks
Nicolas Dumazet <nicdumz.commits@gmail.com>
parents: 10775
diff changeset
60 M dir/b.o
1ab3d8977bdf tests: unify test-symlinks
Nicolas Dumazet <nicdumz.commits@gmail.com>
parents: 10775
diff changeset
61 ! a.c
1ab3d8977bdf tests: unify test-symlinks
Nicolas Dumazet <nicdumz.commits@gmail.com>
parents: 10775
diff changeset
62 ! dir/a.o
1ab3d8977bdf tests: unify test-symlinks
Nicolas Dumazet <nicdumz.commits@gmail.com>
parents: 10775
diff changeset
63 ? .hgignore
1ab3d8977bdf tests: unify test-symlinks
Nicolas Dumazet <nicdumz.commits@gmail.com>
parents: 10775
diff changeset
64 $ hg status a.c
1ab3d8977bdf tests: unify test-symlinks
Nicolas Dumazet <nicdumz.commits@gmail.com>
parents: 10775
diff changeset
65 a.c: unsupported file type (type is fifo)
1ab3d8977bdf tests: unify test-symlinks
Nicolas Dumazet <nicdumz.commits@gmail.com>
parents: 10775
diff changeset
66 ! a.c
1ab3d8977bdf tests: unify test-symlinks
Nicolas Dumazet <nicdumz.commits@gmail.com>
parents: 10775
diff changeset
67
1ab3d8977bdf tests: unify test-symlinks
Nicolas Dumazet <nicdumz.commits@gmail.com>
parents: 10775
diff changeset
68 test absolute path through symlink outside repo
1487
2bc6cd62a29c fix handling of files of unsupported type in the walk code
Benoit Boissinot <benoit.boissinot@ens-lyon.org>
parents: 1408
diff changeset
69
11798
1ab3d8977bdf tests: unify test-symlinks
Nicolas Dumazet <nicdumz.commits@gmail.com>
parents: 10775
diff changeset
70 $ cd ..
1ab3d8977bdf tests: unify test-symlinks
Nicolas Dumazet <nicdumz.commits@gmail.com>
parents: 10775
diff changeset
71 $ p=`pwd`
1ab3d8977bdf tests: unify test-symlinks
Nicolas Dumazet <nicdumz.commits@gmail.com>
parents: 10775
diff changeset
72 $ hg init x
1ab3d8977bdf tests: unify test-symlinks
Nicolas Dumazet <nicdumz.commits@gmail.com>
parents: 10775
diff changeset
73 $ ln -s x y
1ab3d8977bdf tests: unify test-symlinks
Nicolas Dumazet <nicdumz.commits@gmail.com>
parents: 10775
diff changeset
74 $ cd x
1ab3d8977bdf tests: unify test-symlinks
Nicolas Dumazet <nicdumz.commits@gmail.com>
parents: 10775
diff changeset
75 $ touch f
1ab3d8977bdf tests: unify test-symlinks
Nicolas Dumazet <nicdumz.commits@gmail.com>
parents: 10775
diff changeset
76 $ hg add f
1ab3d8977bdf tests: unify test-symlinks
Nicolas Dumazet <nicdumz.commits@gmail.com>
parents: 10775
diff changeset
77 $ hg status "$p"/y/f
1ab3d8977bdf tests: unify test-symlinks
Nicolas Dumazet <nicdumz.commits@gmail.com>
parents: 10775
diff changeset
78 A f
1ab3d8977bdf tests: unify test-symlinks
Nicolas Dumazet <nicdumz.commits@gmail.com>
parents: 10775
diff changeset
79
1ab3d8977bdf tests: unify test-symlinks
Nicolas Dumazet <nicdumz.commits@gmail.com>
parents: 10775
diff changeset
80 try symlink outside repo to file inside
1ab3d8977bdf tests: unify test-symlinks
Nicolas Dumazet <nicdumz.commits@gmail.com>
parents: 10775
diff changeset
81
1ab3d8977bdf tests: unify test-symlinks
Nicolas Dumazet <nicdumz.commits@gmail.com>
parents: 10775
diff changeset
82 $ ln -s x/f ../z
1ab3d8977bdf tests: unify test-symlinks
Nicolas Dumazet <nicdumz.commits@gmail.com>
parents: 10775
diff changeset
83
1ab3d8977bdf tests: unify test-symlinks
Nicolas Dumazet <nicdumz.commits@gmail.com>
parents: 10775
diff changeset
84 this should fail
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
85
11798
1ab3d8977bdf tests: unify test-symlinks
Nicolas Dumazet <nicdumz.commits@gmail.com>
parents: 10775
diff changeset
86 $ hg status ../z && { echo hg mistakenly exited with status 0; exit 1; } || :
1ab3d8977bdf tests: unify test-symlinks
Nicolas Dumazet <nicdumz.commits@gmail.com>
parents: 10775
diff changeset
87 abort: ../z not under root
1ab3d8977bdf tests: unify test-symlinks
Nicolas Dumazet <nicdumz.commits@gmail.com>
parents: 10775
diff changeset
88
1ab3d8977bdf tests: unify test-symlinks
Nicolas Dumazet <nicdumz.commits@gmail.com>
parents: 10775
diff changeset
89 $ cd .. ; rm -r test
1ab3d8977bdf tests: unify test-symlinks
Nicolas Dumazet <nicdumz.commits@gmail.com>
parents: 10775
diff changeset
90 $ hg init test; cd test;
1ab3d8977bdf tests: unify test-symlinks
Nicolas Dumazet <nicdumz.commits@gmail.com>
parents: 10775
diff changeset
91
1ab3d8977bdf tests: unify test-symlinks
Nicolas Dumazet <nicdumz.commits@gmail.com>
parents: 10775
diff changeset
92 try cloning symlink in a subdir
1ab3d8977bdf tests: unify test-symlinks
Nicolas Dumazet <nicdumz.commits@gmail.com>
parents: 10775
diff changeset
93 1. commit a symlink
1ab3d8977bdf tests: unify test-symlinks
Nicolas Dumazet <nicdumz.commits@gmail.com>
parents: 10775
diff changeset
94
1ab3d8977bdf tests: unify test-symlinks
Nicolas Dumazet <nicdumz.commits@gmail.com>
parents: 10775
diff changeset
95 $ mkdir -p a/b/c
1ab3d8977bdf tests: unify test-symlinks
Nicolas Dumazet <nicdumz.commits@gmail.com>
parents: 10775
diff changeset
96 $ cd a/b/c
1ab3d8977bdf tests: unify test-symlinks
Nicolas Dumazet <nicdumz.commits@gmail.com>
parents: 10775
diff changeset
97 $ ln -s /path/to/symlink/source demo
1ab3d8977bdf tests: unify test-symlinks
Nicolas Dumazet <nicdumz.commits@gmail.com>
parents: 10775
diff changeset
98 $ cd ../../..
1ab3d8977bdf tests: unify test-symlinks
Nicolas Dumazet <nicdumz.commits@gmail.com>
parents: 10775
diff changeset
99 $ hg stat
1ab3d8977bdf tests: unify test-symlinks
Nicolas Dumazet <nicdumz.commits@gmail.com>
parents: 10775
diff changeset
100 ? a/b/c/demo
1ab3d8977bdf tests: unify test-symlinks
Nicolas Dumazet <nicdumz.commits@gmail.com>
parents: 10775
diff changeset
101 $ hg commit -A -m 'add symlink in a/b/c subdir'
1ab3d8977bdf tests: unify test-symlinks
Nicolas Dumazet <nicdumz.commits@gmail.com>
parents: 10775
diff changeset
102 adding a/b/c/demo
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
103
11798
1ab3d8977bdf tests: unify test-symlinks
Nicolas Dumazet <nicdumz.commits@gmail.com>
parents: 10775
diff changeset
104 2. clone it
4137
26596a6b6518 Create the parent directory when checking out symlinks.
Giorgos Keramidas <keramida@ceid.upatras.gr>
parents: 3988
diff changeset
105
11798
1ab3d8977bdf tests: unify test-symlinks
Nicolas Dumazet <nicdumz.commits@gmail.com>
parents: 10775
diff changeset
106 $ cd ..
1ab3d8977bdf tests: unify test-symlinks
Nicolas Dumazet <nicdumz.commits@gmail.com>
parents: 10775
diff changeset
107 $ hg clone test testclone
1ab3d8977bdf tests: unify test-symlinks
Nicolas Dumazet <nicdumz.commits@gmail.com>
parents: 10775
diff changeset
108 updating to branch default
1ab3d8977bdf tests: unify test-symlinks
Nicolas Dumazet <nicdumz.commits@gmail.com>
parents: 10775
diff changeset
109 1 files updated, 0 files merged, 0 files removed, 0 files unresolved
1ab3d8977bdf tests: unify test-symlinks
Nicolas Dumazet <nicdumz.commits@gmail.com>
parents: 10775
diff changeset
110
1ab3d8977bdf tests: unify test-symlinks
Nicolas Dumazet <nicdumz.commits@gmail.com>
parents: 10775
diff changeset
111 git symlink diff
4137
26596a6b6518 Create the parent directory when checking out symlinks.
Giorgos Keramidas <keramida@ceid.upatras.gr>
parents: 3988
diff changeset
112
11798
1ab3d8977bdf tests: unify test-symlinks
Nicolas Dumazet <nicdumz.commits@gmail.com>
parents: 10775
diff changeset
113 $ cd testclone
1ab3d8977bdf tests: unify test-symlinks
Nicolas Dumazet <nicdumz.commits@gmail.com>
parents: 10775
diff changeset
114 $ hg diff --git -r null:tip
1ab3d8977bdf tests: unify test-symlinks
Nicolas Dumazet <nicdumz.commits@gmail.com>
parents: 10775
diff changeset
115 diff --git a/a/b/c/demo b/a/b/c/demo
1ab3d8977bdf tests: unify test-symlinks
Nicolas Dumazet <nicdumz.commits@gmail.com>
parents: 10775
diff changeset
116 new file mode 120000
1ab3d8977bdf tests: unify test-symlinks
Nicolas Dumazet <nicdumz.commits@gmail.com>
parents: 10775
diff changeset
117 --- /dev/null
1ab3d8977bdf tests: unify test-symlinks
Nicolas Dumazet <nicdumz.commits@gmail.com>
parents: 10775
diff changeset
118 +++ b/a/b/c/demo
1ab3d8977bdf tests: unify test-symlinks
Nicolas Dumazet <nicdumz.commits@gmail.com>
parents: 10775
diff changeset
119 @@ -0,0 +1,1 @@
1ab3d8977bdf tests: unify test-symlinks
Nicolas Dumazet <nicdumz.commits@gmail.com>
parents: 10775
diff changeset
120 +/path/to/symlink/source
1ab3d8977bdf tests: unify test-symlinks
Nicolas Dumazet <nicdumz.commits@gmail.com>
parents: 10775
diff changeset
121 \ No newline at end of file
1ab3d8977bdf tests: unify test-symlinks
Nicolas Dumazet <nicdumz.commits@gmail.com>
parents: 10775
diff changeset
122 $ hg export --git tip > ../sl.diff
1ab3d8977bdf tests: unify test-symlinks
Nicolas Dumazet <nicdumz.commits@gmail.com>
parents: 10775
diff changeset
123
1ab3d8977bdf tests: unify test-symlinks
Nicolas Dumazet <nicdumz.commits@gmail.com>
parents: 10775
diff changeset
124 import git symlink diff
5116
35d47b06d4e3 patch: add git symlink support
Brendan Cully <brendan@kublai.com>
parents: 4882
diff changeset
125
11798
1ab3d8977bdf tests: unify test-symlinks
Nicolas Dumazet <nicdumz.commits@gmail.com>
parents: 10775
diff changeset
126 $ hg rm a/b/c/demo
1ab3d8977bdf tests: unify test-symlinks
Nicolas Dumazet <nicdumz.commits@gmail.com>
parents: 10775
diff changeset
127 $ hg commit -m'remove link'
1ab3d8977bdf tests: unify test-symlinks
Nicolas Dumazet <nicdumz.commits@gmail.com>
parents: 10775
diff changeset
128 $ hg import ../sl.diff
1ab3d8977bdf tests: unify test-symlinks
Nicolas Dumazet <nicdumz.commits@gmail.com>
parents: 10775
diff changeset
129 applying ../sl.diff
1ab3d8977bdf tests: unify test-symlinks
Nicolas Dumazet <nicdumz.commits@gmail.com>
parents: 10775
diff changeset
130 $ hg diff --git -r 1:tip
1ab3d8977bdf tests: unify test-symlinks
Nicolas Dumazet <nicdumz.commits@gmail.com>
parents: 10775
diff changeset
131 diff --git a/a/b/c/demo b/a/b/c/demo
1ab3d8977bdf tests: unify test-symlinks
Nicolas Dumazet <nicdumz.commits@gmail.com>
parents: 10775
diff changeset
132 new file mode 120000
1ab3d8977bdf tests: unify test-symlinks
Nicolas Dumazet <nicdumz.commits@gmail.com>
parents: 10775
diff changeset
133 --- /dev/null
1ab3d8977bdf tests: unify test-symlinks
Nicolas Dumazet <nicdumz.commits@gmail.com>
parents: 10775
diff changeset
134 +++ b/a/b/c/demo
1ab3d8977bdf tests: unify test-symlinks
Nicolas Dumazet <nicdumz.commits@gmail.com>
parents: 10775
diff changeset
135 @@ -0,0 +1,1 @@
1ab3d8977bdf tests: unify test-symlinks
Nicolas Dumazet <nicdumz.commits@gmail.com>
parents: 10775
diff changeset
136 +/path/to/symlink/source
1ab3d8977bdf tests: unify test-symlinks
Nicolas Dumazet <nicdumz.commits@gmail.com>
parents: 10775
diff changeset
137 \ No newline at end of file