Show More
@@ -0,0 +1,92 | |||
|
1 | import sys, textwrap | |
|
2 | # import from the live mercurial repo | |
|
3 | sys.path.insert(0, "..") | |
|
4 | from mercurial.commands import table, globalopts | |
|
5 | from mercurial.i18n import gettext as _ | |
|
6 | ||
|
7 | def get_desc(docstr): | |
|
8 | if not docstr: | |
|
9 | return "", "" | |
|
10 | # sanitize | |
|
11 | docstr = docstr.strip("\n") | |
|
12 | docstr = docstr.rstrip() | |
|
13 | shortdesc = docstr.splitlines()[0].strip() | |
|
14 | ||
|
15 | i = docstr.find("\n") | |
|
16 | if i != -1: | |
|
17 | desc = docstr[i+2:] | |
|
18 | else: | |
|
19 | desc = " %s" % shortdesc | |
|
20 | return (shortdesc, desc) | |
|
21 | ||
|
22 | def get_opts(opts): | |
|
23 | for shortopt, longopt, default, desc in opts: | |
|
24 | allopts = [] | |
|
25 | if shortopt: | |
|
26 | allopts.append("-%s" % shortopt) | |
|
27 | if longopt: | |
|
28 | allopts.append("--%s" % longopt) | |
|
29 | desc += default and _(" (default: %s)") % default or "" | |
|
30 | yield(", ".join(allopts), desc) | |
|
31 | ||
|
32 | def get_cmd(cmd): | |
|
33 | d = {} | |
|
34 | attr = table[cmd] | |
|
35 | cmds = cmd.lstrip("^").split("|") | |
|
36 | ||
|
37 | d['synopsis'] = attr[2] | |
|
38 | d['cmd'] = cmds[0] | |
|
39 | d['aliases'] = cmd.split("|")[1:] | |
|
40 | d['desc'] = get_desc(attr[0].__doc__) | |
|
41 | d['opts'] = list(get_opts(attr[1])) | |
|
42 | return d | |
|
43 | ||
|
44 | ||
|
45 | def show_doc(ui): | |
|
46 | def bold(s, text=""): | |
|
47 | ui.write("%s\n%s\n%s\n" % (s, "="*len(s), text)) | |
|
48 | def underlined(s, text=""): | |
|
49 | ui.write("%s\n%s\n%s\n" % (s, "-"*len(s), text)) | |
|
50 | ||
|
51 | # print options | |
|
52 | underlined(_("OPTIONS")) | |
|
53 | for optstr, desc in get_opts(globalopts): | |
|
54 | ui.write("%s::\n %s\n\n" % (optstr, desc)) | |
|
55 | ||
|
56 | # print cmds | |
|
57 | underlined(_("COMMANDS")) | |
|
58 | h = {} | |
|
59 | for c, attr in table.items(): | |
|
60 | f = c.split("|")[0] | |
|
61 | f = f.lstrip("^") | |
|
62 | h[f] = c | |
|
63 | cmds = h.keys() | |
|
64 | cmds.sort() | |
|
65 | ||
|
66 | for f in cmds: | |
|
67 | if f.startswith("debug"): continue | |
|
68 | d = get_cmd(h[f]) | |
|
69 | # synopsis | |
|
70 | ui.write("%s::\n" % d['synopsis'].replace("hg ","", 1)) | |
|
71 | # description | |
|
72 | ui.write("%s\n\n" % d['desc'][1]) | |
|
73 | # options | |
|
74 | opt_output = list(d['opts']) | |
|
75 | if opt_output: | |
|
76 | opts_len = max([len(line[0]) for line in opt_output]) | |
|
77 | ui.write(_(" options:\n")) | |
|
78 | for optstr, desc in opt_output: | |
|
79 | if desc: | |
|
80 | s = "%-*s %s" % (opts_len, optstr, desc) | |
|
81 | else: | |
|
82 | s = optstr | |
|
83 | s = textwrap.fill(s, initial_indent=4 * " ", | |
|
84 | subsequent_indent=(6 + opts_len) * " ") | |
|
85 | ui.write("%s\n" % s) | |
|
86 | ui.write("\n") | |
|
87 | # aliases | |
|
88 | if d['aliases']: | |
|
89 | ui.write(_(" aliases: %s\n\n") % " ".join(d['aliases'])) | |
|
90 | ||
|
91 | if __name__ == "__main__": | |
|
92 | show_doc(sys.stdout) |
@@ -1,21 +1,27 | |||
|
1 | 1 | SOURCES=$(wildcard *.[0-9].txt) |
|
2 | 2 | MAN=$(SOURCES:%.txt=%) |
|
3 | 3 | HTML=$(SOURCES:%.txt=%.html) |
|
4 | 4 | |
|
5 | 5 | all: man html |
|
6 | 6 | |
|
7 | 7 | man: $(MAN) |
|
8 | 8 | |
|
9 | 9 | html: $(HTML) |
|
10 | 10 | |
|
11 | hg.1.txt: hg.1.gendoc.txt | |
|
12 | touch hg.1.txt | |
|
13 | ||
|
14 | hg.1.gendoc.txt: | |
|
15 | python gendoc.py > $@ | |
|
16 | ||
|
11 | 17 | %: %.xml |
|
12 | 18 | xmlto man $*.xml |
|
13 | 19 | |
|
14 | 20 | %.xml: %.txt |
|
15 | 21 | asciidoc -d manpage -b docbook $*.txt |
|
16 | 22 | |
|
17 | 23 | %.html: %.txt |
|
18 | 24 | asciidoc -b html4 $*.txt || asciidoc -b html $*.txt |
|
19 | 25 | |
|
20 | 26 | clean: |
|
21 | 27 | $(RM) $(MAN) $(MAN:%=%.xml) $(MAN:%=%.html) |
This diff has been collapsed as it changes many lines, (623 lines changed) Show them Hide them | |||
@@ -1,834 +1,213 | |||
|
1 | 1 | HG(1) |
|
2 | 2 | ===== |
|
3 | 3 | Matt Mackall <mpm@selenic.com> |
|
4 | 4 | |
|
5 | 5 | NAME |
|
6 | 6 | ---- |
|
7 | 7 | hg - Mercurial source code management system |
|
8 | 8 | |
|
9 | 9 | SYNOPSIS |
|
10 | 10 | -------- |
|
11 | 11 | 'hg' [-v -d -q -y] <command> [command options] [files] |
|
12 | 12 | |
|
13 | 13 | DESCRIPTION |
|
14 | 14 | ----------- |
|
15 | 15 | The hg(1) command provides a command line interface to the Mercurial system. |
|
16 | 16 | |
|
17 | OPTIONS | |
|
18 | ------- | |
|
19 | ||
|
20 | -R, --repository:: | |
|
21 | repository root directory | |
|
22 | ||
|
23 | --cwd:: | |
|
24 | change working directory | |
|
25 | ||
|
26 | -y, --noninteractive:: | |
|
27 | do not prompt, assume 'yes' for any required answers | |
|
28 | ||
|
29 | -q, --quiet:: | |
|
30 | suppress output | |
|
31 | ||
|
32 | -v, --verbose:: | |
|
33 | enable additional output | |
|
34 | ||
|
35 | --debug:: | |
|
36 | enable debugging output | |
|
37 | ||
|
38 | --traceback:: | |
|
39 | print traceback on exception | |
|
40 | ||
|
41 | --time:: | |
|
42 | time how long the command takes | |
|
43 | ||
|
44 | --profile:: | |
|
45 | print command execution profile | |
|
46 | ||
|
47 | --version:: | |
|
48 | output version information and exit | |
|
49 | ||
|
50 | -h, --help:: | |
|
51 | display help and exit | |
|
52 | ||
|
53 | 17 | COMMAND ELEMENTS |
|
54 | 18 | ---------------- |
|
55 | 19 | |
|
56 | 20 | files ...:: |
|
57 | 21 | indicates one or more filename or relative path filenames; see |
|
58 | 22 | "FILE NAME PATTERNS" for information on pattern matching |
|
59 | 23 | |
|
60 | 24 | path:: |
|
61 | 25 | indicates a path on the local machine |
|
62 | 26 | |
|
63 | 27 | revision:: |
|
64 | 28 | indicates a changeset which can be specified as a changeset revision |
|
65 | 29 | number, a tag, or a unique substring of the changeset hash value |
|
66 | 30 | |
|
67 | 31 | repository path:: |
|
68 | 32 | either the pathname of a local repository or the URI of a remote |
|
69 | 33 | repository. There are two available URI protocols, http:// which is |
|
70 | 34 | fast and the old-http:// protocol which is much slower but does not |
|
71 | 35 | require a special server on the web host. |
|
72 | 36 | |
|
73 | COMMANDS | |
|
74 | -------- | |
|
75 | 37 | |
|
76 | add [options] [files ...]:: | |
|
77 | Schedule files to be version controlled and added to the repository. | |
|
78 | ||
|
79 | The files will be added to the repository at the next commit. | |
|
80 | ||
|
81 | If no names are given, add all files in the current directory and | |
|
82 | its subdirectories. | |
|
83 | ||
|
84 | addremove [options] [files ...]:: | |
|
85 | Add all new files and remove all missing files from the repository. | |
|
86 | ||
|
87 | New files are ignored if they match any of the patterns in .hgignore. As | |
|
88 | with add, these changes take effect at the next commit. | |
|
89 | ||
|
90 | annotate [-r <rev> -u -n -c -d] [files ...]:: | |
|
91 | List changes in files, showing the revision id responsible for each line | |
|
92 | ||
|
93 | This command is useful to discover who did a change or when a change took | |
|
94 | place. | |
|
95 | ||
|
96 | Without the -a option, annotate will avoid processing files it | |
|
97 | detects as binary. With -a, annotate will generate an annotation | |
|
98 | anyway, probably with undesirable results. | |
|
99 | ||
|
100 | options: | |
|
101 | -a, --text treat all files as text | |
|
102 | -I, --include <pat> include names matching the given patterns | |
|
103 | -X, --exclude <pat> exclude names matching the given patterns | |
|
104 | -r, --revision <rev> annotate the specified revision | |
|
105 | -u, --user list the author | |
|
106 | -d, --date list the commit date | |
|
107 | -c, --changeset list the changeset | |
|
108 | -n, --number list the revision number (default) | |
|
109 | ||
|
110 | bundle <file> <other>:: | |
|
111 | (EXPERIMENTAL) | |
|
112 | ||
|
113 | Generate a compressed changegroup file collecting all changesets | |
|
114 | not found in the other repository. | |
|
115 | ||
|
116 | This file can then be transferred using conventional means and | |
|
117 | applied to another repository with the unbundle command. This is | |
|
118 | useful when native push and pull are not available or when | |
|
119 | exporting an entire repository is undesirable. The standard file | |
|
120 | extension is ".hg". | |
|
121 | ||
|
122 | Unlike import/export, this exactly preserves all changeset | |
|
123 | contents including permissions, rename data, and revision history. | |
|
124 | ||
|
125 | cat [options] <file ...>:: | |
|
126 | Print the specified files as they were at the given revision. | |
|
127 | If no revision is given then the tip is used. | |
|
128 | ||
|
129 | Output may be to a file, in which case the name of the file is | |
|
130 | given using a format string. The formatting rules are the same as | |
|
131 | for the export command, with the following additions: | |
|
132 | ||
|
133 | %s basename of file being printed | |
|
134 | %d dirname of file being printed, or '.' if in repo root | |
|
135 | %p root-relative path name of file being printed | |
|
136 | ||
|
137 | options: | |
|
138 | -I, --include <pat> include names matching the given patterns | |
|
139 | -X, --exclude <pat> exclude names matching the given patterns | |
|
140 | -o, --output <filespec> print output to file with formatted name | |
|
141 | -r, --rev <rev> print the given revision | |
|
142 | ||
|
143 | clone [options] <source> [dest]:: | |
|
144 | Create a copy of an existing repository in a new directory. | |
|
145 | ||
|
146 | If no destination directory name is specified, it defaults to the | |
|
147 | basename of the source. | |
|
148 | ||
|
149 | The location of the source is added to the new repository's | |
|
150 | .hg/hgrc file, as the default to be used for future pulls. | |
|
151 | ||
|
152 | For efficiency, hardlinks are used for cloning whenever the source | |
|
153 | and destination are on the same filesystem. Some filesystems, | |
|
154 | such as AFS, implement hardlinking incorrectly, but do not report | |
|
155 | errors. In these cases, use the --pull option to avoid | |
|
156 | hardlinking. | |
|
157 | ||
|
158 | See pull for valid source format details. | |
|
159 | ||
|
160 | options: | |
|
161 | -U, --noupdate do not update the new working directory | |
|
162 | --pull use pull protocol to copy metadata | |
|
163 | -e, --ssh specify ssh command to use | |
|
164 | --remotecmd specify hg command to run on the remote side | |
|
165 | ||
|
166 | commit [options] [files...]:: | |
|
167 | Commit changes to the given files into the repository. | |
|
168 | ||
|
169 | If a list of files is omitted, all changes reported by "hg status" | |
|
170 | from the root of the repository will be commited. | |
|
171 | ||
|
172 | The HGEDITOR or EDITOR environment variables are used to start an | |
|
173 | editor to add a commit comment. | |
|
174 | ||
|
175 | Options: | |
|
176 | ||
|
177 | -A, --addremove run addremove during commit | |
|
178 | -I, --include <pat> include names matching the given patterns | |
|
179 | -X, --exclude <pat> exclude names matching the given patterns | |
|
180 | -m, --message <text> use <text> as commit message | |
|
181 | -l, --logfile <file> read the commit message from <file> | |
|
182 | -d, --date <datecode> record datecode as commit date | |
|
183 | -u, --user <user> record user as commiter | |
|
184 | ||
|
185 | aliases: ci | |
|
186 | ||
|
187 | copy <source ...> <dest>:: | |
|
188 | Mark dest as having copies of source files. If dest is a | |
|
189 | directory, copies are put in that directory. If dest is a file, | |
|
190 | there can only be one source. | |
|
191 | ||
|
192 | By default, this command copies the contents of files as they | |
|
193 | stand in the working directory. If invoked with --after, the | |
|
194 | operation is recorded, but no copying is performed. | |
|
195 | ||
|
196 | This command takes effect in the next commit. | |
|
197 | ||
|
198 | NOTE: This command should be treated as experimental. While it | |
|
199 | should properly record copied files, this information is not yet | |
|
200 | fully used by merge, nor fully reported by log. | |
|
201 | ||
|
202 | Options: | |
|
203 | -A, --after record a copy that has already occurred | |
|
204 | -I, --include <pat> include names matching the given patterns | |
|
205 | -X, --exclude <pat> exclude names matching the given patterns | |
|
206 | -f, --force forcibly copy over an existing managed file | |
|
207 | ||
|
208 | aliases: cp | |
|
209 | ||
|
210 | diff [-a] [-r revision] [-r revision] [files ...]:: | |
|
211 | Show differences between revisions for the specified files. | |
|
212 | ||
|
213 | Differences between files are shown using the unified diff format. | |
|
214 | ||
|
215 | When two revision arguments are given, then changes are shown | |
|
216 | between those revisions. If only one revision is specified then | |
|
217 | that revision is compared to the working directory, and, when no | |
|
218 | revisions are specified, the working directory files are compared | |
|
219 | to its parent. | |
|
220 | ||
|
221 | Without the -a option, diff will avoid generating diffs of files | |
|
222 | it detects as binary. With -a, diff will generate a diff anyway, | |
|
223 | probably with undesirable results. | |
|
224 | ||
|
225 | options: | |
|
226 | -a, --text treat all files as text | |
|
227 | -I, --include <pat> include names matching the given patterns | |
|
228 | -p, --show-function show which function each change is in | |
|
229 | -X, --exclude <pat> exclude names matching the given patterns | |
|
230 | -w, --ignore-all-space ignore white space when comparing lines | |
|
231 | ||
|
232 | export [-o filespec] [revision] ...:: | |
|
233 | Print the changeset header and diffs for one or more revisions. | |
|
234 | ||
|
235 | The information shown in the changeset header is: author, | |
|
236 | changeset hash, parent and commit comment. | |
|
237 | ||
|
238 | Output may be to a file, in which case the name of the file is | |
|
239 | given using a format string. The formatting rules are as follows: | |
|
240 | ||
|
241 | %% literal "%" character | |
|
242 | %H changeset hash (40 bytes of hexadecimal) | |
|
243 | %N number of patches being generated | |
|
244 | %R changeset revision number | |
|
245 | %b basename of the exporting repository | |
|
246 | %h short-form changeset hash (12 bytes of hexadecimal) | |
|
247 | %n zero-padded sequence number, starting at 1 | |
|
248 | %r zero-padded changeset revision number | |
|
249 | ||
|
250 | Without the -a option, export will avoid generating diffs of files | |
|
251 | it detects as binary. With -a, export will generate a diff anyway, | |
|
252 | probably with undesirable results. | |
|
253 | ||
|
254 | options: | |
|
255 | -a, --text treat all files as text | |
|
256 | -o, --output <filespec> print output to file with formatted name | |
|
257 | ||
|
258 | forget [options] [files]:: | |
|
259 | Undo an 'hg add' scheduled for the next commit. | |
|
260 | ||
|
261 | options: | |
|
262 | -I, --include <pat> include names matching the given patterns | |
|
263 | -X, --exclude <pat> exclude names matching the given patterns | |
|
264 | ||
|
265 | grep [options] pattern [files]:: | |
|
266 | Search revisions of files for a regular expression. | |
|
267 | ||
|
268 | This command behaves differently than Unix grep. It only accepts | |
|
269 | Python/Perl regexps. It searches repository history, not the | |
|
270 | working directory. It always prints the revision number in which | |
|
271 | a match appears. | |
|
272 | ||
|
273 | By default, grep only prints output for the first revision of a | |
|
274 | file in which it finds a match. To get it to print every revision | |
|
275 | that contains a change in match status ("-" for a match that | |
|
276 | becomes a non-match, or "+" for a non-match that becomes a match), | |
|
277 | use the --all flag. | |
|
278 | ||
|
279 | options: | |
|
280 | -0, --print0 end fields with NUL | |
|
281 | -I, --include <pat> include names matching the given patterns | |
|
282 | -X, --exclude <pat> exclude names matching the given patterns | |
|
283 | --all print all revisions that match | |
|
284 | -i, --ignore-case ignore case when matching | |
|
285 | -l, --files-with-matches print only filenames and revs that match | |
|
286 | -n, --line-number print matching line numbers | |
|
287 | -r <rev>, --rev <rev> search in given revision range | |
|
288 | -u, --user print user who committed change | |
|
289 | ||
|
290 | heads:: | |
|
291 | Show all repository head changesets. | |
|
292 | ||
|
293 | Repository "heads" are changesets that don't have children | |
|
294 | changesets. They are where development generally takes place and | |
|
295 | are the usual targets for update and merge operations. | |
|
296 | ||
|
297 | identify:: | |
|
298 | Print a short summary of the current state of the repo. | |
|
299 | ||
|
300 | This summary identifies the repository state using one or two parent | |
|
301 | hash identifiers, followed by a "+" if there are uncommitted changes | |
|
302 | in the working directory, followed by a list of tags for this revision. | |
|
303 | ||
|
304 | aliases: id | |
|
305 | ||
|
306 | import [-p <n> -b <base> -f] <patches>:: | |
|
307 | Import a list of patches and commit them individually. | |
|
308 | ||
|
309 | If there are outstanding changes in the working directory, import | |
|
310 | will abort unless given the -f flag. | |
|
311 | ||
|
312 | If a patch looks like a mail message (its first line starts with | |
|
313 | "From " or looks like an RFC822 header), it will not be applied | |
|
314 | unless the -f option is used. The importer neither parses nor | |
|
315 | discards mail headers, so use -f only to override the "mailness" | |
|
316 | safety check, not to import a real mail message. | |
|
317 | ||
|
318 | options: | |
|
319 | -p, --strip <n> directory strip option for patch. This has the same | |
|
320 | meaning as the corresponding patch option | |
|
321 | -b <path> base directory to read patches from | |
|
322 | -f, --force skip check for outstanding uncommitted changes | |
|
323 | ||
|
324 | aliases: patch | |
|
325 | ||
|
326 | incoming [-p] [source]:: | |
|
327 | Show new changesets found in the specified repo or the default | |
|
328 | pull repo. These are the changesets that would be pulled if a pull | |
|
329 | was requested. | |
|
330 | ||
|
331 | Currently only local repositories are supported. | |
|
332 | ||
|
333 | options: | |
|
334 | -p, --patch show patch | |
|
335 | ||
|
336 | aliases: in | |
|
337 | ||
|
338 | init [dest]:: | |
|
339 | Initialize a new repository in the given directory. If the given | |
|
340 | directory does not exist, it is created. | |
|
341 | ||
|
342 | If no directory is given, the current directory is used. | |
|
343 | ||
|
344 | locate [options] [files]:: | |
|
345 | Print all files under Mercurial control whose names match the | |
|
346 | given patterns. | |
|
347 | ||
|
348 | This command searches the current directory and its | |
|
349 | subdirectories. To search an entire repository, move to the root | |
|
350 | of the repository. | |
|
351 | ||
|
352 | If no patterns are given to match, this command prints all file | |
|
353 | names. | |
|
354 | ||
|
355 | If you want to feed the output of this command into the "xargs" | |
|
356 | command, use the "-0" option to both this command and "xargs". | |
|
357 | This will avoid the problem of "xargs" treating single filenames | |
|
358 | that contain white space as multiple filenames. | |
|
359 | ||
|
360 | options: | |
|
361 | ||
|
362 | -0, --print0 end filenames with NUL, for use with xargs | |
|
363 | -f, --fullpath print complete paths from the filesystem root | |
|
364 | -I, --include <pat> include names matching the given patterns | |
|
365 | -r, --rev <rev> search the repository as it stood at rev | |
|
366 | -X, --exclude <pat> exclude names matching the given patterns | |
|
367 | ||
|
368 | log [-r revision ...] [-p] [files]:: | |
|
369 | Print the revision history of the specified files or the entire project. | |
|
370 | ||
|
371 | By default this command outputs: changeset id and hash, tags, | |
|
372 | parents, user, date and time, and a summary for each commit. The | |
|
373 | -v switch adds some more detail, such as changed files, manifest | |
|
374 | hashes or message signatures. | |
|
375 | ||
|
376 | options: | |
|
377 | -I, --include <pat> include names matching the given patterns | |
|
378 | -X, --exclude <pat> exclude names matching the given patterns | |
|
379 | -b, --branch show branches | |
|
380 | -k, --keyword <str> search for keywords | |
|
381 | -l, --limit <num> print no more than this many changes | |
|
382 | -M, --no-merges do not show merges | |
|
383 | -m, --only-merges only show merges | |
|
384 | -r, --rev <A> show the specified revision or range | |
|
385 | -p, --patch show patch | |
|
386 | ||
|
387 | aliases: history | |
|
388 | ||
|
389 | manifest [revision]:: | |
|
390 | Print a list of version controlled files for the given revision. | |
|
391 | ||
|
392 | The manifest is the list of files being version controlled. If no revision | |
|
393 | is given then the tip is used. | |
|
394 | ||
|
395 | outgoing [-p] [dest]:: | |
|
396 | Show changesets not found in the specified destination repo or the | |
|
397 | default push repo. These are the changesets that would be pushed | |
|
398 | if a push was requested. | |
|
399 | ||
|
400 | See pull for valid source format details. | |
|
401 | ||
|
402 | options: | |
|
403 | -p, --patch show patch | |
|
404 | ||
|
405 | aliases: out | |
|
406 | ||
|
407 | parents:: | |
|
408 | Print the working directory's parent revisions. | |
|
409 | ||
|
410 | paths [NAME]:: | |
|
411 | Show definition of symbolic path name NAME. If no name is given, show | |
|
412 | definition of available names. | |
|
413 | ||
|
414 | Path names are defined in the [paths] section of /etc/mercurial/hgrc | |
|
415 | and $HOME/.hgrc. If run inside a repository, .hg/hgrc is used, too. | |
|
416 | ||
|
417 | pull <repository path>:: | |
|
418 | Pull changes from a remote repository to a local one. | |
|
419 | ||
|
420 | This finds all changes from the repository at the specified path | |
|
421 | or URL and adds them to the local repository. By default, this | |
|
422 | does not update the copy of the project in the working directory. | |
|
423 | ||
|
424 | Valid URLs are of the form: | |
|
425 | ||
|
426 | local/filesystem/path | |
|
427 | http://[user@]host[:port][/path] | |
|
428 | https://[user@]host[:port][/path] | |
|
429 | ssh://[user@]host[:port][/path] | |
|
430 | ||
|
431 | SSH requires an accessible shell account on the destination machine | |
|
432 | and a copy of hg in the remote path. With SSH, paths are relative | |
|
433 | to the remote user's home directory by default; use two slashes at | |
|
434 | the start of a path to specify it as relative to the filesystem root. | |
|
435 | ||
|
436 | options: | |
|
437 | -u, --update update the working directory to tip after pull | |
|
438 | -e, --ssh specify ssh command to use | |
|
439 | --remotecmd specify hg command to run on the remote side | |
|
440 | ||
|
441 | push <destination>:: | |
|
442 | Push changes from the local repository to the given destination. | |
|
443 | ||
|
444 | This is the symmetrical operation for pull. It helps to move | |
|
445 | changes from the current repository to a different one. If the | |
|
446 | destination is local this is identical to a pull in that directory | |
|
447 | from the current one. | |
|
448 | ||
|
449 | By default, push will refuse to run if it detects the result would | |
|
450 | increase the number of remote heads. This generally indicates the | |
|
451 | the client has forgotten to sync and merge before pushing. | |
|
452 | ||
|
453 | Valid URLs are of the form: | |
|
454 | ||
|
455 | local/filesystem/path | |
|
456 | ssh://[user@]host[:port][/path] | |
|
457 | ||
|
458 | SSH requires an accessible shell account on the destination | |
|
459 | machine and a copy of hg in the remote path. | |
|
460 | ||
|
461 | options: | |
|
462 | ||
|
463 | -f, --force force update | |
|
464 | -e, --ssh specify ssh command to use | |
|
465 | --remotecmd specify hg command to run on the remote side | |
|
466 | ||
|
467 | rawcommit [-p -d -u -F -m -l]:: | |
|
468 | Lowlevel commit, for use in helper scripts. (DEPRECATED) | |
|
469 | ||
|
470 | This command is not intended to be used by normal users, as it is | |
|
471 | primarily useful for importing from other SCMs. | |
|
472 | ||
|
473 | This command is now deprecated and will be removed in a future | |
|
474 | release, please use debugsetparents and commit instead. | |
|
475 | ||
|
476 | recover:: | |
|
477 | Recover from an interrupted commit or pull. | |
|
478 | ||
|
479 | This command tries to fix the repository status after an interrupted | |
|
480 | operation. It should only be necessary when Mercurial suggests it. | |
|
481 | ||
|
482 | remove [options] [files ...]:: | |
|
483 | Schedule the indicated files for removal from the repository. | |
|
484 | ||
|
485 | This command schedules the files to be removed at the next commit. | |
|
486 | This only removes files from the current branch, not from the | |
|
487 | entire project history. If the files still exist in the working | |
|
488 | directory, they will be deleted from it. | |
|
489 | ||
|
490 | aliases: rm | |
|
491 | ||
|
492 | rename <source ...> <dest>:: | |
|
493 | Mark dest as copies of sources; mark sources for deletion. If | |
|
494 | dest is a directory, copies are put in that directory. If dest is | |
|
495 | a file, there can only be one source. | |
|
496 | ||
|
497 | By default, this command copies the contents of files as they | |
|
498 | stand in the working directory. If invoked with --after, the | |
|
499 | operation is recorded, but no copying is performed. | |
|
500 | ||
|
501 | This command takes effect in the next commit. | |
|
502 | ||
|
503 | NOTE: This command should be treated as experimental. While it | |
|
504 | should properly record rename files, this information is not yet | |
|
505 | fully used by merge, nor fully reported by log. | |
|
506 | ||
|
507 | Options: | |
|
508 | -A, --after record a rename that has already occurred | |
|
509 | -f, --force forcibly copy over an existing managed file | |
|
510 | ||
|
511 | aliases: mv | |
|
512 | ||
|
513 | revert [names ...]:: | |
|
514 | The revert command has two modes of operation. | |
|
515 | ||
|
516 | In its default mode, it reverts any uncommitted modifications made | |
|
517 | to the named files or directories. This restores the contents of | |
|
518 | the affected files to an unmodified state. | |
|
519 | ||
|
520 | Using the -r option, it reverts the given files or directories to | |
|
521 | their state as of an earlier revision. This can be helpful to "roll | |
|
522 | back" some or all of a change that should not have been committed. | |
|
523 | ||
|
524 | Revert modifies the working directory. It does not commit any | |
|
525 | changes, or change the parent of the current working directory. | |
|
526 | ||
|
527 | If a file has been deleted, it is recreated. If the executable | |
|
528 | mode of a file was changed, it is reset. | |
|
529 | ||
|
530 | If a directory is given, all files in that directory and its | |
|
531 | subdirectories are reverted. | |
|
532 | ||
|
533 | If no arguments are given, all files in the current directory and | |
|
534 | its subdirectories are reverted. | |
|
535 | ||
|
536 | options: | |
|
537 | -r, --rev <rev> revision to revert to | |
|
538 | -n, --nonrecursive do not recurse into subdirectories | |
|
539 | ||
|
540 | root:: | |
|
541 | Print the root directory of the current repository. | |
|
542 | ||
|
543 | serve [options]:: | |
|
544 | Start a local HTTP repository browser and pull server. | |
|
545 | ||
|
546 | By default, the server logs accesses to stdout and errors to | |
|
547 | stderr. Use the "-A" and "-E" options to log to files. | |
|
548 | ||
|
549 | options: | |
|
550 | -A, --accesslog <file> name of access log file to write to | |
|
551 | -d, --daemon run server in background, as a daemon | |
|
552 | -E, --errorlog <file> name of error log file to write to | |
|
553 | -a, --address <addr> address to use | |
|
554 | -p, --port <n> port to use (default: 8000) | |
|
555 | -n, --name <name> name to show in web pages (default: working dir) | |
|
556 | --pid-file <file> write server process ID to given file | |
|
557 | -t, --templatedir <path> web templates to use | |
|
558 | -6, --ipv6 use IPv6 in addition to IPv4 | |
|
559 | ||
|
560 | status [options] [files]:: | |
|
561 | Show changed files in the working directory. If no names are | |
|
562 | given, all files are shown. Otherwise, only files matching the | |
|
563 | given names are shown. | |
|
564 | ||
|
565 | The codes used to show the status of files are: | |
|
566 | ||
|
567 | M = changed | |
|
568 | A = added | |
|
569 | R = removed | |
|
570 | ? = not tracked | |
|
571 | ||
|
572 | options: | |
|
573 | ||
|
574 | -m, --modified show only modified files | |
|
575 | -a, --added show only added files | |
|
576 | -r, --removed show only removed files | |
|
577 | -u, --unknown show only unknown (not tracked) files | |
|
578 | -n, --no-status hide status prefix | |
|
579 | -0, --print0 end filenames with NUL, for use with xargs | |
|
580 | -I, --include <pat> include names matching the given patterns | |
|
581 | -X, --exclude <pat> exclude names matching the given patterns | |
|
582 | ||
|
583 | tag [-l -m <text> -d <datecode> -u <user>] <name> [revision]:: | |
|
584 | Name a particular revision using <name>. | |
|
585 | ||
|
586 | Tags are used to name particular revisions of the repository and are | |
|
587 | very useful to compare different revision, to go back to significant | |
|
588 | earlier versions or to mark branch points as releases, etc. | |
|
589 | ||
|
590 | If no revision is given, the tip is used. | |
|
591 | ||
|
592 | To facilitate version control, distribution, and merging of tags, | |
|
593 | they are stored as a file named ".hgtags" which is managed | |
|
594 | similarly to other project files and can be hand-edited if | |
|
595 | necessary. | |
|
596 | ||
|
597 | options: | |
|
598 | -l, --local make the tag local | |
|
599 | -m, --message <text> message for tag commit log entry | |
|
600 | -d, --date <datecode> datecode for commit | |
|
601 | -u, --user <user> user for commit | |
|
602 | ||
|
603 | Note: Local tags are not version-controlled or distributed and are | |
|
604 | stored in the .hg/localtags file. If there exists a local tag and | |
|
605 | a public tag with the same name, local tag is used. | |
|
606 | ||
|
607 | tags:: | |
|
608 | List the repository tags. | |
|
609 | ||
|
610 | This lists both regular and local tags. | |
|
611 | ||
|
612 | tip [-p]:: | |
|
613 | Show the tip revision. | |
|
614 | ||
|
615 | options: | |
|
616 | -p, --patch show patch | |
|
617 | ||
|
618 | unbundle <file>:: | |
|
619 | (EXPERIMENTAL) | |
|
620 | ||
|
621 | Apply a compressed changegroup file generated by the bundle | |
|
622 | command. | |
|
623 | ||
|
624 | undo:: | |
|
625 | Undo the last commit or pull transaction. | |
|
626 | ||
|
627 | Roll back the last pull or commit transaction on the | |
|
628 | repository, restoring the project to its earlier state. | |
|
629 | ||
|
630 | This command should be used with care. There is only one level of | |
|
631 | undo and there is no redo. | |
|
632 | ||
|
633 | This command is not intended for use on public repositories. Once | |
|
634 | a change is visible for pull by other users, undoing it locally is | |
|
635 | ineffective. | |
|
636 | ||
|
637 | update [-m -C] [revision]:: | |
|
638 | Update the working directory to the specified revision. | |
|
639 | ||
|
640 | By default, update will refuse to run if doing so would require | |
|
641 | merging or discarding local changes. | |
|
642 | ||
|
643 | With the -m option, a merge will be performed. | |
|
644 | ||
|
645 | With the -C option, local changes will be lost. | |
|
646 | ||
|
647 | options: | |
|
648 | -m, --merge allow merging of branches | |
|
649 | -C, --clean overwrite locally modified files | |
|
650 | ||
|
651 | aliases: up checkout co | |
|
652 | ||
|
653 | verify:: | |
|
654 | Verify the integrity of the current repository. | |
|
655 | ||
|
656 | This will perform an extensive check of the repository's | |
|
657 | integrity, validating the hashes and checksums of each entry in | |
|
658 | the changelog, manifest, and tracked files, as well as the | |
|
659 | integrity of their crosslinks and indices. | |
|
38 | include::hg.1.gendoc.txt[] | |
|
660 | 39 | |
|
661 | 40 | FILE NAME PATTERNS |
|
662 | 41 | ------------------ |
|
663 | 42 | |
|
664 | 43 | Mercurial accepts several notations for identifying one or more |
|
665 | 44 | files at a time. |
|
666 | 45 | |
|
667 | 46 | By default, Mercurial treats filenames as shell-style extended |
|
668 | 47 | glob patterns. |
|
669 | 48 | |
|
670 | 49 | Alternate pattern notations must be specified explicitly. |
|
671 | 50 | |
|
672 | 51 | To use a plain path name without any pattern matching, start a |
|
673 | 52 | name with "path:". These path names must match completely, from |
|
674 | 53 | the root of the current repository. |
|
675 | 54 | |
|
676 | 55 | To use an extended glob, start a name with "glob:". Globs are |
|
677 | 56 | rooted at the current directory; a glob such as "*.c" will match |
|
678 | 57 | files ending in ".c" in the current directory only. |
|
679 | 58 | |
|
680 | 59 | The supported glob syntax extensions are "**" to match any string |
|
681 | 60 | across path separators, and "{a,b}" to mean "a or b". |
|
682 | 61 | |
|
683 | 62 | To use a Perl/Python regular expression, start a name with "re:". |
|
684 | 63 | Regexp pattern matching is anchored at the root of the repository. |
|
685 | 64 | |
|
686 | 65 | Plain examples: |
|
687 | 66 | |
|
688 | 67 | path:foo/bar a name bar in a directory named foo in the root of |
|
689 | 68 | the repository |
|
690 | 69 | path:path:name a file or directory named "path:name" |
|
691 | 70 | |
|
692 | 71 | Glob examples: |
|
693 | 72 | |
|
694 | 73 | glob:*.c any name ending in ".c" in the current directory |
|
695 | 74 | *.c any name ending in ".c" in the current directory |
|
696 | 75 | **.c any name ending in ".c" in the current directory, or |
|
697 | 76 | any subdirectory |
|
698 | 77 | foo/*.c any name ending in ".c" in the directory foo |
|
699 | 78 | foo/**.c any name ending in ".c" in the directory foo, or any |
|
700 | 79 | subdirectory |
|
701 | 80 | |
|
702 | 81 | Regexp examples: |
|
703 | 82 | |
|
704 | 83 | re:.*\.c$ any name ending in ".c", anywhere in the repository |
|
705 | 84 | |
|
706 | 85 | |
|
707 | 86 | SPECIFYING SINGLE REVISIONS |
|
708 | 87 | --------------------------- |
|
709 | 88 | |
|
710 | 89 | Mercurial accepts several notations for identifying individual |
|
711 | 90 | revisions. |
|
712 | 91 | |
|
713 | 92 | A plain integer is treated as a revision number. Negative |
|
714 | 93 | integers are treated as offsets from the tip, with -1 denoting the |
|
715 | 94 | tip. |
|
716 | 95 | |
|
717 | 96 | A 40-digit hexadecimal string is treated as a unique revision |
|
718 | 97 | identifier. |
|
719 | 98 | |
|
720 | 99 | A hexadecimal string less than 40 characters long is treated as a |
|
721 | 100 | unique revision identifier, and referred to as a short-form |
|
722 | 101 | identifier. A short-form identifier is only valid if it is the |
|
723 | 102 | prefix of one full-length identifier. |
|
724 | 103 | |
|
725 | 104 | Any other string is treated as a tag name, which is a symbolic |
|
726 | 105 | name associated with a revision identifier. Tag names may not |
|
727 | 106 | contain the ":" character. |
|
728 | 107 | |
|
729 | 108 | The reserved name "tip" is a special tag that always identifies |
|
730 | 109 | the most recent revision. |
|
731 | 110 | |
|
732 | 111 | SPECIFYING MULTIPLE REVISIONS |
|
733 | 112 | ----------------------------- |
|
734 | 113 | |
|
735 | 114 | When Mercurial accepts more than one revision, they may be |
|
736 | 115 | specified individually, or provided as a continuous range, |
|
737 | 116 | separated by the ":" character. |
|
738 | 117 | |
|
739 | 118 | The syntax of range notation is [BEGIN]:[END], where BEGIN and END |
|
740 | 119 | are revision identifiers. Both BEGIN and END are optional. If |
|
741 | 120 | BEGIN is not specified, it defaults to revision number 0. If END |
|
742 | 121 | is not specified, it defaults to the tip. The range ":" thus |
|
743 | 122 | means "all revisions". |
|
744 | 123 | |
|
745 | 124 | If BEGIN is greater than END, revisions are treated in reverse |
|
746 | 125 | order. |
|
747 | 126 | |
|
748 | 127 | A range acts as a closed interval. This means that a range of 3:5 |
|
749 | 128 | gives 3, 4 and 5. Similarly, a range of 4:2 gives 4, 3, and 2. |
|
750 | 129 | |
|
751 | 130 | ENVIRONMENT VARIABLES |
|
752 | 131 | --------------------- |
|
753 | 132 | |
|
754 | 133 | HGEDITOR:: |
|
755 | 134 | This is the name of the editor to use when committing. Defaults to the |
|
756 | 135 | value of EDITOR. |
|
757 | 136 | |
|
758 | 137 | (deprecated, use .hgrc) |
|
759 | 138 | |
|
760 | 139 | HGMERGE:: |
|
761 | 140 | An executable to use for resolving merge conflicts. The program |
|
762 | 141 | will be executed with three arguments: local file, remote file, |
|
763 | 142 | ancestor file. |
|
764 | 143 | |
|
765 | 144 | The default program is "hgmerge", which is a shell script provided |
|
766 | 145 | by Mercurial with some sensible defaults. |
|
767 | 146 | |
|
768 | 147 | (deprecated, use .hgrc) |
|
769 | 148 | |
|
770 | 149 | HGUSER:: |
|
771 | 150 | This is the string used for the author of a commit. |
|
772 | 151 | |
|
773 | 152 | (deprecated, use .hgrc) |
|
774 | 153 | |
|
775 | 154 | EMAIL:: |
|
776 | 155 | If HGUSER is not set, this will be used as the author for a commit. |
|
777 | 156 | |
|
778 | 157 | LOGNAME:: |
|
779 | 158 | If neither HGUSER nor EMAIL is set, LOGNAME will be used (with |
|
780 | 159 | '@hostname' appended) as the author value for a commit. |
|
781 | 160 | |
|
782 | 161 | EDITOR:: |
|
783 | 162 | This is the name of the editor used in the hgmerge script. It will be |
|
784 | 163 | used for commit messages if HGEDITOR isn't set. Defaults to 'vi'. |
|
785 | 164 | |
|
786 | 165 | PYTHONPATH:: |
|
787 | 166 | This is used by Python to find imported modules and may need to be set |
|
788 | 167 | appropriately if Mercurial is not installed system-wide. |
|
789 | 168 | |
|
790 | 169 | FILES |
|
791 | 170 | ----- |
|
792 | 171 | .hgignore:: |
|
793 | 172 | This file contains regular expressions (one per line) that describe file |
|
794 | 173 | names that should be ignored by hg. |
|
795 | 174 | |
|
796 | 175 | .hgtags:: |
|
797 | 176 | This file contains changeset hash values and text tag names (one of each |
|
798 | 177 | separated by spaces) that correspond to tagged versions of the repository |
|
799 | 178 | contents. |
|
800 | 179 | |
|
801 | 180 | /etc/mercurial/hgrc, $HOME/.hgrc, .hg/hgrc:: |
|
802 | 181 | This file contains defaults and configuration. Values in .hg/hgrc |
|
803 | 182 | override those in $HOME/.hgrc, and these override settings made in the |
|
804 | 183 | global /etc/mercurial/hgrc configuration. See hgrc(5) for details of |
|
805 | 184 | the contents and format of these files. |
|
806 | 185 | |
|
807 | 186 | BUGS |
|
808 | 187 | ---- |
|
809 | 188 | Probably lots, please post them to the mailing list (See Resources below) |
|
810 | 189 | when you find them. |
|
811 | 190 | |
|
812 | 191 | SEE ALSO |
|
813 | 192 | -------- |
|
814 | 193 | hgrc(5) |
|
815 | 194 | |
|
816 | 195 | AUTHOR |
|
817 | 196 | ------ |
|
818 | 197 | Written by Matt Mackall <mpm@selenic.com> |
|
819 | 198 | |
|
820 | 199 | RESOURCES |
|
821 | 200 | --------- |
|
822 | 201 | http://selenic.com/mercurial[Main Web Site] |
|
823 | 202 | |
|
824 | 203 | http://www.serpentine.com/mercurial[Wiki site] |
|
825 | 204 | |
|
826 | 205 | http://selenic.com/hg[Source code repository] |
|
827 | 206 | |
|
828 | 207 | http://selenic.com/mailman/listinfo/mercurial[Mailing list] |
|
829 | 208 | |
|
830 | 209 | COPYING |
|
831 | 210 | ------- |
|
832 | 211 | Copyright \(C) 2005 Matt Mackall. |
|
833 | 212 | Free use of this software is granted under the terms of the GNU General |
|
834 | 213 | Public License (GPL). |
General Comments 0
You need to be logged in to leave comments.
Login now