##// END OF EJS Templates
tests: merge all 4 test-symlink* into test-symlinks
Nicolas Dumazet -
r11812:6f12f53a default
parent child Browse files
Show More
@@ -1,14 +1,8 b''
1 Test bug regarding symlinks that showed up in hg 0.7
2 Author: Matthew Elder <sseses@gmail.com>
3
4 $ "$TESTDIR/hghave" symlink || exit 80
1 $ "$TESTDIR/hghave" symlink || exit 80
5
2
6 make and initialize repo
3 == tests added in 0.7 ==
7
4
8 $ hg init test; cd test;
5 $ hg init test-symlinks-0.7; cd test-symlinks-0.7;
9
10 make a file and a symlink
11
12 $ touch foo; ln -s foo bar;
6 $ touch foo; ln -s foo bar;
13
7
14 import with addremove -- symlink walking should _not_ screwup.
8 import with addremove -- symlink walking should _not_ screwup.
@@ -21,8 +15,6 b' commit -- the symlink should _not_ appea'
21
15
22 $ hg commit -m 'initial'
16 $ hg commit -m 'initial'
23
17
24 add a new file so hg will let me commit again
25
26 $ touch bomb
18 $ touch bomb
27
19
28 again, symlink should _not_ show up on dir state
20 again, symlink should _not_ show up on dir state
@@ -33,8 +25,11 b' again, symlink should _not_ show up on d'
33 Assert screamed here before, should go by without consequence
25 Assert screamed here before, should go by without consequence
34
26
35 $ hg commit -m 'is there a bug?'
27 $ hg commit -m 'is there a bug?'
28 $ cd ..
36
29
37 $ cd .. ; rm -r test
30
31 == fifo & ignore ==
32
38 $ hg init test; cd test;
33 $ hg init test; cd test;
39
34
40 $ mkdir dir
35 $ mkdir dir
@@ -64,10 +59,13 b' it should show a.c, dir/a.o and dir/b.o '
64 $ hg status a.c
59 $ hg status a.c
65 a.c: unsupported file type (type is fifo)
60 a.c: unsupported file type (type is fifo)
66 ! a.c
61 ! a.c
62 $ cd ..
63
64
65 == symlinks from outside the tree ==
67
66
68 test absolute path through symlink outside repo
67 test absolute path through symlink outside repo
69
68
70 $ cd ..
71 $ p=`pwd`
69 $ p=`pwd`
72 $ hg init x
70 $ hg init x
73 $ ln -s x y
71 $ ln -s x y
@@ -85,9 +83,11 b' this should fail'
85
83
86 $ hg status ../z && { echo hg mistakenly exited with status 0; exit 1; } || :
84 $ hg status ../z && { echo hg mistakenly exited with status 0; exit 1; } || :
87 abort: ../z not under root
85 abort: ../z not under root
86 $ cd ..
88
87
89 $ cd .. ; rm -r test
88
90 $ hg init test; cd test;
89 == cloning symlinks ==
90 $ hg init clone; cd clone;
91
91
92 try cloning symlink in a subdir
92 try cloning symlink in a subdir
93 1. commit a symlink
93 1. commit a symlink
@@ -104,13 +104,16 b' 1. commit a symlink'
104 2. clone it
104 2. clone it
105
105
106 $ cd ..
106 $ cd ..
107 $ hg clone test testclone
107 $ hg clone clone clonedest
108 updating to branch default
108 updating to branch default
109 1 files updated, 0 files merged, 0 files removed, 0 files unresolved
109 1 files updated, 0 files merged, 0 files removed, 0 files unresolved
110
110
111
112 == symlink and git diffs ==
113
111 git symlink diff
114 git symlink diff
112
115
113 $ cd testclone
116 $ cd clonedest
114 $ hg diff --git -r null:tip
117 $ hg diff --git -r null:tip
115 diff --git a/a/b/c/demo b/a/b/c/demo
118 diff --git a/a/b/c/demo b/a/b/c/demo
116 new file mode 120000
119 new file mode 120000
@@ -135,3 +138,116 b' import git symlink diff'
135 @@ -0,0 +1,1 @@
138 @@ -0,0 +1,1 @@
136 +/path/to/symlink/source
139 +/path/to/symlink/source
137 \ No newline at end of file
140 \ No newline at end of file
141
142 == symlinks and addremove ==
143
144 directory moved and symlinked
145
146 $ mkdir foo
147 $ touch foo/a
148 $ hg ci -Ama
149 adding foo/a
150 $ mv foo bar
151 $ ln -s bar foo
152
153 now addremove should remove old files
154
155 $ hg addremove
156 adding bar/a
157 adding foo
158 removing foo/a
159 $ cd ..
160
161 == root of repository is symlinked ==
162
163 $ hg init root
164 $ ln -s root link
165 $ cd root
166 $ echo foo > foo
167 $ hg status
168 ? foo
169 $ hg status ../link
170 ? foo
171 $ cd ..
172
173
174
175
176 $ hg init b
177 $ cd b
178 $ ln -s nothing dangling
179 $ hg commit -m 'commit symlink without adding' dangling
180 abort: dangling: file not tracked!
181 $ hg add dangling
182 $ hg commit -m 'add symlink'
183
184 $ hg tip -v
185 changeset: 0:cabd88b706fc
186 tag: tip
187 user: test
188 date: Thu Jan 01 00:00:00 1970 +0000
189 files: dangling
190 description:
191 add symlink
192
193
194 $ hg manifest --debug
195 2564acbe54bbbedfbf608479340b359f04597f80 644 @ dangling
196 $ $TESTDIR/readlink.py dangling
197 dangling -> nothing
198
199 $ rm dangling
200 $ ln -s void dangling
201 $ hg commit -m 'change symlink'
202 $ $TESTDIR/readlink.py dangling
203 dangling -> void
204
205
206 modifying link
207
208 $ rm dangling
209 $ ln -s empty dangling
210 $ $TESTDIR/readlink.py dangling
211 dangling -> empty
212
213
214 reverting to rev 0:
215
216 $ hg revert -r 0 -a
217 reverting dangling
218 $ $TESTDIR/readlink.py dangling
219 dangling -> nothing
220
221
222 backups:
223
224 $ $TESTDIR/readlink.py *.orig
225 dangling.orig -> empty
226 $ rm *.orig
227 $ hg up -C
228 1 files updated, 0 files merged, 0 files removed, 0 files unresolved
229
230 copies
231
232 $ hg cp -v dangling dangling2
233 copying dangling to dangling2
234 $ hg st -Cmard
235 A dangling2
236 dangling
237 $ $TESTDIR/readlink.py dangling dangling2
238 dangling -> void
239 dangling2 -> void
240
241
242 issue995
243
244 $ hg up -C
245 0 files updated, 0 files merged, 0 files removed, 0 files unresolved
246 $ mkdir dir
247 $ ln -s dir dirlink
248 $ hg ci -qAm 'add dirlink'
249 $ mkdir newdir
250 $ mv dir newdir/dir
251 $ mv dirlink newdir/dirlink
252 $ hg mv -A dirlink newdir/dirlink
253
General Comments 0
You need to be logged in to leave comments. Login now