1 #!/bin/sh |
|
2 |
|
3 cat <<EOF >> $HGRCPATH |
|
4 [extensions] |
|
5 purge = |
|
6 EOF |
|
7 |
|
8 echo % init |
|
9 hg init t |
|
10 cd t |
|
11 |
|
12 echo % setup |
|
13 echo r1 > r1 |
|
14 hg ci -qAmr1 -d'0 0' |
|
15 mkdir directory |
|
16 echo r2 > directory/r2 |
|
17 hg ci -qAmr2 -d'1 0' |
|
18 echo 'ignored' > .hgignore |
|
19 hg ci -qAmr3 -d'2 0' |
|
20 |
|
21 echo % delete an empty directory |
|
22 mkdir empty_dir |
|
23 hg purge -p |
|
24 hg purge -v |
|
25 ls |
|
26 |
|
27 echo % delete an untracked directory |
|
28 mkdir untracked_dir |
|
29 touch untracked_dir/untracked_file1 |
|
30 touch untracked_dir/untracked_file2 |
|
31 hg purge -p |
|
32 hg purge -v |
|
33 ls |
|
34 |
|
35 echo % delete an untracked file |
|
36 touch untracked_file |
|
37 touch untracked_file_readonly |
|
38 python <<EOF |
|
39 import os, stat |
|
40 f= 'untracked_file_readonly' |
|
41 os.chmod(f, stat.S_IMODE(os.stat(f).st_mode) & ~stat.S_IWRITE) |
|
42 EOF |
|
43 hg purge -p |
|
44 hg purge -v |
|
45 ls |
|
46 |
|
47 echo % delete an untracked file in a tracked directory |
|
48 touch directory/untracked_file |
|
49 hg purge -p |
|
50 hg purge -v |
|
51 ls |
|
52 |
|
53 echo % delete nested directories |
|
54 mkdir -p untracked_directory/nested_directory |
|
55 hg purge -p |
|
56 hg purge -v |
|
57 ls |
|
58 |
|
59 echo % delete nested directories from a subdir |
|
60 mkdir -p untracked_directory/nested_directory |
|
61 cd directory |
|
62 hg purge -p |
|
63 hg purge -v |
|
64 cd .. |
|
65 ls |
|
66 |
|
67 echo % delete only part of the tree |
|
68 mkdir -p untracked_directory/nested_directory |
|
69 touch directory/untracked_file |
|
70 cd directory |
|
71 hg purge -p ../untracked_directory |
|
72 hg purge -v ../untracked_directory |
|
73 cd .. |
|
74 ls |
|
75 ls directory/untracked_file |
|
76 rm directory/untracked_file |
|
77 |
|
78 echo % skip ignored files if --all not specified |
|
79 touch ignored |
|
80 hg purge -p |
|
81 hg purge -v |
|
82 ls |
|
83 hg purge -p --all |
|
84 hg purge -v --all |
|
85 ls |
|
86 |
|
87 echo % abort with missing files until we support name mangling filesystems |
|
88 touch untracked_file |
|
89 rm r1 |
|
90 # hide error messages to avoid changing the output when the text changes |
|
91 hg purge -p 2> /dev/null |
|
92 hg st |
|
93 |
|
94 hg purge -p |
|
95 hg purge -v 2> /dev/null |
|
96 hg st |
|
97 |
|
98 hg purge -v |
|
99 hg revert --all --quiet |
|
100 hg st -a |
|
101 |
|
102 echo '% tracked file in ignored directory (issue621)' |
|
103 echo directory >> .hgignore |
|
104 hg ci -m 'ignore directory' |
|
105 touch untracked_file |
|
106 hg purge -p |
|
107 hg purge -v |
|
108 |
|
109 echo % skip excluded files |
|
110 touch excluded_file |
|
111 hg purge -p -X excluded_file |
|
112 hg purge -v -X excluded_file |
|
113 ls |
|
114 rm excluded_file |
|
115 |
|
116 echo % skip files in excluded dirs |
|
117 mkdir excluded_dir |
|
118 touch excluded_dir/file |
|
119 hg purge -p -X excluded_dir |
|
120 hg purge -v -X excluded_dir |
|
121 ls |
|
122 ls excluded_dir |
|
123 rm -R excluded_dir |
|
124 |
|
125 echo % skip excluded empty dirs |
|
126 mkdir excluded_dir |
|
127 hg purge -p -X excluded_dir |
|
128 hg purge -v -X excluded_dir |
|
129 ls |
|
130 rmdir excluded_dir |
|
131 |
|
132 echo % skip patterns |
|
133 mkdir .svn |
|
134 touch .svn/foo |
|
135 mkdir directory/.svn |
|
136 touch directory/.svn/foo |
|
137 hg purge -p -X .svn -X '*/.svn' |
|
138 hg purge -p -X re:.*.svn |
|