annotate mercurial/help.py @ 5062:3d35c8cb5eb4

Simplify/correct finding the hg executable (fixes issue644) Simply use find_exe('hg') as the default value for $HG and require to manually set it if you have special requirements. While the default will not always be 100% correct (i.e. the identical hg version) for many users it is and for the others the hg executable found in the PATH should do most things correctly. Developers or other users with multiple installs can set $HG or run something like util.set_hgexecutable in their shell or python scripts. Additionally util.hgexecutable() is now available so extensions can access the value with a public interface, too.
author Thomas Arendsen Hein <thomas@intevation.de>
date Sat, 04 Aug 2007 22:25:12 +0200
parents 849f011dbf79
children 3c80ecdc1bcd
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
rev   line source
3795
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.
3811
6fa11a9d7cac Update dates help topic
Matt Mackall <mpm@selenic.com>
parents: 3799
diff changeset
12 Many date formats are acceptible. Here are some examples:
3795
17a11f4ff260 Add basic support for help topics and a dates topic
Matt Mackall <mpm@selenic.com>
parents:
diff changeset
13
3811
6fa11a9d7cac Update dates help topic
Matt Mackall <mpm@selenic.com>
parents: 3799
diff changeset
14 "Wed Dec 6 13:18:29 2006" (local timezone assumed)
6fa11a9d7cac Update dates help topic
Matt Mackall <mpm@selenic.com>
parents: 3799
diff changeset
15 "Dec 6 13:18 -0600" (year assumed, time offset provided)
6fa11a9d7cac Update dates help topic
Matt Mackall <mpm@selenic.com>
parents: 3799
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: 3799
diff changeset
17 "Dec 6" (midnight)
6fa11a9d7cac Update dates help topic
Matt Mackall <mpm@selenic.com>
parents: 3799
diff changeset
18 "13:18" (today assumed)
6fa11a9d7cac Update dates help topic
Matt Mackall <mpm@selenic.com>
parents: 3799
diff changeset
19 "3:39" (3:39AM assumed)
6fa11a9d7cac Update dates help topic
Matt Mackall <mpm@selenic.com>
parents: 3799
diff changeset
20 "3:39pm" (15:39)
6fa11a9d7cac Update dates help topic
Matt Mackall <mpm@selenic.com>
parents: 3799
diff changeset
21 "2006-12-6 13:18:29" (ISO 8601 format)
6fa11a9d7cac Update dates help topic
Matt Mackall <mpm@selenic.com>
parents: 3799
diff changeset
22 "2006-12-6 13:18"
6fa11a9d7cac Update dates help topic
Matt Mackall <mpm@selenic.com>
parents: 3799
diff changeset
23 "2006-12-6"
6fa11a9d7cac Update dates help topic
Matt Mackall <mpm@selenic.com>
parents: 3799
diff changeset
24 "12-6"
6fa11a9d7cac Update dates help topic
Matt Mackall <mpm@selenic.com>
parents: 3799
diff changeset
25 "12/6"
6fa11a9d7cac Update dates help topic
Matt Mackall <mpm@selenic.com>
parents: 3799
diff changeset
26 "12/6/6" (Dec 6 2006)
3795
17a11f4ff260 Add basic support for help topics and a dates topic
Matt Mackall <mpm@selenic.com>
parents:
diff changeset
27
3811
6fa11a9d7cac Update dates help topic
Matt Mackall <mpm@selenic.com>
parents: 3799
diff changeset
28 Lastly, there is Mercurial's internal format:
3795
17a11f4ff260 Add basic support for help topics and a dates topic
Matt Mackall <mpm@selenic.com>
parents:
diff changeset
29
3811
6fa11a9d7cac Update dates help topic
Matt Mackall <mpm@selenic.com>
parents: 3799
diff changeset
30 "1165432709 0" (Wed Dec 6 13:18:29 2006 UTC)
3795
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 ''',
3799
eb66d76c7746 move patterns topics
Matt Mackall <mpm@selenic.com>
parents: 3798
diff changeset
37
3798
6f0c42d50394 move environment topic
Matt Mackall <mpm@selenic.com>
parents: 3795
diff changeset
38 'environment|env|Environment Variables':
6f0c42d50394 move environment topic
Matt Mackall <mpm@selenic.com>
parents: 3795
diff changeset
39 r'''
4686
849f011dbf79 Remember path to 'hg' executable and pass to external tools and hooks as $HG.
Thomas Arendsen Hein <thomas@intevation.de>
parents: 3913
diff changeset
40 HG::
5062
3d35c8cb5eb4 Simplify/correct finding the hg executable (fixes issue644)
Thomas Arendsen Hein <thomas@intevation.de>
parents: 4686
diff changeset
41 Path to the 'hg' executable, automatically passed when running hooks,
3d35c8cb5eb4 Simplify/correct finding the hg executable (fixes issue644)
Thomas Arendsen Hein <thomas@intevation.de>
parents: 4686
diff changeset
42 extensions or external tools. If unset or empty, an executable named
3d35c8cb5eb4 Simplify/correct finding the hg executable (fixes issue644)
Thomas Arendsen Hein <thomas@intevation.de>
parents: 4686
diff changeset
43 'hg' (with com/exe/bat/cmd extension on Windows) is searched.
4686
849f011dbf79 Remember path to 'hg' executable and pass to external tools and hooks as $HG.
Thomas Arendsen Hein <thomas@intevation.de>
parents: 3913
diff changeset
44
3798
6f0c42d50394 move environment topic
Matt Mackall <mpm@selenic.com>
parents: 3795
diff changeset
45 HGEDITOR::
6f0c42d50394 move environment topic
Matt Mackall <mpm@selenic.com>
parents: 3795
diff changeset
46 This is the name of the editor to use when committing. Defaults to the
6f0c42d50394 move environment topic
Matt Mackall <mpm@selenic.com>
parents: 3795
diff changeset
47 value of EDITOR.
6f0c42d50394 move environment topic
Matt Mackall <mpm@selenic.com>
parents: 3795
diff changeset
48
6f0c42d50394 move environment topic
Matt Mackall <mpm@selenic.com>
parents: 3795
diff changeset
49 (deprecated, use .hgrc)
6f0c42d50394 move environment topic
Matt Mackall <mpm@selenic.com>
parents: 3795
diff changeset
50
6f0c42d50394 move environment topic
Matt Mackall <mpm@selenic.com>
parents: 3795
diff changeset
51 HGENCODING::
6f0c42d50394 move environment topic
Matt Mackall <mpm@selenic.com>
parents: 3795
diff changeset
52 This overrides the default locale setting detected by Mercurial.
6f0c42d50394 move environment topic
Matt Mackall <mpm@selenic.com>
parents: 3795
diff changeset
53 This setting is used to convert data including usernames,
6f0c42d50394 move environment topic
Matt Mackall <mpm@selenic.com>
parents: 3795
diff changeset
54 changeset descriptions, tag names, and branches. This setting can
6f0c42d50394 move environment topic
Matt Mackall <mpm@selenic.com>
parents: 3795
diff changeset
55 be overridden with the --encoding command-line option.
6f0c42d50394 move environment topic
Matt Mackall <mpm@selenic.com>
parents: 3795
diff changeset
56
6f0c42d50394 move environment topic
Matt Mackall <mpm@selenic.com>
parents: 3795
diff changeset
57 HGENCODINGMODE::
6f0c42d50394 move environment topic
Matt Mackall <mpm@selenic.com>
parents: 3795
diff changeset
58 This sets Mercurial's behavior for handling unknown characters
6f0c42d50394 move environment topic
Matt Mackall <mpm@selenic.com>
parents: 3795
diff changeset
59 while transcoding user inputs. The default is "strict", which
6f0c42d50394 move environment topic
Matt Mackall <mpm@selenic.com>
parents: 3795
diff changeset
60 causes Mercurial to abort if it can't translate a character. Other
6f0c42d50394 move environment topic
Matt Mackall <mpm@selenic.com>
parents: 3795
diff changeset
61 settings include "replace", which replaces unknown characters, and
6f0c42d50394 move environment topic
Matt Mackall <mpm@selenic.com>
parents: 3795
diff changeset
62 "ignore", which drops them. This setting can be overridden with
6f0c42d50394 move environment topic
Matt Mackall <mpm@selenic.com>
parents: 3795
diff changeset
63 the --encodingmode command-line option.
6f0c42d50394 move environment topic
Matt Mackall <mpm@selenic.com>
parents: 3795
diff changeset
64
6f0c42d50394 move environment topic
Matt Mackall <mpm@selenic.com>
parents: 3795
diff changeset
65 HGMERGE::
6f0c42d50394 move environment topic
Matt Mackall <mpm@selenic.com>
parents: 3795
diff changeset
66 An executable to use for resolving merge conflicts. The program
6f0c42d50394 move environment topic
Matt Mackall <mpm@selenic.com>
parents: 3795
diff changeset
67 will be executed with three arguments: local file, remote file,
6f0c42d50394 move environment topic
Matt Mackall <mpm@selenic.com>
parents: 3795
diff changeset
68 ancestor file.
6f0c42d50394 move environment topic
Matt Mackall <mpm@selenic.com>
parents: 3795
diff changeset
69
6f0c42d50394 move environment topic
Matt Mackall <mpm@selenic.com>
parents: 3795
diff changeset
70 The default program is "hgmerge", which is a shell script provided
6f0c42d50394 move environment topic
Matt Mackall <mpm@selenic.com>
parents: 3795
diff changeset
71 by Mercurial with some sensible defaults.
6f0c42d50394 move environment topic
Matt Mackall <mpm@selenic.com>
parents: 3795
diff changeset
72
6f0c42d50394 move environment topic
Matt Mackall <mpm@selenic.com>
parents: 3795
diff changeset
73 (deprecated, use .hgrc)
6f0c42d50394 move environment topic
Matt Mackall <mpm@selenic.com>
parents: 3795
diff changeset
74
6f0c42d50394 move environment topic
Matt Mackall <mpm@selenic.com>
parents: 3795
diff changeset
75 HGRCPATH::
6f0c42d50394 move environment topic
Matt Mackall <mpm@selenic.com>
parents: 3795
diff changeset
76 A list of files or directories to search for hgrc files. Item
6f0c42d50394 move environment topic
Matt Mackall <mpm@selenic.com>
parents: 3795
diff changeset
77 separator is ":" on Unix, ";" on Windows. If HGRCPATH is not set,
6f0c42d50394 move environment topic
Matt Mackall <mpm@selenic.com>
parents: 3795
diff changeset
78 platform default search path is used. If empty, only .hg/hgrc of
6f0c42d50394 move environment topic
Matt Mackall <mpm@selenic.com>
parents: 3795
diff changeset
79 current repository is read.
6f0c42d50394 move environment topic
Matt Mackall <mpm@selenic.com>
parents: 3795
diff changeset
80
6f0c42d50394 move environment topic
Matt Mackall <mpm@selenic.com>
parents: 3795
diff changeset
81 For each element in path, if a directory, all entries in directory
6f0c42d50394 move environment topic
Matt Mackall <mpm@selenic.com>
parents: 3795
diff changeset
82 ending with ".rc" are added to path. Else, element itself is
6f0c42d50394 move environment topic
Matt Mackall <mpm@selenic.com>
parents: 3795
diff changeset
83 added to path.
6f0c42d50394 move environment topic
Matt Mackall <mpm@selenic.com>
parents: 3795
diff changeset
84
6f0c42d50394 move environment topic
Matt Mackall <mpm@selenic.com>
parents: 3795
diff changeset
85 HGUSER::
6f0c42d50394 move environment topic
Matt Mackall <mpm@selenic.com>
parents: 3795
diff changeset
86 This is the string used for the author of a commit.
6f0c42d50394 move environment topic
Matt Mackall <mpm@selenic.com>
parents: 3795
diff changeset
87
6f0c42d50394 move environment topic
Matt Mackall <mpm@selenic.com>
parents: 3795
diff changeset
88 (deprecated, use .hgrc)
6f0c42d50394 move environment topic
Matt Mackall <mpm@selenic.com>
parents: 3795
diff changeset
89
6f0c42d50394 move environment topic
Matt Mackall <mpm@selenic.com>
parents: 3795
diff changeset
90 EMAIL::
6f0c42d50394 move environment topic
Matt Mackall <mpm@selenic.com>
parents: 3795
diff changeset
91 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: 3795
diff changeset
92
6f0c42d50394 move environment topic
Matt Mackall <mpm@selenic.com>
parents: 3795
diff changeset
93 LOGNAME::
6f0c42d50394 move environment topic
Matt Mackall <mpm@selenic.com>
parents: 3795
diff changeset
94 If neither HGUSER nor EMAIL is set, LOGNAME will be used (with
6f0c42d50394 move environment topic
Matt Mackall <mpm@selenic.com>
parents: 3795
diff changeset
95 '@hostname' appended) as the author value for a commit.
6f0c42d50394 move environment topic
Matt Mackall <mpm@selenic.com>
parents: 3795
diff changeset
96
6f0c42d50394 move environment topic
Matt Mackall <mpm@selenic.com>
parents: 3795
diff changeset
97 EDITOR::
6f0c42d50394 move environment topic
Matt Mackall <mpm@selenic.com>
parents: 3795
diff changeset
98 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: 3795
diff changeset
99 used for commit messages if HGEDITOR isn't set. Defaults to 'vi'.
6f0c42d50394 move environment topic
Matt Mackall <mpm@selenic.com>
parents: 3795
diff changeset
100
6f0c42d50394 move environment topic
Matt Mackall <mpm@selenic.com>
parents: 3795
diff changeset
101 PYTHONPATH::
6f0c42d50394 move environment topic
Matt Mackall <mpm@selenic.com>
parents: 3795
diff changeset
102 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: 3795
diff changeset
103 appropriately if Mercurial is not installed system-wide.
3799
eb66d76c7746 move patterns topics
Matt Mackall <mpm@selenic.com>
parents: 3798
diff changeset
104 ''',
eb66d76c7746 move patterns topics
Matt Mackall <mpm@selenic.com>
parents: 3798
diff changeset
105
eb66d76c7746 move patterns topics
Matt Mackall <mpm@selenic.com>
parents: 3798
diff changeset
106 "patterns|File Name Patterns": r'''
eb66d76c7746 move patterns topics
Matt Mackall <mpm@selenic.com>
parents: 3798
diff changeset
107 Mercurial accepts several notations for identifying one or more
eb66d76c7746 move patterns topics
Matt Mackall <mpm@selenic.com>
parents: 3798
diff changeset
108 files at a time.
eb66d76c7746 move patterns topics
Matt Mackall <mpm@selenic.com>
parents: 3798
diff changeset
109
eb66d76c7746 move patterns topics
Matt Mackall <mpm@selenic.com>
parents: 3798
diff changeset
110 By default, Mercurial treats filenames as shell-style extended
eb66d76c7746 move patterns topics
Matt Mackall <mpm@selenic.com>
parents: 3798
diff changeset
111 glob patterns.
eb66d76c7746 move patterns topics
Matt Mackall <mpm@selenic.com>
parents: 3798
diff changeset
112
eb66d76c7746 move patterns topics
Matt Mackall <mpm@selenic.com>
parents: 3798
diff changeset
113 Alternate pattern notations must be specified explicitly.
eb66d76c7746 move patterns topics
Matt Mackall <mpm@selenic.com>
parents: 3798
diff changeset
114
eb66d76c7746 move patterns topics
Matt Mackall <mpm@selenic.com>
parents: 3798
diff changeset
115 To use a plain path name without any pattern matching, start a
eb66d76c7746 move patterns topics
Matt Mackall <mpm@selenic.com>
parents: 3798
diff changeset
116 name with "path:". These path names must match completely, from
eb66d76c7746 move patterns topics
Matt Mackall <mpm@selenic.com>
parents: 3798
diff changeset
117 the root of the current repository.
eb66d76c7746 move patterns topics
Matt Mackall <mpm@selenic.com>
parents: 3798
diff changeset
118
eb66d76c7746 move patterns topics
Matt Mackall <mpm@selenic.com>
parents: 3798
diff changeset
119 To use an extended glob, start a name with "glob:". Globs are
eb66d76c7746 move patterns topics
Matt Mackall <mpm@selenic.com>
parents: 3798
diff changeset
120 rooted at the current directory; a glob such as "*.c" will match
eb66d76c7746 move patterns topics
Matt Mackall <mpm@selenic.com>
parents: 3798
diff changeset
121 files ending in ".c" in the current directory only.
eb66d76c7746 move patterns topics
Matt Mackall <mpm@selenic.com>
parents: 3798
diff changeset
122
eb66d76c7746 move patterns topics
Matt Mackall <mpm@selenic.com>
parents: 3798
diff changeset
123 The supported glob syntax extensions are "**" to match any string
eb66d76c7746 move patterns topics
Matt Mackall <mpm@selenic.com>
parents: 3798
diff changeset
124 across path separators, and "{a,b}" to mean "a or b".
eb66d76c7746 move patterns topics
Matt Mackall <mpm@selenic.com>
parents: 3798
diff changeset
125
eb66d76c7746 move patterns topics
Matt Mackall <mpm@selenic.com>
parents: 3798
diff changeset
126 To use a Perl/Python regular expression, start a name with "re:".
eb66d76c7746 move patterns topics
Matt Mackall <mpm@selenic.com>
parents: 3798
diff changeset
127 Regexp pattern matching is anchored at the root of the repository.
eb66d76c7746 move patterns topics
Matt Mackall <mpm@selenic.com>
parents: 3798
diff changeset
128
eb66d76c7746 move patterns topics
Matt Mackall <mpm@selenic.com>
parents: 3798
diff changeset
129 Plain examples:
eb66d76c7746 move patterns topics
Matt Mackall <mpm@selenic.com>
parents: 3798
diff changeset
130
eb66d76c7746 move patterns topics
Matt Mackall <mpm@selenic.com>
parents: 3798
diff changeset
131 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: 3798
diff changeset
132 the repository
eb66d76c7746 move patterns topics
Matt Mackall <mpm@selenic.com>
parents: 3798
diff changeset
133 path:path:name a file or directory named "path:name"
eb66d76c7746 move patterns topics
Matt Mackall <mpm@selenic.com>
parents: 3798
diff changeset
134
eb66d76c7746 move patterns topics
Matt Mackall <mpm@selenic.com>
parents: 3798
diff changeset
135 Glob examples:
eb66d76c7746 move patterns topics
Matt Mackall <mpm@selenic.com>
parents: 3798
diff changeset
136
eb66d76c7746 move patterns topics
Matt Mackall <mpm@selenic.com>
parents: 3798
diff changeset
137 glob:*.c any name ending in ".c" in the current directory
eb66d76c7746 move patterns topics
Matt Mackall <mpm@selenic.com>
parents: 3798
diff changeset
138 *.c any name ending in ".c" in the current directory
eb66d76c7746 move patterns topics
Matt Mackall <mpm@selenic.com>
parents: 3798
diff changeset
139 **.c any name ending in ".c" in the current directory, or
eb66d76c7746 move patterns topics
Matt Mackall <mpm@selenic.com>
parents: 3798
diff changeset
140 any subdirectory
eb66d76c7746 move patterns topics
Matt Mackall <mpm@selenic.com>
parents: 3798
diff changeset
141 foo/*.c any name ending in ".c" in the directory foo
eb66d76c7746 move patterns topics
Matt Mackall <mpm@selenic.com>
parents: 3798
diff changeset
142 foo/**.c any name ending in ".c" in the directory foo, or any
eb66d76c7746 move patterns topics
Matt Mackall <mpm@selenic.com>
parents: 3798
diff changeset
143 subdirectory
eb66d76c7746 move patterns topics
Matt Mackall <mpm@selenic.com>
parents: 3798
diff changeset
144
eb66d76c7746 move patterns topics
Matt Mackall <mpm@selenic.com>
parents: 3798
diff changeset
145 Regexp examples:
eb66d76c7746 move patterns topics
Matt Mackall <mpm@selenic.com>
parents: 3798
diff changeset
146
eb66d76c7746 move patterns topics
Matt Mackall <mpm@selenic.com>
parents: 3798
diff changeset
147 re:.*\.c$ any name ending in ".c", anywhere in the repository
eb66d76c7746 move patterns topics
Matt Mackall <mpm@selenic.com>
parents: 3798
diff changeset
148
eb66d76c7746 move patterns topics
Matt Mackall <mpm@selenic.com>
parents: 3798
diff changeset
149 ''',
3795
17a11f4ff260 Add basic support for help topics and a dates topic
Matt Mackall <mpm@selenic.com>
parents:
diff changeset
150 }
17a11f4ff260 Add basic support for help topics and a dates topic
Matt Mackall <mpm@selenic.com>
parents:
diff changeset
151