Mercurial > hg
annotate tests/test-purge @ 5278:70e9a527cc61
convert: avoid dirstate checks; add a test
During a conversion, the dirstate contents are not consistent - there
are files that may be missing from the dirstate and there may be files
that shouldn't be in the dirstate.
While this is not fixed, don't mark files as added - put them directly
in state 'n'ormal.
author | Alexis S. L. Carvalho <alexis@cecm.usp.br> |
---|---|
date | Sat, 01 Sep 2007 02:49:18 -0300 |
parents | ca4971347e0a |
children | 98d5f9b95699 |
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] |
4311
1043e4b27ab9
Move back the purge extension in hgext
Emanuele Aina <em@nerd.ocracy.org>
parents:
4310
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:
4463
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:
4463
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:
4463
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:
4463
diff
changeset
|
79 ls |
4310
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 |
4463
a73cf208b2a0
purge: add --include and --exclude options
Emanuele Aina <em@nerd.ocracy.org>
parents:
4311
diff
changeset
|
103 |
a73cf208b2a0
purge: add --include and --exclude options
Emanuele Aina <em@nerd.ocracy.org>
parents:
4311
diff
changeset
|
104 echo % skip excluded files |
a73cf208b2a0
purge: add --include and --exclude options
Emanuele Aina <em@nerd.ocracy.org>
parents:
4311
diff
changeset
|
105 touch excluded_file |
a73cf208b2a0
purge: add --include and --exclude options
Emanuele Aina <em@nerd.ocracy.org>
parents:
4311
diff
changeset
|
106 hg purge -p -X excluded_file |
a73cf208b2a0
purge: add --include and --exclude options
Emanuele Aina <em@nerd.ocracy.org>
parents:
4311
diff
changeset
|
107 hg purge -v -X excluded_file |
a73cf208b2a0
purge: add --include and --exclude options
Emanuele Aina <em@nerd.ocracy.org>
parents:
4311
diff
changeset
|
108 ls |
a73cf208b2a0
purge: add --include and --exclude options
Emanuele Aina <em@nerd.ocracy.org>
parents:
4311
diff
changeset
|
109 rm excluded_file |
a73cf208b2a0
purge: add --include and --exclude options
Emanuele Aina <em@nerd.ocracy.org>
parents:
4311
diff
changeset
|
110 |
a73cf208b2a0
purge: add --include and --exclude options
Emanuele Aina <em@nerd.ocracy.org>
parents:
4311
diff
changeset
|
111 echo % skip files in excluded dirs |
a73cf208b2a0
purge: add --include and --exclude options
Emanuele Aina <em@nerd.ocracy.org>
parents:
4311
diff
changeset
|
112 mkdir excluded_dir |
a73cf208b2a0
purge: add --include and --exclude options
Emanuele Aina <em@nerd.ocracy.org>
parents:
4311
diff
changeset
|
113 touch excluded_dir/file |
a73cf208b2a0
purge: add --include and --exclude options
Emanuele Aina <em@nerd.ocracy.org>
parents:
4311
diff
changeset
|
114 hg purge -p -X excluded_dir |
a73cf208b2a0
purge: add --include and --exclude options
Emanuele Aina <em@nerd.ocracy.org>
parents:
4311
diff
changeset
|
115 hg purge -v -X excluded_dir |
a73cf208b2a0
purge: add --include and --exclude options
Emanuele Aina <em@nerd.ocracy.org>
parents:
4311
diff
changeset
|
116 ls |
a73cf208b2a0
purge: add --include and --exclude options
Emanuele Aina <em@nerd.ocracy.org>
parents:
4311
diff
changeset
|
117 ls excluded_dir |
a73cf208b2a0
purge: add --include and --exclude options
Emanuele Aina <em@nerd.ocracy.org>
parents:
4311
diff
changeset
|
118 rm -R excluded_dir |
a73cf208b2a0
purge: add --include and --exclude options
Emanuele Aina <em@nerd.ocracy.org>
parents:
4311
diff
changeset
|
119 |
a73cf208b2a0
purge: add --include and --exclude options
Emanuele Aina <em@nerd.ocracy.org>
parents:
4311
diff
changeset
|
120 echo % skip excluded empty dirs |
a73cf208b2a0
purge: add --include and --exclude options
Emanuele Aina <em@nerd.ocracy.org>
parents:
4311
diff
changeset
|
121 mkdir excluded_dir |
a73cf208b2a0
purge: add --include and --exclude options
Emanuele Aina <em@nerd.ocracy.org>
parents:
4311
diff
changeset
|
122 hg purge -p -X excluded_dir |
a73cf208b2a0
purge: add --include and --exclude options
Emanuele Aina <em@nerd.ocracy.org>
parents:
4311
diff
changeset
|
123 hg purge -v -X excluded_dir |
a73cf208b2a0
purge: add --include and --exclude options
Emanuele Aina <em@nerd.ocracy.org>
parents:
4311
diff
changeset
|
124 ls |
a73cf208b2a0
purge: add --include and --exclude options
Emanuele Aina <em@nerd.ocracy.org>
parents:
4311
diff
changeset
|
125 rmdir excluded_dir |
a73cf208b2a0
purge: add --include and --exclude options
Emanuele Aina <em@nerd.ocracy.org>
parents:
4311
diff
changeset
|
126 |
a73cf208b2a0
purge: add --include and --exclude options
Emanuele Aina <em@nerd.ocracy.org>
parents:
4311
diff
changeset
|
127 echo % skip patterns |
a73cf208b2a0
purge: add --include and --exclude options
Emanuele Aina <em@nerd.ocracy.org>
parents:
4311
diff
changeset
|
128 mkdir .svn |
a73cf208b2a0
purge: add --include and --exclude options
Emanuele Aina <em@nerd.ocracy.org>
parents:
4311
diff
changeset
|
129 touch .svn/foo |
a73cf208b2a0
purge: add --include and --exclude options
Emanuele Aina <em@nerd.ocracy.org>
parents:
4311
diff
changeset
|
130 mkdir directory/.svn |
a73cf208b2a0
purge: add --include and --exclude options
Emanuele Aina <em@nerd.ocracy.org>
parents:
4311
diff
changeset
|
131 touch directory/.svn/foo |
a73cf208b2a0
purge: add --include and --exclude options
Emanuele Aina <em@nerd.ocracy.org>
parents:
4311
diff
changeset
|
132 hg purge -p -X .svn -X '*/.svn' |
a73cf208b2a0
purge: add --include and --exclude options
Emanuele Aina <em@nerd.ocracy.org>
parents:
4311
diff
changeset
|
133 hg purge -p -X re:.*.svn |