annotate mercurial/help.py @ 4307:c8919eb0f315

purge: abort with missing files avoiding problems with name-mangling fs In a name mangling filesystem (e.g. a case insensitive one) dirstate.walk() can yield filenames different from the ones stored in the dirstate. This already confuses the status and add commands, but with purge this may cause data loss. To prevent this purge refuses to work if there are missing files and has a 'force' option if the user knows it is safe. Even with the force option purge checks if any of the missing files is still available in the working dir: if so there may be some problem with the underlying filesystem, so it unconditionally aborts.
author Emanuele Aina <em@nerd.ocracy.org>
date Wed, 28 Mar 2007 21:34:12 +0200
parents dbd828167384
children 849f011dbf79
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
rev   line source
3798
17a11f4ff260 Add basic support for help topics and a dates topic
Matt Mackall <mpm@selenic.com>
parents:
diff changeset
1 # help.py - help data for mercurial
17a11f4ff260 Add basic support for help topics and a dates topic
Matt Mackall <mpm@selenic.com>
parents:
diff changeset
2 #
17a11f4ff260 Add basic support for help topics and a dates topic
Matt Mackall <mpm@selenic.com>
parents:
diff changeset
3 # Copyright 2006 Matt Mackall <mpm@selenic.com>
17a11f4ff260 Add basic support for help topics and a dates topic
Matt Mackall <mpm@selenic.com>
parents:
diff changeset
4 #
17a11f4ff260 Add basic support for help topics and a dates topic
Matt Mackall <mpm@selenic.com>
parents:
diff changeset
5 # This software may be used and distributed according to the terms
17a11f4ff260 Add basic support for help topics and a dates topic
Matt Mackall <mpm@selenic.com>
parents:
diff changeset
6 # of the GNU General Public License, incorporated herein by reference.
17a11f4ff260 Add basic support for help topics and a dates topic
Matt Mackall <mpm@selenic.com>
parents:
diff changeset
7
17a11f4ff260 Add basic support for help topics and a dates topic
Matt Mackall <mpm@selenic.com>
parents:
diff changeset
8 helptable = {
17a11f4ff260 Add basic support for help topics and a dates topic
Matt Mackall <mpm@selenic.com>
parents:
diff changeset
9 "dates|Date Formats":
17a11f4ff260 Add basic support for help topics and a dates topic
Matt Mackall <mpm@selenic.com>
parents:
diff changeset
10 r'''
17a11f4ff260 Add basic support for help topics and a dates topic
Matt Mackall <mpm@selenic.com>
parents:
diff changeset
11 Some commands (backout, commit, tag) allow the user to specify a date.
3813
6fa11a9d7cac Update dates help topic
Matt Mackall <mpm@selenic.com>
parents: 3802
diff changeset
12 Many date formats are acceptible. Here are some examples:
3798
17a11f4ff260 Add basic support for help topics and a dates topic
Matt Mackall <mpm@selenic.com>
parents:
diff changeset
13
3813
6fa11a9d7cac Update dates help topic
Matt Mackall <mpm@selenic.com>
parents: 3802
diff changeset
14 "Wed Dec 6 13:18:29 2006" (local timezone assumed)
6fa11a9d7cac Update dates help topic
Matt Mackall <mpm@selenic.com>
parents: 3802
diff changeset
15 "Dec 6 13:18 -0600" (year assumed, time offset provided)
6fa11a9d7cac Update dates help topic
Matt Mackall <mpm@selenic.com>
parents: 3802
diff changeset
16 "Dec 6 13:18 UTC" (UTC and GMT are aliases for +0000)
6fa11a9d7cac Update dates help topic
Matt Mackall <mpm@selenic.com>
parents: 3802
diff changeset
17 "Dec 6" (midnight)
6fa11a9d7cac Update dates help topic
Matt Mackall <mpm@selenic.com>
parents: 3802
diff changeset
18 "13:18" (today assumed)
6fa11a9d7cac Update dates help topic
Matt Mackall <mpm@selenic.com>
parents: 3802
diff changeset
19 "3:39" (3:39AM assumed)
6fa11a9d7cac Update dates help topic
Matt Mackall <mpm@selenic.com>
parents: 3802
diff changeset
20 "3:39pm" (15:39)
6fa11a9d7cac Update dates help topic
Matt Mackall <mpm@selenic.com>
parents: 3802
diff changeset
21 "2006-12-6 13:18:29" (ISO 8601 format)
6fa11a9d7cac Update dates help topic
Matt Mackall <mpm@selenic.com>
parents: 3802
diff changeset
22 "2006-12-6 13:18"
6fa11a9d7cac Update dates help topic
Matt Mackall <mpm@selenic.com>
parents: 3802
diff changeset
23 "2006-12-6"
6fa11a9d7cac Update dates help topic
Matt Mackall <mpm@selenic.com>
parents: 3802
diff changeset
24 "12-6"
6fa11a9d7cac Update dates help topic
Matt Mackall <mpm@selenic.com>
parents: 3802
diff changeset
25 "12/6"
6fa11a9d7cac Update dates help topic
Matt Mackall <mpm@selenic.com>
parents: 3802
diff changeset
26 "12/6/6" (Dec 6 2006)
3798
17a11f4ff260 Add basic support for help topics and a dates topic
Matt Mackall <mpm@selenic.com>
parents:
diff changeset
27
3813
6fa11a9d7cac Update dates help topic
Matt Mackall <mpm@selenic.com>
parents: 3802
diff changeset
28 Lastly, there is Mercurial's internal format:
3798
17a11f4ff260 Add basic support for help topics and a dates topic
Matt Mackall <mpm@selenic.com>
parents:
diff changeset
29
3813
6fa11a9d7cac Update dates help topic
Matt Mackall <mpm@selenic.com>
parents: 3802
diff changeset
30 "1165432709 0" (Wed Dec 6 13:18:29 2006 UTC)
3798
17a11f4ff260 Add basic support for help topics and a dates topic
Matt Mackall <mpm@selenic.com>
parents:
diff changeset
31
17a11f4ff260 Add basic support for help topics and a dates topic
Matt Mackall <mpm@selenic.com>
parents:
diff changeset
32 This is the internal representation format for dates. unixtime is
17a11f4ff260 Add basic support for help topics and a dates topic
Matt Mackall <mpm@selenic.com>
parents:
diff changeset
33 the number of seconds since the epoch (1970-01-01 00:00 UTC). offset
17a11f4ff260 Add basic support for help topics and a dates topic
Matt Mackall <mpm@selenic.com>
parents:
diff changeset
34 is the offset of the local timezone, in seconds west of UTC (negative
17a11f4ff260 Add basic support for help topics and a dates topic
Matt Mackall <mpm@selenic.com>
parents:
diff changeset
35 if the timezone is east of UTC).
17a11f4ff260 Add basic support for help topics and a dates topic
Matt Mackall <mpm@selenic.com>
parents:
diff changeset
36 ''',
3802
eb66d76c7746 move patterns topics
Matt Mackall <mpm@selenic.com>
parents: 3801
diff changeset
37
3801
6f0c42d50394 move environment topic
Matt Mackall <mpm@selenic.com>
parents: 3798
diff changeset
38 'environment|env|Environment Variables':
6f0c42d50394 move environment topic
Matt Mackall <mpm@selenic.com>
parents: 3798
diff changeset
39 r'''
6f0c42d50394 move environment topic
Matt Mackall <mpm@selenic.com>
parents: 3798
diff changeset
40 HGEDITOR::
6f0c42d50394 move environment topic
Matt Mackall <mpm@selenic.com>
parents: 3798
diff changeset
41 This is the name of the editor to use when committing. Defaults to the
6f0c42d50394 move environment topic
Matt Mackall <mpm@selenic.com>
parents: 3798
diff changeset
42 value of EDITOR.
6f0c42d50394 move environment topic
Matt Mackall <mpm@selenic.com>
parents: 3798
diff changeset
43
6f0c42d50394 move environment topic
Matt Mackall <mpm@selenic.com>
parents: 3798
diff changeset
44 (deprecated, use .hgrc)
6f0c42d50394 move environment topic
Matt Mackall <mpm@selenic.com>
parents: 3798
diff changeset
45
6f0c42d50394 move environment topic
Matt Mackall <mpm@selenic.com>
parents: 3798
diff changeset
46 HGENCODING::
6f0c42d50394 move environment topic
Matt Mackall <mpm@selenic.com>
parents: 3798
diff changeset
47 This overrides the default locale setting detected by Mercurial.
6f0c42d50394 move environment topic
Matt Mackall <mpm@selenic.com>
parents: 3798
diff changeset
48 This setting is used to convert data including usernames,
6f0c42d50394 move environment topic
Matt Mackall <mpm@selenic.com>
parents: 3798
diff changeset
49 changeset descriptions, tag names, and branches. This setting can
6f0c42d50394 move environment topic
Matt Mackall <mpm@selenic.com>
parents: 3798
diff changeset
50 be overridden with the --encoding command-line option.
6f0c42d50394 move environment topic
Matt Mackall <mpm@selenic.com>
parents: 3798
diff changeset
51
6f0c42d50394 move environment topic
Matt Mackall <mpm@selenic.com>
parents: 3798
diff changeset
52 HGENCODINGMODE::
6f0c42d50394 move environment topic
Matt Mackall <mpm@selenic.com>
parents: 3798
diff changeset
53 This sets Mercurial's behavior for handling unknown characters
6f0c42d50394 move environment topic
Matt Mackall <mpm@selenic.com>
parents: 3798
diff changeset
54 while transcoding user inputs. The default is "strict", which
6f0c42d50394 move environment topic
Matt Mackall <mpm@selenic.com>
parents: 3798
diff changeset
55 causes Mercurial to abort if it can't translate a character. Other
6f0c42d50394 move environment topic
Matt Mackall <mpm@selenic.com>
parents: 3798
diff changeset
56 settings include "replace", which replaces unknown characters, and
6f0c42d50394 move environment topic
Matt Mackall <mpm@selenic.com>
parents: 3798
diff changeset
57 "ignore", which drops them. This setting can be overridden with
6f0c42d50394 move environment topic
Matt Mackall <mpm@selenic.com>
parents: 3798
diff changeset
58 the --encodingmode command-line option.
6f0c42d50394 move environment topic
Matt Mackall <mpm@selenic.com>
parents: 3798
diff changeset
59
6f0c42d50394 move environment topic
Matt Mackall <mpm@selenic.com>
parents: 3798
diff changeset
60 HGMERGE::
6f0c42d50394 move environment topic
Matt Mackall <mpm@selenic.com>
parents: 3798
diff changeset
61 An executable to use for resolving merge conflicts. The program
6f0c42d50394 move environment topic
Matt Mackall <mpm@selenic.com>
parents: 3798
diff changeset
62 will be executed with three arguments: local file, remote file,
6f0c42d50394 move environment topic
Matt Mackall <mpm@selenic.com>
parents: 3798
diff changeset
63 ancestor file.
6f0c42d50394 move environment topic
Matt Mackall <mpm@selenic.com>
parents: 3798
diff changeset
64
6f0c42d50394 move environment topic
Matt Mackall <mpm@selenic.com>
parents: 3798
diff changeset
65 The default program is "hgmerge", which is a shell script provided
6f0c42d50394 move environment topic
Matt Mackall <mpm@selenic.com>
parents: 3798
diff changeset
66 by Mercurial with some sensible defaults.
6f0c42d50394 move environment topic
Matt Mackall <mpm@selenic.com>
parents: 3798
diff changeset
67
6f0c42d50394 move environment topic
Matt Mackall <mpm@selenic.com>
parents: 3798
diff changeset
68 (deprecated, use .hgrc)
6f0c42d50394 move environment topic
Matt Mackall <mpm@selenic.com>
parents: 3798
diff changeset
69
6f0c42d50394 move environment topic
Matt Mackall <mpm@selenic.com>
parents: 3798
diff changeset
70 HGRCPATH::
6f0c42d50394 move environment topic
Matt Mackall <mpm@selenic.com>
parents: 3798
diff changeset
71 A list of files or directories to search for hgrc files. Item
6f0c42d50394 move environment topic
Matt Mackall <mpm@selenic.com>
parents: 3798
diff changeset
72 separator is ":" on Unix, ";" on Windows. If HGRCPATH is not set,
6f0c42d50394 move environment topic
Matt Mackall <mpm@selenic.com>
parents: 3798
diff changeset
73 platform default search path is used. If empty, only .hg/hgrc of
6f0c42d50394 move environment topic
Matt Mackall <mpm@selenic.com>
parents: 3798
diff changeset
74 current repository is read.
6f0c42d50394 move environment topic
Matt Mackall <mpm@selenic.com>
parents: 3798
diff changeset
75
6f0c42d50394 move environment topic
Matt Mackall <mpm@selenic.com>
parents: 3798
diff changeset
76 For each element in path, if a directory, all entries in directory
6f0c42d50394 move environment topic
Matt Mackall <mpm@selenic.com>
parents: 3798
diff changeset
77 ending with ".rc" are added to path. Else, element itself is
6f0c42d50394 move environment topic
Matt Mackall <mpm@selenic.com>
parents: 3798
diff changeset
78 added to path.
6f0c42d50394 move environment topic
Matt Mackall <mpm@selenic.com>
parents: 3798
diff changeset
79
6f0c42d50394 move environment topic
Matt Mackall <mpm@selenic.com>
parents: 3798
diff changeset
80 HGUSER::
6f0c42d50394 move environment topic
Matt Mackall <mpm@selenic.com>
parents: 3798
diff changeset
81 This is the string used for the author of a commit.
6f0c42d50394 move environment topic
Matt Mackall <mpm@selenic.com>
parents: 3798
diff changeset
82
6f0c42d50394 move environment topic
Matt Mackall <mpm@selenic.com>
parents: 3798
diff changeset
83 (deprecated, use .hgrc)
6f0c42d50394 move environment topic
Matt Mackall <mpm@selenic.com>
parents: 3798
diff changeset
84
6f0c42d50394 move environment topic
Matt Mackall <mpm@selenic.com>
parents: 3798
diff changeset
85 EMAIL::
6f0c42d50394 move environment topic
Matt Mackall <mpm@selenic.com>
parents: 3798
diff changeset
86 If HGUSER is not set, this will be used as the author for a commit.
6f0c42d50394 move environment topic
Matt Mackall <mpm@selenic.com>
parents: 3798
diff changeset
87
6f0c42d50394 move environment topic
Matt Mackall <mpm@selenic.com>
parents: 3798
diff changeset
88 LOGNAME::
6f0c42d50394 move environment topic
Matt Mackall <mpm@selenic.com>
parents: 3798
diff changeset
89 If neither HGUSER nor EMAIL is set, LOGNAME will be used (with
6f0c42d50394 move environment topic
Matt Mackall <mpm@selenic.com>
parents: 3798
diff changeset
90 '@hostname' appended) as the author value for a commit.
6f0c42d50394 move environment topic
Matt Mackall <mpm@selenic.com>
parents: 3798
diff changeset
91
6f0c42d50394 move environment topic
Matt Mackall <mpm@selenic.com>
parents: 3798
diff changeset
92 EDITOR::
6f0c42d50394 move environment topic
Matt Mackall <mpm@selenic.com>
parents: 3798
diff changeset
93 This is the name of the editor used in the hgmerge script. It will be
6f0c42d50394 move environment topic
Matt Mackall <mpm@selenic.com>
parents: 3798
diff changeset
94 used for commit messages if HGEDITOR isn't set. Defaults to 'vi'.
6f0c42d50394 move environment topic
Matt Mackall <mpm@selenic.com>
parents: 3798
diff changeset
95
6f0c42d50394 move environment topic
Matt Mackall <mpm@selenic.com>
parents: 3798
diff changeset
96 PYTHONPATH::
6f0c42d50394 move environment topic
Matt Mackall <mpm@selenic.com>
parents: 3798
diff changeset
97 This is used by Python to find imported modules and may need to be set
6f0c42d50394 move environment topic
Matt Mackall <mpm@selenic.com>
parents: 3798
diff changeset
98 appropriately if Mercurial is not installed system-wide.
3802
eb66d76c7746 move patterns topics
Matt Mackall <mpm@selenic.com>
parents: 3801
diff changeset
99 ''',
eb66d76c7746 move patterns topics
Matt Mackall <mpm@selenic.com>
parents: 3801
diff changeset
100
eb66d76c7746 move patterns topics
Matt Mackall <mpm@selenic.com>
parents: 3801
diff changeset
101 "patterns|File Name Patterns": r'''
eb66d76c7746 move patterns topics
Matt Mackall <mpm@selenic.com>
parents: 3801
diff changeset
102 Mercurial accepts several notations for identifying one or more
eb66d76c7746 move patterns topics
Matt Mackall <mpm@selenic.com>
parents: 3801
diff changeset
103 files at a time.
eb66d76c7746 move patterns topics
Matt Mackall <mpm@selenic.com>
parents: 3801
diff changeset
104
eb66d76c7746 move patterns topics
Matt Mackall <mpm@selenic.com>
parents: 3801
diff changeset
105 By default, Mercurial treats filenames as shell-style extended
eb66d76c7746 move patterns topics
Matt Mackall <mpm@selenic.com>
parents: 3801
diff changeset
106 glob patterns.
eb66d76c7746 move patterns topics
Matt Mackall <mpm@selenic.com>
parents: 3801
diff changeset
107
eb66d76c7746 move patterns topics
Matt Mackall <mpm@selenic.com>
parents: 3801
diff changeset
108 Alternate pattern notations must be specified explicitly.
eb66d76c7746 move patterns topics
Matt Mackall <mpm@selenic.com>
parents: 3801
diff changeset
109
eb66d76c7746 move patterns topics
Matt Mackall <mpm@selenic.com>
parents: 3801
diff changeset
110 To use a plain path name without any pattern matching, start a
eb66d76c7746 move patterns topics
Matt Mackall <mpm@selenic.com>
parents: 3801
diff changeset
111 name with "path:". These path names must match completely, from
eb66d76c7746 move patterns topics
Matt Mackall <mpm@selenic.com>
parents: 3801
diff changeset
112 the root of the current repository.
eb66d76c7746 move patterns topics
Matt Mackall <mpm@selenic.com>
parents: 3801
diff changeset
113
eb66d76c7746 move patterns topics
Matt Mackall <mpm@selenic.com>
parents: 3801
diff changeset
114 To use an extended glob, start a name with "glob:". Globs are
eb66d76c7746 move patterns topics
Matt Mackall <mpm@selenic.com>
parents: 3801
diff changeset
115 rooted at the current directory; a glob such as "*.c" will match
eb66d76c7746 move patterns topics
Matt Mackall <mpm@selenic.com>
parents: 3801
diff changeset
116 files ending in ".c" in the current directory only.
eb66d76c7746 move patterns topics
Matt Mackall <mpm@selenic.com>
parents: 3801
diff changeset
117
eb66d76c7746 move patterns topics
Matt Mackall <mpm@selenic.com>
parents: 3801
diff changeset
118 The supported glob syntax extensions are "**" to match any string
eb66d76c7746 move patterns topics
Matt Mackall <mpm@selenic.com>
parents: 3801
diff changeset
119 across path separators, and "{a,b}" to mean "a or b".
eb66d76c7746 move patterns topics
Matt Mackall <mpm@selenic.com>
parents: 3801
diff changeset
120
eb66d76c7746 move patterns topics
Matt Mackall <mpm@selenic.com>
parents: 3801
diff changeset
121 To use a Perl/Python regular expression, start a name with "re:".
eb66d76c7746 move patterns topics
Matt Mackall <mpm@selenic.com>
parents: 3801
diff changeset
122 Regexp pattern matching is anchored at the root of the repository.
eb66d76c7746 move patterns topics
Matt Mackall <mpm@selenic.com>
parents: 3801
diff changeset
123
eb66d76c7746 move patterns topics
Matt Mackall <mpm@selenic.com>
parents: 3801
diff changeset
124 Plain examples:
eb66d76c7746 move patterns topics
Matt Mackall <mpm@selenic.com>
parents: 3801
diff changeset
125
eb66d76c7746 move patterns topics
Matt Mackall <mpm@selenic.com>
parents: 3801
diff changeset
126 path:foo/bar a name bar in a directory named foo in the root of
eb66d76c7746 move patterns topics
Matt Mackall <mpm@selenic.com>
parents: 3801
diff changeset
127 the repository
eb66d76c7746 move patterns topics
Matt Mackall <mpm@selenic.com>
parents: 3801
diff changeset
128 path:path:name a file or directory named "path:name"
eb66d76c7746 move patterns topics
Matt Mackall <mpm@selenic.com>
parents: 3801
diff changeset
129
eb66d76c7746 move patterns topics
Matt Mackall <mpm@selenic.com>
parents: 3801
diff changeset
130 Glob examples:
eb66d76c7746 move patterns topics
Matt Mackall <mpm@selenic.com>
parents: 3801
diff changeset
131
eb66d76c7746 move patterns topics
Matt Mackall <mpm@selenic.com>
parents: 3801
diff changeset
132 glob:*.c any name ending in ".c" in the current directory
eb66d76c7746 move patterns topics
Matt Mackall <mpm@selenic.com>
parents: 3801
diff changeset
133 *.c any name ending in ".c" in the current directory
eb66d76c7746 move patterns topics
Matt Mackall <mpm@selenic.com>
parents: 3801
diff changeset
134 **.c any name ending in ".c" in the current directory, or
eb66d76c7746 move patterns topics
Matt Mackall <mpm@selenic.com>
parents: 3801
diff changeset
135 any subdirectory
eb66d76c7746 move patterns topics
Matt Mackall <mpm@selenic.com>
parents: 3801
diff changeset
136 foo/*.c any name ending in ".c" in the directory foo
eb66d76c7746 move patterns topics
Matt Mackall <mpm@selenic.com>
parents: 3801
diff changeset
137 foo/**.c any name ending in ".c" in the directory foo, or any
eb66d76c7746 move patterns topics
Matt Mackall <mpm@selenic.com>
parents: 3801
diff changeset
138 subdirectory
eb66d76c7746 move patterns topics
Matt Mackall <mpm@selenic.com>
parents: 3801
diff changeset
139
eb66d76c7746 move patterns topics
Matt Mackall <mpm@selenic.com>
parents: 3801
diff changeset
140 Regexp examples:
eb66d76c7746 move patterns topics
Matt Mackall <mpm@selenic.com>
parents: 3801
diff changeset
141
eb66d76c7746 move patterns topics
Matt Mackall <mpm@selenic.com>
parents: 3801
diff changeset
142 re:.*\.c$ any name ending in ".c", anywhere in the repository
eb66d76c7746 move patterns topics
Matt Mackall <mpm@selenic.com>
parents: 3801
diff changeset
143
eb66d76c7746 move patterns topics
Matt Mackall <mpm@selenic.com>
parents: 3801
diff changeset
144 ''',
3798
17a11f4ff260 Add basic support for help topics and a dates topic
Matt Mackall <mpm@selenic.com>
parents:
diff changeset
145 }
17a11f4ff260 Add basic support for help topics and a dates topic
Matt Mackall <mpm@selenic.com>
parents:
diff changeset
146