Show More
@@ -24,8 +24,8 b' reflect file status, the qseries command' | |||||
24 | additions, removals, diff headers, and trailing whitespace. |
|
24 | additions, removals, diff headers, and trailing whitespace. | |
25 |
|
25 | |||
26 | Other effects in addition to color, like bold and underlined text, are also |
|
26 | Other effects in addition to color, like bold and underlined text, are also | |
27 |
available. |
|
27 | available. Effects are rendered with the ECMA-48 SGR control function (aka | |
28 |
ANSI escape codes). |
|
28 | ANSI escape codes). This module also provides the render_text function, | |
29 | which can be used to add effects to any text. |
|
29 | which can be used to add effects to any text. | |
30 |
|
30 | |||
31 | To enable this extension, add this to your .hgrc file: |
|
31 | To enable this extension, add this to your .hgrc file: |
@@ -37,16 +37,16 b' def convert(ui, src, dest=None, revmapfi' | |||||
37 | understood by the source). |
|
37 | understood by the source). | |
38 |
|
38 | |||
39 | If no destination directory name is specified, it defaults to the |
|
39 | If no destination directory name is specified, it defaults to the | |
40 |
basename of the source with '-hg' appended. |
|
40 | basename of the source with '-hg' appended. If the destination | |
41 | repository doesn't exist, it will be created. |
|
41 | repository doesn't exist, it will be created. | |
42 |
|
42 | |||
43 | If <REVMAP> isn't given, it will be put in a default location |
|
43 | If <REVMAP> isn't given, it will be put in a default location | |
44 |
(<dest>/.hg/shamap by default). |
|
44 | (<dest>/.hg/shamap by default). The <REVMAP> is a simple text | |
45 | file that maps each source commit ID to the destination ID for |
|
45 | file that maps each source commit ID to the destination ID for | |
46 | that revision, like so: |
|
46 | that revision, like so: | |
47 | <source ID> <destination ID> |
|
47 | <source ID> <destination ID> | |
48 |
|
48 | |||
49 |
If the file doesn't exist, it's automatically created. |
|
49 | If the file doesn't exist, it's automatically created. It's updated | |
50 | on each commit copied, so convert-repo can be interrupted and can |
|
50 | on each commit copied, so convert-repo can be interrupted and can | |
51 | be run repeatedly to copy new commits. |
|
51 | be run repeatedly to copy new commits. | |
52 |
|
52 | |||
@@ -57,7 +57,7 b' def convert(ui, src, dest=None, revmapfi' | |||||
57 | srcauthor=whatever string you want |
|
57 | srcauthor=whatever string you want | |
58 |
|
58 | |||
59 | The filemap is a file that allows filtering and remapping of files |
|
59 | The filemap is a file that allows filtering and remapping of files | |
60 |
and directories. |
|
60 | and directories. Comment lines start with '#'. Each line can | |
61 | contain one of the following directives: |
|
61 | contain one of the following directives: | |
62 |
|
62 | |||
63 | include path/to/file |
|
63 | include path/to/file | |
@@ -70,18 +70,18 b' def convert(ui, src, dest=None, revmapfi' | |||||
70 | directory, to be included in the destination repository, and the |
|
70 | directory, to be included in the destination repository, and the | |
71 | exclusion of all other files and dirs not explicitely included. |
|
71 | exclusion of all other files and dirs not explicitely included. | |
72 | The 'exclude' directive causes files or directories to be omitted. |
|
72 | The 'exclude' directive causes files or directories to be omitted. | |
73 |
The 'rename' directive renames a file or directory. |
|
73 | The 'rename' directive renames a file or directory. To rename from a | |
74 | subdirectory into the root of the repository, use '.' as the path to |
|
74 | subdirectory into the root of the repository, use '.' as the path to | |
75 | rename to. |
|
75 | rename to. | |
76 |
|
76 | |||
77 | The splicemap is a file that allows insertion of synthetic |
|
77 | The splicemap is a file that allows insertion of synthetic | |
78 |
history, letting you specify the parents of a revision. |
|
78 | history, letting you specify the parents of a revision. This is | |
79 | useful if you want to e.g. give a Subversion merge two parents, or |
|
79 | useful if you want to e.g. give a Subversion merge two parents, or | |
80 |
graft two disconnected series of history together. |
|
80 | graft two disconnected series of history together. Each entry | |
81 | contains a key, followed by a space, followed by one or two |
|
81 | contains a key, followed by a space, followed by one or two | |
82 |
comma-separated values. |
|
82 | comma-separated values. The key is the revision ID in the | |
83 | source revision control system whose parents should be modified |
|
83 | source revision control system whose parents should be modified | |
84 |
(same format as a key in .hg/shamap). |
|
84 | (same format as a key in .hg/shamap). The values are the revision | |
85 | IDs (in either the source or destination revision control system) |
|
85 | IDs (in either the source or destination revision control system) | |
86 | that should be used as the new parents for that node. |
|
86 | that should be used as the new parents for that node. | |
87 |
|
87 |
@@ -7,7 +7,7 b'' | |||||
7 |
|
7 | |||
8 | ''' |
|
8 | ''' | |
9 | The `extdiff' Mercurial extension allows you to use external programs |
|
9 | The `extdiff' Mercurial extension allows you to use external programs | |
10 |
to compare revisions, or revision with working dir. |
|
10 | to compare revisions, or revision with working dir. The external diff | |
11 | programs are called with a configurable set of options and two |
|
11 | programs are called with a configurable set of options and two | |
12 | non-option arguments: paths to directories containing snapshots of |
|
12 | non-option arguments: paths to directories containing snapshots of | |
13 | files to compare. |
|
13 | files to compare. | |
@@ -40,7 +40,7 b' you do not need to type "hg extdiff -p k' | |||||
40 | vimdiff = gvim -f '+next' '+execute "DirDiff" argv(0) argv(1)' |
|
40 | vimdiff = gvim -f '+next' '+execute "DirDiff" argv(0) argv(1)' | |
41 |
|
41 | |||
42 | You can use -I/-X and list of file or directory names like normal |
|
42 | You can use -I/-X and list of file or directory names like normal | |
43 |
"hg diff" command. |
|
43 | "hg diff" command. The `extdiff' extension makes snapshots of only | |
44 | needed files, so running the external diff program will actually be |
|
44 | needed files, so running the external diff program will actually be | |
45 | pretty fast (at least faster than having to compare the entire tree). |
|
45 | pretty fast (at least faster than having to compare the entire tree). | |
46 | ''' |
|
46 | ''' | |
@@ -191,12 +191,12 b' def extdiff(ui, repo, *pats, **opts):' | |||||
191 | '''use external program to diff repository (or selected files) |
|
191 | '''use external program to diff repository (or selected files) | |
192 |
|
192 | |||
193 | Show differences between revisions for the specified files, using |
|
193 | Show differences between revisions for the specified files, using | |
194 |
an external program. |
|
194 | an external program. The default program used is diff, with | |
195 | default options "-Npru". |
|
195 | default options "-Npru". | |
196 |
|
196 | |||
197 |
To select a different program, use the -p option. |
|
197 | To select a different program, use the -p option. The program | |
198 |
will be passed the names of two directories to compare. |
|
198 | will be passed the names of two directories to compare. To pass | |
199 |
additional options to the program, use the -o option. |
|
199 | additional options to the program, use the -o option. These will | |
200 | be passed before the names of the directories to compare. |
|
200 | be passed before the names of the directories to compare. | |
201 |
|
201 | |||
202 | When two revision arguments are given, then changes are |
|
202 | When two revision arguments are given, then changes are |
@@ -17,12 +17,12 b" def fetch(ui, repo, source='default', **" | |||||
17 | or URL and adds them to the local repository. |
|
17 | or URL and adds them to the local repository. | |
18 |
|
18 | |||
19 | If the pulled changes add a new branch head, the head is automatically |
|
19 | If the pulled changes add a new branch head, the head is automatically | |
20 |
merged, and the result of the merge is committed. |
|
20 | merged, and the result of the merge is committed. Otherwise, the | |
21 | working directory is updated to include the new changes. |
|
21 | working directory is updated to include the new changes. | |
22 |
|
22 | |||
23 | When a merge occurs, the newly pulled changes are assumed to be |
|
23 | When a merge occurs, the newly pulled changes are assumed to be | |
24 |
"authoritative". |
|
24 | "authoritative". The head of the new changes is used as the first | |
25 |
parent, with local changes as the second. |
|
25 | parent, with local changes as the second. To switch the merge | |
26 | order, use --switch-parent. |
|
26 | order, use --switch-parent. | |
27 |
|
27 | |||
28 | See 'hg help dates' for a list of formats valid for -d/--date. |
|
28 | See 'hg help dates' for a list of formats valid for -d/--date. |
@@ -8,11 +8,11 b'' | |||||
8 | '''patch management and development |
|
8 | '''patch management and development | |
9 |
|
9 | |||
10 | This extension lets you work with a stack of patches in a Mercurial |
|
10 | This extension lets you work with a stack of patches in a Mercurial | |
11 |
repository. |
|
11 | repository. It manages two stacks of patches - all known patches, and | |
12 | applied patches (subset of known patches). |
|
12 | applied patches (subset of known patches). | |
13 |
|
13 | |||
14 | Known patches are represented as patch files in the .hg/patches |
|
14 | Known patches are represented as patch files in the .hg/patches | |
15 |
directory. |
|
15 | directory. Applied patches are both patch files and changesets. | |
16 |
|
16 | |||
17 | Common tasks (use "hg help command" for more details): |
|
17 | Common tasks (use "hg help command" for more details): | |
18 |
|
18 | |||
@@ -1716,14 +1716,14 b' def init(ui, repo, **opts):' | |||||
1716 | def clone(ui, source, dest=None, **opts): |
|
1716 | def clone(ui, source, dest=None, **opts): | |
1717 | '''clone main and patch repository at same time |
|
1717 | '''clone main and patch repository at same time | |
1718 |
|
1718 | |||
1719 |
If source is local, destination will have no patches applied. |
|
1719 | If source is local, destination will have no patches applied. If | |
1720 | source is remote, this command can not check if patches are |
|
1720 | source is remote, this command can not check if patches are | |
1721 | applied in source, so cannot guarantee that patches are not |
|
1721 | applied in source, so cannot guarantee that patches are not | |
1722 |
applied in destination. |
|
1722 | applied in destination. If you clone remote repository, be sure | |
1723 | before that it has no patches applied. |
|
1723 | before that it has no patches applied. | |
1724 |
|
1724 | |||
1725 | Source patch repository is looked for in <src>/.hg/patches by |
|
1725 | Source patch repository is looked for in <src>/.hg/patches by | |
1726 |
default. |
|
1726 | default. Use -p <url> to change. | |
1727 |
|
1727 | |||
1728 | The patch directory must be a nested mercurial repository, as |
|
1728 | The patch directory must be a nested mercurial repository, as | |
1729 | would be created by qinit -c. |
|
1729 | would be created by qinit -c. |
@@ -37,16 +37,16 b' Then you can use the "hg email" command ' | |||||
37 | as a patchbomb. |
|
37 | as a patchbomb. | |
38 |
|
38 | |||
39 | To avoid sending patches prematurely, it is a good idea to first run |
|
39 | To avoid sending patches prematurely, it is a good idea to first run | |
40 |
the "email" command with the "-n" option (test only). |
|
40 | the "email" command with the "-n" option (test only). You will be | |
41 | prompted for an email recipient address, a subject an an introductory |
|
41 | prompted for an email recipient address, a subject an an introductory | |
42 |
message describing the patches of your patchbomb. |
|
42 | message describing the patches of your patchbomb. Then when all is | |
43 | done, patchbomb messages are displayed. If PAGER environment variable |
|
43 | done, patchbomb messages are displayed. If PAGER environment variable | |
44 | is set, your pager will be fired up once for each patchbomb message, so |
|
44 | is set, your pager will be fired up once for each patchbomb message, so | |
45 | you can verify everything is alright. |
|
45 | you can verify everything is alright. | |
46 |
|
46 | |||
47 |
The "-m" (mbox) option is also very useful. |
|
47 | The "-m" (mbox) option is also very useful. Instead of previewing | |
48 | each patchbomb message in a pager or sending the messages directly, |
|
48 | each patchbomb message in a pager or sending the messages directly, | |
49 |
it will create a UNIX mailbox file with the patch emails. |
|
49 | it will create a UNIX mailbox file with the patch emails. This | |
50 | mailbox file can be previewed with any mail user agent which supports |
|
50 | mailbox file can be previewed with any mail user agent which supports | |
51 | UNIX mbox files, e.g. with mutt: |
|
51 | UNIX mbox files, e.g. with mutt: | |
52 |
|
52 | |||
@@ -173,13 +173,13 b' def patchbomb(ui, repo, *revs, **opts):' | |||||
173 | '''send changesets by email |
|
173 | '''send changesets by email | |
174 |
|
174 | |||
175 | By default, diffs are sent in the format generated by hg export, |
|
175 | By default, diffs are sent in the format generated by hg export, | |
176 |
one per message. |
|
176 | one per message. The series starts with a "[PATCH 0 of N]" | |
177 | introduction, which describes the series as a whole. |
|
177 | introduction, which describes the series as a whole. | |
178 |
|
178 | |||
179 | Each patch email has a Subject line of "[PATCH M of N] ...", using |
|
179 | Each patch email has a Subject line of "[PATCH M of N] ...", using | |
180 | the first line of the changeset description as the subject text. |
|
180 | the first line of the changeset description as the subject text. | |
181 |
The message contains two or three body parts. |
|
181 | The message contains two or three body parts. First, the rest of | |
182 |
the changeset description. |
|
182 | the changeset description. Next, (optionally) if the diffstat | |
183 | program is installed, the result of running diffstat on the patch. |
|
183 | program is installed, the result of running diffstat on the patch. | |
184 | Finally, the patch itself, as generated by "hg export". |
|
184 | Finally, the patch itself, as generated by "hg export". | |
185 |
|
185 |
@@ -353,7 +353,7 b' def record(ui, repo, *pats, **opts):' | |||||
353 |
|
353 | |||
354 | You will be prompted for whether to record changes to each |
|
354 | You will be prompted for whether to record changes to each | |
355 | modified file, and for files with multiple changes, for each |
|
355 | modified file, and for files with multiple changes, for each | |
356 |
change to use. |
|
356 | change to use. For each query, the following responses are | |
357 | possible: |
|
357 | possible: | |
358 |
|
358 | |||
359 | y - record this change |
|
359 | y - record this change |
@@ -13,7 +13,7 b'' | |||||
13 | Some MBCS encodings are not good for some path operations |
|
13 | Some MBCS encodings are not good for some path operations | |
14 | (i.e. splitting path, case conversion, etc.) with its encoded bytes. |
|
14 | (i.e. splitting path, case conversion, etc.) with its encoded bytes. | |
15 | We call such a encoding (i.e. shift_jis and big5) as "problematic |
|
15 | We call such a encoding (i.e. shift_jis and big5) as "problematic | |
16 |
encoding". |
|
16 | encoding". This extension can be used to fix the issue with those | |
17 | encodings by wrapping some functions to convert to unicode string |
|
17 | encodings by wrapping some functions to convert to unicode string | |
18 | before path operation. |
|
18 | before path operation. | |
19 |
|
19 |
@@ -591,10 +591,10 b' def clone(ui, source, dest=None, **opts)' | |||||
591 |
|
591 | |||
592 | $ cp -al REPO REPOCLONE |
|
592 | $ cp -al REPO REPOCLONE | |
593 |
|
593 | |||
594 |
This is the fastest way to clone, but it is not always safe. |
|
594 | This is the fastest way to clone, but it is not always safe. The | |
595 | operation is not atomic (making sure REPO is not modified during |
|
595 | operation is not atomic (making sure REPO is not modified during | |
596 | the operation is up to you) and you have to make sure your editor |
|
596 | the operation is up to you) and you have to make sure your editor | |
597 |
breaks hardlinks (Emacs and most Linux Kernel tools do so). |
|
597 | breaks hardlinks (Emacs and most Linux Kernel tools do so). Also, | |
598 | this is not compatible with certain extensions that place their |
|
598 | this is not compatible with certain extensions that place their | |
599 | metadata under the .hg directory, such as mq. |
|
599 | metadata under the .hg directory, such as mq. | |
600 |
|
600 | |||
@@ -609,8 +609,8 b' def clone(ui, source, dest=None, **opts)' | |||||
609 | def commit(ui, repo, *pats, **opts): |
|
609 | def commit(ui, repo, *pats, **opts): | |
610 | """commit the specified files or all outstanding changes |
|
610 | """commit the specified files or all outstanding changes | |
611 |
|
611 | |||
612 |
Commit changes to the given files into the repository. |
|
612 | Commit changes to the given files into the repository. Unlike a | |
613 |
centralized RCS, this operation is a local operation. |
|
613 | centralized RCS, this operation is a local operation. See hg push | |
614 | for means to actively distribute your changes. |
|
614 | for means to actively distribute your changes. | |
615 |
|
615 | |||
616 | If a list of files is omitted, all changes reported by "hg status" |
|
616 | If a list of files is omitted, all changes reported by "hg status" | |
@@ -2915,7 +2915,7 b' def update(ui, repo, node=None, rev=None' | |||||
2915 | the revision to remove the working copy (like 'hg clone -U'). |
|
2915 | the revision to remove the working copy (like 'hg clone -U'). | |
2916 |
|
2916 | |||
2917 | When the working dir contains no uncommitted changes, it will be |
|
2917 | When the working dir contains no uncommitted changes, it will be | |
2918 |
replaced by the state of the requested revision from the repo. |
|
2918 | replaced by the state of the requested revision from the repo. When | |
2919 | the requested revision is on a different branch, the working dir |
|
2919 | the requested revision is on a different branch, the working dir | |
2920 | will additionally be switched to that branch. |
|
2920 | will additionally be switched to that branch. | |
2921 |
|
2921 | |||
@@ -2927,7 +2927,7 b' def update(ui, repo, node=None, rev=None' | |||||
2927 | the parent revision and requested revision are on the same branch, |
|
2927 | the parent revision and requested revision are on the same branch, | |
2928 | and one of them is an ancestor of the other, then the new working |
|
2928 | and one of them is an ancestor of the other, then the new working | |
2929 | directory will contain the requested revision merged with the |
|
2929 | directory will contain the requested revision merged with the | |
2930 |
uncommitted changes. |
|
2930 | uncommitted changes. Otherwise, the update will fail with a | |
2931 | suggestion to use 'merge' or 'update -C' instead. |
|
2931 | suggestion to use 'merge' or 'update -C' instead. | |
2932 |
|
2932 | |||
2933 | If you want to update just one file to an older revision, use revert. |
|
2933 | If you want to update just one file to an older revision, use revert. |
@@ -22,16 +22,16 b' convert a foreign SCM repository to a Me' | |||||
22 | understood by the source). |
|
22 | understood by the source). | |
23 |
|
23 | |||
24 | If no destination directory name is specified, it defaults to the |
|
24 | If no destination directory name is specified, it defaults to the | |
25 |
basename of the source with '-hg' appended. |
|
25 | basename of the source with '-hg' appended. If the destination | |
26 | repository doesn't exist, it will be created. |
|
26 | repository doesn't exist, it will be created. | |
27 |
|
27 | |||
28 | If <REVMAP> isn't given, it will be put in a default location |
|
28 | If <REVMAP> isn't given, it will be put in a default location | |
29 |
(<dest>/.hg/shamap by default). |
|
29 | (<dest>/.hg/shamap by default). The <REVMAP> is a simple text | |
30 | file that maps each source commit ID to the destination ID for |
|
30 | file that maps each source commit ID to the destination ID for | |
31 | that revision, like so: |
|
31 | that revision, like so: | |
32 | <source ID> <destination ID> |
|
32 | <source ID> <destination ID> | |
33 |
|
33 | |||
34 |
If the file doesn't exist, it's automatically created. |
|
34 | If the file doesn't exist, it's automatically created. It's updated | |
35 | on each commit copied, so convert-repo can be interrupted and can |
|
35 | on each commit copied, so convert-repo can be interrupted and can | |
36 | be run repeatedly to copy new commits. |
|
36 | be run repeatedly to copy new commits. | |
37 |
|
37 | |||
@@ -42,7 +42,7 b' convert a foreign SCM repository to a Me' | |||||
42 | srcauthor=whatever string you want |
|
42 | srcauthor=whatever string you want | |
43 |
|
43 | |||
44 | The filemap is a file that allows filtering and remapping of files |
|
44 | The filemap is a file that allows filtering and remapping of files | |
45 |
and directories. |
|
45 | and directories. Comment lines start with '#'. Each line can | |
46 | contain one of the following directives: |
|
46 | contain one of the following directives: | |
47 |
|
47 | |||
48 | include path/to/file |
|
48 | include path/to/file | |
@@ -55,18 +55,18 b' convert a foreign SCM repository to a Me' | |||||
55 | directory, to be included in the destination repository, and the |
|
55 | directory, to be included in the destination repository, and the | |
56 | exclusion of all other files and dirs not explicitely included. |
|
56 | exclusion of all other files and dirs not explicitely included. | |
57 | The 'exclude' directive causes files or directories to be omitted. |
|
57 | The 'exclude' directive causes files or directories to be omitted. | |
58 |
The 'rename' directive renames a file or directory. |
|
58 | The 'rename' directive renames a file or directory. To rename from a | |
59 | subdirectory into the root of the repository, use '.' as the path to |
|
59 | subdirectory into the root of the repository, use '.' as the path to | |
60 | rename to. |
|
60 | rename to. | |
61 |
|
61 | |||
62 | The splicemap is a file that allows insertion of synthetic |
|
62 | The splicemap is a file that allows insertion of synthetic | |
63 |
history, letting you specify the parents of a revision. |
|
63 | history, letting you specify the parents of a revision. This is | |
64 | useful if you want to e.g. give a Subversion merge two parents, or |
|
64 | useful if you want to e.g. give a Subversion merge two parents, or | |
65 |
graft two disconnected series of history together. |
|
65 | graft two disconnected series of history together. Each entry | |
66 | contains a key, followed by a space, followed by one or two |
|
66 | contains a key, followed by a space, followed by one or two | |
67 |
comma-separated values. |
|
67 | comma-separated values. The key is the revision ID in the | |
68 | source revision control system whose parents should be modified |
|
68 | source revision control system whose parents should be modified | |
69 |
(same format as a key in .hg/shamap). |
|
69 | (same format as a key in .hg/shamap). The values are the revision | |
70 | IDs (in either the source or destination revision control system) |
|
70 | IDs (in either the source or destination revision control system) | |
71 | that should be used as the new parents for that node. |
|
71 | that should be used as the new parents for that node. | |
72 |
|
72 |
@@ -2,11 +2,11 b'' | |||||
2 | mq extension - patch management and development |
|
2 | mq extension - patch management and development | |
3 |
|
3 | |||
4 | This extension lets you work with a stack of patches in a Mercurial |
|
4 | This extension lets you work with a stack of patches in a Mercurial | |
5 |
repository. |
|
5 | repository. It manages two stacks of patches - all known patches, and | |
6 | applied patches (subset of known patches). |
|
6 | applied patches (subset of known patches). | |
7 |
|
7 | |||
8 | Known patches are represented as patch files in the .hg/patches |
|
8 | Known patches are represented as patch files in the .hg/patches | |
9 |
directory. |
|
9 | directory. Applied patches are both patch files and changesets. | |
10 |
|
10 | |||
11 | Common tasks (use "hg help command" for more details): |
|
11 | Common tasks (use "hg help command" for more details): | |
12 |
|
12 |
@@ -10,7 +10,7 b' interactively select changes to commit' | |||||
10 |
|
10 | |||
11 | You will be prompted for whether to record changes to each |
|
11 | You will be prompted for whether to record changes to each | |
12 | modified file, and for files with multiple changes, for each |
|
12 | modified file, and for files with multiple changes, for each | |
13 |
change to use. |
|
13 | change to use. For each query, the following responses are | |
14 | possible: |
|
14 | possible: | |
15 |
|
15 | |||
16 | y - record this change |
|
16 | y - record this change |
General Comments 0
You need to be logged in to leave comments.
Login now