annotate tests/test-purge @ 5461:ab4d2e9f3b97

convert: svn -- fix 'exists' Previously 'exists' erroneously returned False for empty dirictories. This is wrong since we want to detect even empty 'branches/' or 'tags/'.
author Kirill Smelkov <kirr@landau.phys.spbu.ru>
date Sat, 13 Oct 2007 15:22:03 +0400
parents ca4971347e0a
children
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
rev   line source
4145
2ebdd33fe456 Add a test for the purge extension
Emanuele Aina <faina.mail@tiscali.it>
parents:
diff changeset
1 #!/bin/sh
2ebdd33fe456 Add a test for the purge extension
Emanuele Aina <faina.mail@tiscali.it>
parents:
diff changeset
2
2ebdd33fe456 Add a test for the purge extension
Emanuele Aina <faina.mail@tiscali.it>
parents:
diff changeset
3 cat <<EOF >> $HGRCPATH
2ebdd33fe456 Add a test for the purge extension
Emanuele Aina <faina.mail@tiscali.it>
parents:
diff changeset
4 [extensions]
4308
1043e4b27ab9 Move back the purge extension in hgext
Emanuele Aina <em@nerd.ocracy.org>
parents: 4307
diff changeset
5 hgext.purge=
4145
2ebdd33fe456 Add a test for the purge extension
Emanuele Aina <faina.mail@tiscali.it>
parents:
diff changeset
6 EOF
2ebdd33fe456 Add a test for the purge extension
Emanuele Aina <faina.mail@tiscali.it>
parents:
diff changeset
7
2ebdd33fe456 Add a test for the purge extension
Emanuele Aina <faina.mail@tiscali.it>
parents:
diff changeset
8 echo % init
2ebdd33fe456 Add a test for the purge extension
Emanuele Aina <faina.mail@tiscali.it>
parents:
diff changeset
9 hg init t
2ebdd33fe456 Add a test for the purge extension
Emanuele Aina <faina.mail@tiscali.it>
parents:
diff changeset
10 cd t
2ebdd33fe456 Add a test for the purge extension
Emanuele Aina <faina.mail@tiscali.it>
parents:
diff changeset
11
2ebdd33fe456 Add a test for the purge extension
Emanuele Aina <faina.mail@tiscali.it>
parents:
diff changeset
12 echo % setup
2ebdd33fe456 Add a test for the purge extension
Emanuele Aina <faina.mail@tiscali.it>
parents:
diff changeset
13 echo r1 > r1
2ebdd33fe456 Add a test for the purge extension
Emanuele Aina <faina.mail@tiscali.it>
parents:
diff changeset
14 hg ci -qAmr1 -d'0 0'
2ebdd33fe456 Add a test for the purge extension
Emanuele Aina <faina.mail@tiscali.it>
parents:
diff changeset
15 mkdir directory
2ebdd33fe456 Add a test for the purge extension
Emanuele Aina <faina.mail@tiscali.it>
parents:
diff changeset
16 echo r2 > directory/r2
2ebdd33fe456 Add a test for the purge extension
Emanuele Aina <faina.mail@tiscali.it>
parents:
diff changeset
17 hg ci -qAmr2 -d'1 0'
2ebdd33fe456 Add a test for the purge extension
Emanuele Aina <faina.mail@tiscali.it>
parents:
diff changeset
18 echo 'ignored' > .hgignore
2ebdd33fe456 Add a test for the purge extension
Emanuele Aina <faina.mail@tiscali.it>
parents:
diff changeset
19 hg ci -qAmr3 -d'2 0'
2ebdd33fe456 Add a test for the purge extension
Emanuele Aina <faina.mail@tiscali.it>
parents:
diff changeset
20
2ebdd33fe456 Add a test for the purge extension
Emanuele Aina <faina.mail@tiscali.it>
parents:
diff changeset
21 echo % delete an empty directory
2ebdd33fe456 Add a test for the purge extension
Emanuele Aina <faina.mail@tiscali.it>
parents:
diff changeset
22 mkdir empty_dir
2ebdd33fe456 Add a test for the purge extension
Emanuele Aina <faina.mail@tiscali.it>
parents:
diff changeset
23 hg purge -p
2ebdd33fe456 Add a test for the purge extension
Emanuele Aina <faina.mail@tiscali.it>
parents:
diff changeset
24 hg purge -v
2ebdd33fe456 Add a test for the purge extension
Emanuele Aina <faina.mail@tiscali.it>
parents:
diff changeset
25 ls
2ebdd33fe456 Add a test for the purge extension
Emanuele Aina <faina.mail@tiscali.it>
parents:
diff changeset
26
2ebdd33fe456 Add a test for the purge extension
Emanuele Aina <faina.mail@tiscali.it>
parents:
diff changeset
27 echo % delete an untracked directory
2ebdd33fe456 Add a test for the purge extension
Emanuele Aina <faina.mail@tiscali.it>
parents:
diff changeset
28 mkdir untracked_dir
2ebdd33fe456 Add a test for the purge extension
Emanuele Aina <faina.mail@tiscali.it>
parents:
diff changeset
29 touch untracked_dir/untracked_file1
2ebdd33fe456 Add a test for the purge extension
Emanuele Aina <faina.mail@tiscali.it>
parents:
diff changeset
30 touch untracked_dir/untracked_file2
2ebdd33fe456 Add a test for the purge extension
Emanuele Aina <faina.mail@tiscali.it>
parents:
diff changeset
31 hg purge -p
2ebdd33fe456 Add a test for the purge extension
Emanuele Aina <faina.mail@tiscali.it>
parents:
diff changeset
32 hg purge -v
2ebdd33fe456 Add a test for the purge extension
Emanuele Aina <faina.mail@tiscali.it>
parents:
diff changeset
33 ls
2ebdd33fe456 Add a test for the purge extension
Emanuele Aina <faina.mail@tiscali.it>
parents:
diff changeset
34
2ebdd33fe456 Add a test for the purge extension
Emanuele Aina <faina.mail@tiscali.it>
parents:
diff changeset
35 echo % delete an untracked file
2ebdd33fe456 Add a test for the purge extension
Emanuele Aina <faina.mail@tiscali.it>
parents:
diff changeset
36 touch untracked_file
2ebdd33fe456 Add a test for the purge extension
Emanuele Aina <faina.mail@tiscali.it>
parents:
diff changeset
37 hg purge -p
2ebdd33fe456 Add a test for the purge extension
Emanuele Aina <faina.mail@tiscali.it>
parents:
diff changeset
38 hg purge -v
2ebdd33fe456 Add a test for the purge extension
Emanuele Aina <faina.mail@tiscali.it>
parents:
diff changeset
39 ls
2ebdd33fe456 Add a test for the purge extension
Emanuele Aina <faina.mail@tiscali.it>
parents:
diff changeset
40
2ebdd33fe456 Add a test for the purge extension
Emanuele Aina <faina.mail@tiscali.it>
parents:
diff changeset
41 echo % delete an untracked file in a tracked directory
2ebdd33fe456 Add a test for the purge extension
Emanuele Aina <faina.mail@tiscali.it>
parents:
diff changeset
42 touch directory/untracked_file
2ebdd33fe456 Add a test for the purge extension
Emanuele Aina <faina.mail@tiscali.it>
parents:
diff changeset
43 hg purge -p
2ebdd33fe456 Add a test for the purge extension
Emanuele Aina <faina.mail@tiscali.it>
parents:
diff changeset
44 hg purge -v
2ebdd33fe456 Add a test for the purge extension
Emanuele Aina <faina.mail@tiscali.it>
parents:
diff changeset
45 ls
2ebdd33fe456 Add a test for the purge extension
Emanuele Aina <faina.mail@tiscali.it>
parents:
diff changeset
46
2ebdd33fe456 Add a test for the purge extension
Emanuele Aina <faina.mail@tiscali.it>
parents:
diff changeset
47 echo % delete nested directories
2ebdd33fe456 Add a test for the purge extension
Emanuele Aina <faina.mail@tiscali.it>
parents:
diff changeset
48 mkdir -p untracked_directory/nested_directory
2ebdd33fe456 Add a test for the purge extension
Emanuele Aina <faina.mail@tiscali.it>
parents:
diff changeset
49 hg purge -p
2ebdd33fe456 Add a test for the purge extension
Emanuele Aina <faina.mail@tiscali.it>
parents:
diff changeset
50 hg purge -v
2ebdd33fe456 Add a test for the purge extension
Emanuele Aina <faina.mail@tiscali.it>
parents:
diff changeset
51 ls
2ebdd33fe456 Add a test for the purge extension
Emanuele Aina <faina.mail@tiscali.it>
parents:
diff changeset
52
4155
4c714ed245d6 purge.py: fix invocation of statwalk
Alexis S. L. Carvalho <alexis@cecm.usp.br>
parents: 4145
diff changeset
53 echo % delete nested directories from a subdir
4c714ed245d6 purge.py: fix invocation of statwalk
Alexis S. L. Carvalho <alexis@cecm.usp.br>
parents: 4145
diff changeset
54 mkdir -p untracked_directory/nested_directory
4c714ed245d6 purge.py: fix invocation of statwalk
Alexis S. L. Carvalho <alexis@cecm.usp.br>
parents: 4145
diff changeset
55 cd directory
4c714ed245d6 purge.py: fix invocation of statwalk
Alexis S. L. Carvalho <alexis@cecm.usp.br>
parents: 4145
diff changeset
56 hg purge -p
4c714ed245d6 purge.py: fix invocation of statwalk
Alexis S. L. Carvalho <alexis@cecm.usp.br>
parents: 4145
diff changeset
57 hg purge -v
4c714ed245d6 purge.py: fix invocation of statwalk
Alexis S. L. Carvalho <alexis@cecm.usp.br>
parents: 4145
diff changeset
58 cd ..
4c714ed245d6 purge.py: fix invocation of statwalk
Alexis S. L. Carvalho <alexis@cecm.usp.br>
parents: 4145
diff changeset
59 ls
4c714ed245d6 purge.py: fix invocation of statwalk
Alexis S. L. Carvalho <alexis@cecm.usp.br>
parents: 4145
diff changeset
60
4c714ed245d6 purge.py: fix invocation of statwalk
Alexis S. L. Carvalho <alexis@cecm.usp.br>
parents: 4145
diff changeset
61 echo % delete only part of the tree
4c714ed245d6 purge.py: fix invocation of statwalk
Alexis S. L. Carvalho <alexis@cecm.usp.br>
parents: 4145
diff changeset
62 mkdir -p untracked_directory/nested_directory
4c714ed245d6 purge.py: fix invocation of statwalk
Alexis S. L. Carvalho <alexis@cecm.usp.br>
parents: 4145
diff changeset
63 touch directory/untracked_file
4c714ed245d6 purge.py: fix invocation of statwalk
Alexis S. L. Carvalho <alexis@cecm.usp.br>
parents: 4145
diff changeset
64 cd directory
4c714ed245d6 purge.py: fix invocation of statwalk
Alexis S. L. Carvalho <alexis@cecm.usp.br>
parents: 4145
diff changeset
65 hg purge -p ../untracked_directory
4c714ed245d6 purge.py: fix invocation of statwalk
Alexis S. L. Carvalho <alexis@cecm.usp.br>
parents: 4145
diff changeset
66 hg purge -v ../untracked_directory
4c714ed245d6 purge.py: fix invocation of statwalk
Alexis S. L. Carvalho <alexis@cecm.usp.br>
parents: 4145
diff changeset
67 cd ..
4c714ed245d6 purge.py: fix invocation of statwalk
Alexis S. L. Carvalho <alexis@cecm.usp.br>
parents: 4145
diff changeset
68 ls
4c714ed245d6 purge.py: fix invocation of statwalk
Alexis S. L. Carvalho <alexis@cecm.usp.br>
parents: 4145
diff changeset
69 ls directory/untracked_file
4c714ed245d6 purge.py: fix invocation of statwalk
Alexis S. L. Carvalho <alexis@cecm.usp.br>
parents: 4145
diff changeset
70 rm directory/untracked_file
4c714ed245d6 purge.py: fix invocation of statwalk
Alexis S. L. Carvalho <alexis@cecm.usp.br>
parents: 4145
diff changeset
71
4691
ca4971347e0a purge: don't delete ignored files if --all is not specified
Emanuele Aina <em@nerd.ocracy.org>
parents: 4462
diff changeset
72 echo % skip ignored files if --all not specified
4145
2ebdd33fe456 Add a test for the purge extension
Emanuele Aina <faina.mail@tiscali.it>
parents:
diff changeset
73 touch ignored
2ebdd33fe456 Add a test for the purge extension
Emanuele Aina <faina.mail@tiscali.it>
parents:
diff changeset
74 hg purge -p
2ebdd33fe456 Add a test for the purge extension
Emanuele Aina <faina.mail@tiscali.it>
parents:
diff changeset
75 hg purge -v
2ebdd33fe456 Add a test for the purge extension
Emanuele Aina <faina.mail@tiscali.it>
parents:
diff changeset
76 ls
4691
ca4971347e0a purge: don't delete ignored files if --all is not specified
Emanuele Aina <em@nerd.ocracy.org>
parents: 4462
diff changeset
77 hg purge -p --all
ca4971347e0a purge: don't delete ignored files if --all is not specified
Emanuele Aina <em@nerd.ocracy.org>
parents: 4462
diff changeset
78 hg purge -v --all
ca4971347e0a purge: don't delete ignored files if --all is not specified
Emanuele Aina <em@nerd.ocracy.org>
parents: 4462
diff changeset
79 ls
4307
c8919eb0f315 purge: abort with missing files avoiding problems with name-mangling fs
Emanuele Aina <em@nerd.ocracy.org>
parents: 4155
diff changeset
80
c8919eb0f315 purge: abort with missing files avoiding problems with name-mangling fs
Emanuele Aina <em@nerd.ocracy.org>
parents: 4155
diff changeset
81 echo % abort with missing files until we support name mangling filesystems
c8919eb0f315 purge: abort with missing files avoiding problems with name-mangling fs
Emanuele Aina <em@nerd.ocracy.org>
parents: 4155
diff changeset
82 touch untracked_file
c8919eb0f315 purge: abort with missing files avoiding problems with name-mangling fs
Emanuele Aina <em@nerd.ocracy.org>
parents: 4155
diff changeset
83 rm r1
c8919eb0f315 purge: abort with missing files avoiding problems with name-mangling fs
Emanuele Aina <em@nerd.ocracy.org>
parents: 4155
diff changeset
84 # hide error messages to avoid changing the output when the text changes
c8919eb0f315 purge: abort with missing files avoiding problems with name-mangling fs
Emanuele Aina <em@nerd.ocracy.org>
parents: 4155
diff changeset
85 hg purge -p 2> /dev/null
c8919eb0f315 purge: abort with missing files avoiding problems with name-mangling fs
Emanuele Aina <em@nerd.ocracy.org>
parents: 4155
diff changeset
86 if [ $? -ne 0 ]; then
c8919eb0f315 purge: abort with missing files avoiding problems with name-mangling fs
Emanuele Aina <em@nerd.ocracy.org>
parents: 4155
diff changeset
87 echo "refused to run"
c8919eb0f315 purge: abort with missing files avoiding problems with name-mangling fs
Emanuele Aina <em@nerd.ocracy.org>
parents: 4155
diff changeset
88 fi
c8919eb0f315 purge: abort with missing files avoiding problems with name-mangling fs
Emanuele Aina <em@nerd.ocracy.org>
parents: 4155
diff changeset
89 if [ -f untracked_file ]; then
c8919eb0f315 purge: abort with missing files avoiding problems with name-mangling fs
Emanuele Aina <em@nerd.ocracy.org>
parents: 4155
diff changeset
90 echo "untracked_file still around"
c8919eb0f315 purge: abort with missing files avoiding problems with name-mangling fs
Emanuele Aina <em@nerd.ocracy.org>
parents: 4155
diff changeset
91 fi
c8919eb0f315 purge: abort with missing files avoiding problems with name-mangling fs
Emanuele Aina <em@nerd.ocracy.org>
parents: 4155
diff changeset
92 hg purge -p --force
c8919eb0f315 purge: abort with missing files avoiding problems with name-mangling fs
Emanuele Aina <em@nerd.ocracy.org>
parents: 4155
diff changeset
93 hg purge -v 2> /dev/null
c8919eb0f315 purge: abort with missing files avoiding problems with name-mangling fs
Emanuele Aina <em@nerd.ocracy.org>
parents: 4155
diff changeset
94 if [ $? -ne 0 ]; then
c8919eb0f315 purge: abort with missing files avoiding problems with name-mangling fs
Emanuele Aina <em@nerd.ocracy.org>
parents: 4155
diff changeset
95 echo "refused to run"
c8919eb0f315 purge: abort with missing files avoiding problems with name-mangling fs
Emanuele Aina <em@nerd.ocracy.org>
parents: 4155
diff changeset
96 fi
c8919eb0f315 purge: abort with missing files avoiding problems with name-mangling fs
Emanuele Aina <em@nerd.ocracy.org>
parents: 4155
diff changeset
97 if [ -f untracked_file ]; then
c8919eb0f315 purge: abort with missing files avoiding problems with name-mangling fs
Emanuele Aina <em@nerd.ocracy.org>
parents: 4155
diff changeset
98 echo "untracked_file still around"
c8919eb0f315 purge: abort with missing files avoiding problems with name-mangling fs
Emanuele Aina <em@nerd.ocracy.org>
parents: 4155
diff changeset
99 fi
c8919eb0f315 purge: abort with missing files avoiding problems with name-mangling fs
Emanuele Aina <em@nerd.ocracy.org>
parents: 4155
diff changeset
100 hg purge -v --force
c8919eb0f315 purge: abort with missing files avoiding problems with name-mangling fs
Emanuele Aina <em@nerd.ocracy.org>
parents: 4155
diff changeset
101 hg revert --all --quiet
c8919eb0f315 purge: abort with missing files avoiding problems with name-mangling fs
Emanuele Aina <em@nerd.ocracy.org>
parents: 4155
diff changeset
102 ls
4462
a73cf208b2a0 purge: add --include and --exclude options
Emanuele Aina <em@nerd.ocracy.org>
parents: 4308
diff changeset
103
a73cf208b2a0 purge: add --include and --exclude options
Emanuele Aina <em@nerd.ocracy.org>
parents: 4308
diff changeset
104 echo % skip excluded files
a73cf208b2a0 purge: add --include and --exclude options
Emanuele Aina <em@nerd.ocracy.org>
parents: 4308
diff changeset
105 touch excluded_file
a73cf208b2a0 purge: add --include and --exclude options
Emanuele Aina <em@nerd.ocracy.org>
parents: 4308
diff changeset
106 hg purge -p -X excluded_file
a73cf208b2a0 purge: add --include and --exclude options
Emanuele Aina <em@nerd.ocracy.org>
parents: 4308
diff changeset
107 hg purge -v -X excluded_file
a73cf208b2a0 purge: add --include and --exclude options
Emanuele Aina <em@nerd.ocracy.org>
parents: 4308
diff changeset
108 ls
a73cf208b2a0 purge: add --include and --exclude options
Emanuele Aina <em@nerd.ocracy.org>
parents: 4308
diff changeset
109 rm excluded_file
a73cf208b2a0 purge: add --include and --exclude options
Emanuele Aina <em@nerd.ocracy.org>
parents: 4308
diff changeset
110
a73cf208b2a0 purge: add --include and --exclude options
Emanuele Aina <em@nerd.ocracy.org>
parents: 4308
diff changeset
111 echo % skip files in excluded dirs
a73cf208b2a0 purge: add --include and --exclude options
Emanuele Aina <em@nerd.ocracy.org>
parents: 4308
diff changeset
112 mkdir excluded_dir
a73cf208b2a0 purge: add --include and --exclude options
Emanuele Aina <em@nerd.ocracy.org>
parents: 4308
diff changeset
113 touch excluded_dir/file
a73cf208b2a0 purge: add --include and --exclude options
Emanuele Aina <em@nerd.ocracy.org>
parents: 4308
diff changeset
114 hg purge -p -X excluded_dir
a73cf208b2a0 purge: add --include and --exclude options
Emanuele Aina <em@nerd.ocracy.org>
parents: 4308
diff changeset
115 hg purge -v -X excluded_dir
a73cf208b2a0 purge: add --include and --exclude options
Emanuele Aina <em@nerd.ocracy.org>
parents: 4308
diff changeset
116 ls
a73cf208b2a0 purge: add --include and --exclude options
Emanuele Aina <em@nerd.ocracy.org>
parents: 4308
diff changeset
117 ls excluded_dir
a73cf208b2a0 purge: add --include and --exclude options
Emanuele Aina <em@nerd.ocracy.org>
parents: 4308
diff changeset
118 rm -R excluded_dir
a73cf208b2a0 purge: add --include and --exclude options
Emanuele Aina <em@nerd.ocracy.org>
parents: 4308
diff changeset
119
a73cf208b2a0 purge: add --include and --exclude options
Emanuele Aina <em@nerd.ocracy.org>
parents: 4308
diff changeset
120 echo % skip excluded empty dirs
a73cf208b2a0 purge: add --include and --exclude options
Emanuele Aina <em@nerd.ocracy.org>
parents: 4308
diff changeset
121 mkdir excluded_dir
a73cf208b2a0 purge: add --include and --exclude options
Emanuele Aina <em@nerd.ocracy.org>
parents: 4308
diff changeset
122 hg purge -p -X excluded_dir
a73cf208b2a0 purge: add --include and --exclude options
Emanuele Aina <em@nerd.ocracy.org>
parents: 4308
diff changeset
123 hg purge -v -X excluded_dir
a73cf208b2a0 purge: add --include and --exclude options
Emanuele Aina <em@nerd.ocracy.org>
parents: 4308
diff changeset
124 ls
a73cf208b2a0 purge: add --include and --exclude options
Emanuele Aina <em@nerd.ocracy.org>
parents: 4308
diff changeset
125 rmdir excluded_dir
a73cf208b2a0 purge: add --include and --exclude options
Emanuele Aina <em@nerd.ocracy.org>
parents: 4308
diff changeset
126
a73cf208b2a0 purge: add --include and --exclude options
Emanuele Aina <em@nerd.ocracy.org>
parents: 4308
diff changeset
127 echo % skip patterns
a73cf208b2a0 purge: add --include and --exclude options
Emanuele Aina <em@nerd.ocracy.org>
parents: 4308
diff changeset
128 mkdir .svn
a73cf208b2a0 purge: add --include and --exclude options
Emanuele Aina <em@nerd.ocracy.org>
parents: 4308
diff changeset
129 touch .svn/foo
a73cf208b2a0 purge: add --include and --exclude options
Emanuele Aina <em@nerd.ocracy.org>
parents: 4308
diff changeset
130 mkdir directory/.svn
a73cf208b2a0 purge: add --include and --exclude options
Emanuele Aina <em@nerd.ocracy.org>
parents: 4308
diff changeset
131 touch directory/.svn/foo
a73cf208b2a0 purge: add --include and --exclude options
Emanuele Aina <em@nerd.ocracy.org>
parents: 4308
diff changeset
132 hg purge -p -X .svn -X '*/.svn'
a73cf208b2a0 purge: add --include and --exclude options
Emanuele Aina <em@nerd.ocracy.org>
parents: 4308
diff changeset
133 hg purge -p -X re:.*.svn