Mercurial > hg
annotate tests/test-convert.t @ 31454:a5bad127128d
branchmap: handle nullrev in setcachedata
906be86990 recently changed to switch from:
self._rbcrevs[rbcrevidx:rbcrevidx + _rbcrecsize] = rec
to
pack_into(_rbcrecfmt, self._rbcrevs, rbcrevidx, node, branchidx)
This causes an exception if rbcrevidx is -1 (i.e. the nullrev). The old code
handled this because python handles out of bound sets to arrays gracefully. The
new code throws because the self._rbcrevs buffer isn't long enough to write 8
bytes to. Normally it would've been resized by the immediately preceding line,
but because the 0 length buffer is greater than the idx (-1) times the size, no
resize happens.
Setting the branch for the nullrev doesn't make sense anyway, so let's skip it.
This was caught by external tests in the Facebook extensions repo, but I've
added a test here that catches the issue.
author | Durham Goode <durham@fb.com> |
---|---|
date | Wed, 15 Mar 2017 15:48:57 -0700 |
parents | c5bf2e8ec18c |
children | 3a57bfd369d4 |
rev | line source |
---|---|
12510 | 1 $ cat >> $HGRCPATH <<EOF |
2 > [extensions] | |
3 > convert= | |
4 > [convert] | |
5 > hg.saverev=False | |
6 > EOF | |
7 $ hg help convert | |
8 hg convert [OPTION]... SOURCE [DEST [REVMAP]] | |
9 | |
10 convert a foreign SCM repository to a Mercurial one. | |
11 | |
12 Accepted source formats [identifiers]: | |
13 | |
14 - Mercurial [hg] | |
15 - CVS [cvs] | |
16 - Darcs [darcs] | |
17 - git [git] | |
18 - Subversion [svn] | |
19 - Monotone [mtn] | |
20 - GNU Arch [gnuarch] | |
21 - Bazaar [bzr] | |
22 - Perforce [p4] | |
23 | |
24 Accepted destination formats [identifiers]: | |
25 | |
26 - Mercurial [hg] | |
27 - Subversion [svn] (history on branches is not preserved) | |
28 | |
29 If no revision is given, all revisions will be converted. Otherwise, | |
30 convert will only import up to the named revision (given in a format | |
31 understood by the source). | |
32 | |
33 If no destination directory name is specified, it defaults to the basename | |
34 of the source with "-hg" appended. If the destination repository doesn't | |
35 exist, it will be created. | |
36 | |
37 By default, all sources except Mercurial will use --branchsort. Mercurial | |
38 uses --sourcesort to preserve original revision numbers order. Sort modes | |
39 have the following effects: | |
40 | |
41 --branchsort convert from parent to child revision when possible, which | |
13011
4936a04b6792
minirst: improved support for option lists.
Erik Zielke <ez@aragost.com>
parents:
12924
diff
changeset
|
42 means branches are usually converted one after the other. |
4936a04b6792
minirst: improved support for option lists.
Erik Zielke <ez@aragost.com>
parents:
12924
diff
changeset
|
43 It generates more compact repositories. |
12510 | 44 --datesort sort revisions by date. Converted repositories have good- |
45 looking changelogs but are often an order of magnitude | |
46 larger than the same ones generated by --branchsort. | |
47 --sourcesort try to preserve source revisions order, only supported by | |
48 Mercurial sources. | |
18819
05acdf8e1f23
convert: add closesort algorithm to mercurial sources
Constantine Linnick <theaspect@gmail.com>
parents:
18324
diff
changeset
|
49 --closesort try to move closed revisions as close as possible to parent |
05acdf8e1f23
convert: add closesort algorithm to mercurial sources
Constantine Linnick <theaspect@gmail.com>
parents:
18324
diff
changeset
|
50 branches, only supported by Mercurial sources. |
12510 | 51 |
12924
2f1174b2c4fa
convert: better ReST markup in docstring
Martin Geisler <mg@aragost.com>
parents:
12922
diff
changeset
|
52 If "REVMAP" isn't given, it will be put in a default location |
2f1174b2c4fa
convert: better ReST markup in docstring
Martin Geisler <mg@aragost.com>
parents:
12922
diff
changeset
|
53 ("<dest>/.hg/shamap" by default). The "REVMAP" is a simple text file that |
12510 | 54 maps each source commit ID to the destination ID for that revision, like |
55 so: | |
56 | |
57 <source ID> <destination ID> | |
58 | |
59 If the file doesn't exist, it's automatically created. It's updated on | |
27729
58f8b29c37ff
minirst: change hgrole to use single quotes
timeless <timeless@mozdev.org>
parents:
26077
diff
changeset
|
60 each commit copied, so 'hg convert' can be interrupted and can be run |
12510 | 61 repeatedly to copy new commits. |
62 | |
63 The authormap is a simple text file that maps each source commit author to | |
64 a destination commit author. It is handy for source SCMs that use unix | |
17424
e7cfe3587ea4
fix trivial spelling errors
Mads Kiilerich <mads@kiilerich.com>
parents:
17345
diff
changeset
|
65 logins to identify authors (e.g.: CVS). One line per author mapping and |
e7cfe3587ea4
fix trivial spelling errors
Mads Kiilerich <mads@kiilerich.com>
parents:
17345
diff
changeset
|
66 the line format is: |
12510 | 67 |
68 source author = destination author | |
69 | |
70 Empty lines and lines starting with a "#" are ignored. | |
71 | |
72 The filemap is a file that allows filtering and remapping of files and | |
73 directories. Each line can contain one of the following directives: | |
74 | |
75 include path/to/file-or-dir | |
76 | |
77 exclude path/to/file-or-dir | |
78 | |
79 rename path/to/source path/to/destination | |
80 | |
81 Comment lines start with "#". A specified path matches if it equals the | |
82 full relative name of a file or one of its parent directories. The | |
83 "include" or "exclude" directive with the longest matching path applies, | |
84 so line order does not matter. | |
85 | |
86 The "include" directive causes a file, or all files under a directory, to | |
20784
7f4cf938643d
convert: more clear documentation of the 'include' default of a 'include .'
Mads Kiilerich <madski@unity3d.com>
parents:
20008
diff
changeset
|
87 be included in the destination repository. The default if there are no |
7f4cf938643d
convert: more clear documentation of the 'include' default of a 'include .'
Mads Kiilerich <madski@unity3d.com>
parents:
20008
diff
changeset
|
88 "include" statements is to include everything. If there are any "include" |
7f4cf938643d
convert: more clear documentation of the 'include' default of a 'include .'
Mads Kiilerich <madski@unity3d.com>
parents:
20008
diff
changeset
|
89 statements, nothing else is included. The "exclude" directive causes files |
7f4cf938643d
convert: more clear documentation of the 'include' default of a 'include .'
Mads Kiilerich <madski@unity3d.com>
parents:
20008
diff
changeset
|
90 or directories to be omitted. The "rename" directive renames a file or |
7f4cf938643d
convert: more clear documentation of the 'include' default of a 'include .'
Mads Kiilerich <madski@unity3d.com>
parents:
20008
diff
changeset
|
91 directory if it is converted. To rename from a subdirectory into the root |
7f4cf938643d
convert: more clear documentation of the 'include' default of a 'include .'
Mads Kiilerich <madski@unity3d.com>
parents:
20008
diff
changeset
|
92 of the repository, use "." as the path to rename to. |
12510 | 93 |
22300
35ab037de989
convert: introduce --full for converting all files
Mads Kiilerich <madski@unity3d.com>
parents:
22110
diff
changeset
|
94 "--full" will make sure the converted changesets contain exactly the right |
35ab037de989
convert: introduce --full for converting all files
Mads Kiilerich <madski@unity3d.com>
parents:
22110
diff
changeset
|
95 files with the right content. It will make a full conversion of all files, |
35ab037de989
convert: introduce --full for converting all files
Mads Kiilerich <madski@unity3d.com>
parents:
22110
diff
changeset
|
96 not just the ones that have changed. Files that already are correct will |
35ab037de989
convert: introduce --full for converting all files
Mads Kiilerich <madski@unity3d.com>
parents:
22110
diff
changeset
|
97 not be changed. This can be used to apply filemap changes when converting |
35ab037de989
convert: introduce --full for converting all files
Mads Kiilerich <madski@unity3d.com>
parents:
22110
diff
changeset
|
98 incrementally. This is currently only supported for Mercurial and |
35ab037de989
convert: introduce --full for converting all files
Mads Kiilerich <madski@unity3d.com>
parents:
22110
diff
changeset
|
99 Subversion. |
35ab037de989
convert: introduce --full for converting all files
Mads Kiilerich <madski@unity3d.com>
parents:
22110
diff
changeset
|
100 |
12510 | 101 The splicemap is a file that allows insertion of synthetic history, |
102 letting you specify the parents of a revision. This is useful if you want | |
103 to e.g. give a Subversion merge two parents, or graft two disconnected | |
104 series of history together. Each entry contains a key, followed by a | |
105 space, followed by one or two comma-separated values: | |
106 | |
107 key parent1, parent2 | |
108 | |
109 The key is the revision ID in the source revision control system whose | |
110 parents should be modified (same format as a key in .hg/shamap). The | |
111 values are the revision IDs (in either the source or destination revision | |
112 control system) that should be used as the new parents for that node. For | |
113 example, if you have merged "release-1.0" into "trunk", then you should | |
114 specify the revision on "trunk" as the first parent and the one on the | |
115 "release-1.0" branch as the second. | |
116 | |
117 The branchmap is a file that allows you to rename a branch when it is | |
118 being brought in from whatever external repository. When used in | |
119 conjunction with a splicemap, it allows for a powerful combination to help | |
120 fix even the most badly mismanaged repositories and turn them into nicely | |
121 structured Mercurial repositories. The branchmap contains lines of the | |
122 form: | |
123 | |
124 original_branch_name new_branch_name | |
125 | |
126 where "original_branch_name" is the name of the branch in the source | |
127 repository, and "new_branch_name" is the name of the branch is the | |
128 destination repository. No whitespace is allowed in the branch names. This | |
129 can be used to (for instance) move code in one repository from "default" | |
130 to a named branch. | |
131 | |
132 Mercurial Source | |
17267
979b107eaea2
doc: unify section level between help topics
FUJIWARA Katsunori <foozy@lares.dti.ne.jp>
parents:
17251
diff
changeset
|
133 ################ |
12510 | 134 |
12922
58f0c60b7f40
convert: use field list instead of option list in help
Erik Zielke <ez@aragost.com>
parents:
12787
diff
changeset
|
135 The Mercurial source recognizes the following configuration options, which |
58f0c60b7f40
convert: use field list instead of option list in help
Erik Zielke <ez@aragost.com>
parents:
12787
diff
changeset
|
136 you can set on the command line with "--config": |
12510 | 137 |
12922
58f0c60b7f40
convert: use field list instead of option list in help
Erik Zielke <ez@aragost.com>
parents:
12787
diff
changeset
|
138 convert.hg.ignoreerrors |
15861
ee8f5e4ce7b8
minirst: simplify and standardize field list formatting
Olav Reinert <seroton10@gmail.com>
parents:
15443
diff
changeset
|
139 ignore integrity errors when reading. Use it to fix |
ee8f5e4ce7b8
minirst: simplify and standardize field list formatting
Olav Reinert <seroton10@gmail.com>
parents:
15443
diff
changeset
|
140 Mercurial repositories with missing revlogs, by converting |
ee8f5e4ce7b8
minirst: simplify and standardize field list formatting
Olav Reinert <seroton10@gmail.com>
parents:
15443
diff
changeset
|
141 from and to Mercurial. Default is False. |
12922
58f0c60b7f40
convert: use field list instead of option list in help
Erik Zielke <ez@aragost.com>
parents:
12787
diff
changeset
|
142 convert.hg.saverev |
15861
ee8f5e4ce7b8
minirst: simplify and standardize field list formatting
Olav Reinert <seroton10@gmail.com>
parents:
15443
diff
changeset
|
143 store original revision ID in changeset (forces target IDs |
ee8f5e4ce7b8
minirst: simplify and standardize field list formatting
Olav Reinert <seroton10@gmail.com>
parents:
15443
diff
changeset
|
144 to change). It takes a boolean argument and defaults to |
ee8f5e4ce7b8
minirst: simplify and standardize field list formatting
Olav Reinert <seroton10@gmail.com>
parents:
15443
diff
changeset
|
145 False. |
25880
6fb55c6c6562
convert: document convert.hg.startrev
Matt Harbison <matt_harbison@yahoo.com>
parents:
25787
diff
changeset
|
146 convert.hg.startrev |
6fb55c6c6562
convert: document convert.hg.startrev
Matt Harbison <matt_harbison@yahoo.com>
parents:
25787
diff
changeset
|
147 specify the initial Mercurial revision. The default is 0. |
19891
e271970b9821
convert: introduce hg.revs to replace hg.startrev and --rev with a revset
Mads Kiilerich <madski@unity3d.com>
parents:
19864
diff
changeset
|
148 convert.hg.revs |
e271970b9821
convert: introduce hg.revs to replace hg.startrev and --rev with a revset
Mads Kiilerich <madski@unity3d.com>
parents:
19864
diff
changeset
|
149 revset specifying the source revisions to convert. |
12510 | 150 |
151 CVS Source | |
17267
979b107eaea2
doc: unify section level between help topics
FUJIWARA Katsunori <foozy@lares.dti.ne.jp>
parents:
17251
diff
changeset
|
152 ########## |
12510 | 153 |
154 CVS source will use a sandbox (i.e. a checked-out copy) from CVS to | |
155 indicate the starting point of what will be converted. Direct access to | |
156 the repository files is not needed, unless of course the repository is | |
12924
2f1174b2c4fa
convert: better ReST markup in docstring
Martin Geisler <mg@aragost.com>
parents:
12922
diff
changeset
|
157 ":local:". The conversion uses the top level directory in the sandbox to |
12510 | 158 find the CVS repository, and then uses CVS rlog commands to find files to |
159 convert. This means that unless a filemap is given, all files under the | |
160 starting directory will be converted, and that any directory | |
161 reorganization in the CVS sandbox is ignored. | |
162 | |
12922
58f0c60b7f40
convert: use field list instead of option list in help
Erik Zielke <ez@aragost.com>
parents:
12787
diff
changeset
|
163 The following options can be used with "--config": |
12510 | 164 |
12922
58f0c60b7f40
convert: use field list instead of option list in help
Erik Zielke <ez@aragost.com>
parents:
12787
diff
changeset
|
165 convert.cvsps.cache |
15861
ee8f5e4ce7b8
minirst: simplify and standardize field list formatting
Olav Reinert <seroton10@gmail.com>
parents:
15443
diff
changeset
|
166 Set to False to disable remote log caching, for testing and |
ee8f5e4ce7b8
minirst: simplify and standardize field list formatting
Olav Reinert <seroton10@gmail.com>
parents:
15443
diff
changeset
|
167 debugging purposes. Default is True. |
12922
58f0c60b7f40
convert: use field list instead of option list in help
Erik Zielke <ez@aragost.com>
parents:
12787
diff
changeset
|
168 convert.cvsps.fuzz |
15861
ee8f5e4ce7b8
minirst: simplify and standardize field list formatting
Olav Reinert <seroton10@gmail.com>
parents:
15443
diff
changeset
|
169 Specify the maximum time (in seconds) that is allowed |
ee8f5e4ce7b8
minirst: simplify and standardize field list formatting
Olav Reinert <seroton10@gmail.com>
parents:
15443
diff
changeset
|
170 between commits with identical user and log message in a |
ee8f5e4ce7b8
minirst: simplify and standardize field list formatting
Olav Reinert <seroton10@gmail.com>
parents:
15443
diff
changeset
|
171 single changeset. When very large files were checked in as |
ee8f5e4ce7b8
minirst: simplify and standardize field list formatting
Olav Reinert <seroton10@gmail.com>
parents:
15443
diff
changeset
|
172 part of a changeset then the default may not be long enough. |
ee8f5e4ce7b8
minirst: simplify and standardize field list formatting
Olav Reinert <seroton10@gmail.com>
parents:
15443
diff
changeset
|
173 The default is 60. |
12922
58f0c60b7f40
convert: use field list instead of option list in help
Erik Zielke <ez@aragost.com>
parents:
12787
diff
changeset
|
174 convert.cvsps.mergeto |
15861
ee8f5e4ce7b8
minirst: simplify and standardize field list formatting
Olav Reinert <seroton10@gmail.com>
parents:
15443
diff
changeset
|
175 Specify a regular expression to which commit log messages |
ee8f5e4ce7b8
minirst: simplify and standardize field list formatting
Olav Reinert <seroton10@gmail.com>
parents:
15443
diff
changeset
|
176 are matched. If a match occurs, then the conversion process |
ee8f5e4ce7b8
minirst: simplify and standardize field list formatting
Olav Reinert <seroton10@gmail.com>
parents:
15443
diff
changeset
|
177 will insert a dummy revision merging the branch on which |
ee8f5e4ce7b8
minirst: simplify and standardize field list formatting
Olav Reinert <seroton10@gmail.com>
parents:
15443
diff
changeset
|
178 this log message occurs to the branch indicated in the |
ee8f5e4ce7b8
minirst: simplify and standardize field list formatting
Olav Reinert <seroton10@gmail.com>
parents:
15443
diff
changeset
|
179 regex. Default is "{{mergetobranch ([-\w]+)}}" |
12922
58f0c60b7f40
convert: use field list instead of option list in help
Erik Zielke <ez@aragost.com>
parents:
12787
diff
changeset
|
180 convert.cvsps.mergefrom |
15861
ee8f5e4ce7b8
minirst: simplify and standardize field list formatting
Olav Reinert <seroton10@gmail.com>
parents:
15443
diff
changeset
|
181 Specify a regular expression to which commit log messages |
ee8f5e4ce7b8
minirst: simplify and standardize field list formatting
Olav Reinert <seroton10@gmail.com>
parents:
15443
diff
changeset
|
182 are matched. If a match occurs, then the conversion process |
ee8f5e4ce7b8
minirst: simplify and standardize field list formatting
Olav Reinert <seroton10@gmail.com>
parents:
15443
diff
changeset
|
183 will add the most recent revision on the branch indicated in |
ee8f5e4ce7b8
minirst: simplify and standardize field list formatting
Olav Reinert <seroton10@gmail.com>
parents:
15443
diff
changeset
|
184 the regex as the second parent of the changeset. Default is |
ee8f5e4ce7b8
minirst: simplify and standardize field list formatting
Olav Reinert <seroton10@gmail.com>
parents:
15443
diff
changeset
|
185 "{{mergefrombranch ([-\w]+)}}" |
17974
337d728e644f
convert: add config option to use the local time zone
Julian Cowley <julian@lava.net>
parents:
17837
diff
changeset
|
186 convert.localtimezone |
337d728e644f
convert: add config option to use the local time zone
Julian Cowley <julian@lava.net>
parents:
17837
diff
changeset
|
187 use local time (as determined by the TZ environment |
337d728e644f
convert: add config option to use the local time zone
Julian Cowley <julian@lava.net>
parents:
17837
diff
changeset
|
188 variable) for changeset date/times. The default is False |
337d728e644f
convert: add config option to use the local time zone
Julian Cowley <julian@lava.net>
parents:
17837
diff
changeset
|
189 (use UTC). |
18321
c51d2bc7a5d7
convert: correct 'hooks' section name in online help
FUJIWARA Katsunori <foozy@lares.dti.ne.jp>
parents:
17837
diff
changeset
|
190 hooks.cvslog Specify a Python function to be called at the end of |
15861
ee8f5e4ce7b8
minirst: simplify and standardize field list formatting
Olav Reinert <seroton10@gmail.com>
parents:
15443
diff
changeset
|
191 gathering the CVS log. The function is passed a list with |
ee8f5e4ce7b8
minirst: simplify and standardize field list formatting
Olav Reinert <seroton10@gmail.com>
parents:
15443
diff
changeset
|
192 the log entries, and can modify the entries in-place, or add |
ee8f5e4ce7b8
minirst: simplify and standardize field list formatting
Olav Reinert <seroton10@gmail.com>
parents:
15443
diff
changeset
|
193 or delete them. |
18321
c51d2bc7a5d7
convert: correct 'hooks' section name in online help
FUJIWARA Katsunori <foozy@lares.dti.ne.jp>
parents:
17837
diff
changeset
|
194 hooks.cvschangesets |
15861
ee8f5e4ce7b8
minirst: simplify and standardize field list formatting
Olav Reinert <seroton10@gmail.com>
parents:
15443
diff
changeset
|
195 Specify a Python function to be called after the changesets |
17251
98166640b356
help: fix some instances of 'the the'
Mads Kiilerich <mads@kiilerich.com>
parents:
17002
diff
changeset
|
196 are calculated from the CVS log. The function is passed a |
98166640b356
help: fix some instances of 'the the'
Mads Kiilerich <mads@kiilerich.com>
parents:
17002
diff
changeset
|
197 list with the changeset entries, and can modify the |
15861
ee8f5e4ce7b8
minirst: simplify and standardize field list formatting
Olav Reinert <seroton10@gmail.com>
parents:
15443
diff
changeset
|
198 changesets in-place, or add or delete them. |
12510 | 199 |
200 An additional "debugcvsps" Mercurial command allows the builtin changeset | |
201 merging code to be run without doing a conversion. Its parameters and | |
202 output are similar to that of cvsps 2.1. Please see the command help for | |
203 more details. | |
204 | |
205 Subversion Source | |
17267
979b107eaea2
doc: unify section level between help topics
FUJIWARA Katsunori <foozy@lares.dti.ne.jp>
parents:
17251
diff
changeset
|
206 ################# |
12510 | 207 |
208 Subversion source detects classical trunk/branches/tags layouts. By | |
209 default, the supplied "svn://repo/path/" source URL is converted as a | |
210 single branch. If "svn://repo/path/trunk" exists it replaces the default | |
211 branch. If "svn://repo/path/branches" exists, its subdirectories are | |
212 listed as possible branches. If "svn://repo/path/tags" exists, it is | |
213 looked for tags referencing converted branches. Default "trunk", | |
214 "branches" and "tags" values can be overridden with following options. Set | |
215 them to paths relative to the source URL, or leave them blank to disable | |
216 auto detection. | |
217 | |
12922
58f0c60b7f40
convert: use field list instead of option list in help
Erik Zielke <ez@aragost.com>
parents:
12787
diff
changeset
|
218 The following options can be set with "--config": |
12510 | 219 |
12922
58f0c60b7f40
convert: use field list instead of option list in help
Erik Zielke <ez@aragost.com>
parents:
12787
diff
changeset
|
220 convert.svn.branches |
15861
ee8f5e4ce7b8
minirst: simplify and standardize field list formatting
Olav Reinert <seroton10@gmail.com>
parents:
15443
diff
changeset
|
221 specify the directory containing branches. The default is |
ee8f5e4ce7b8
minirst: simplify and standardize field list formatting
Olav Reinert <seroton10@gmail.com>
parents:
15443
diff
changeset
|
222 "branches". |
12922
58f0c60b7f40
convert: use field list instead of option list in help
Erik Zielke <ez@aragost.com>
parents:
12787
diff
changeset
|
223 convert.svn.tags |
15861
ee8f5e4ce7b8
minirst: simplify and standardize field list formatting
Olav Reinert <seroton10@gmail.com>
parents:
15443
diff
changeset
|
224 specify the directory containing tags. The default is |
ee8f5e4ce7b8
minirst: simplify and standardize field list formatting
Olav Reinert <seroton10@gmail.com>
parents:
15443
diff
changeset
|
225 "tags". |
12922
58f0c60b7f40
convert: use field list instead of option list in help
Erik Zielke <ez@aragost.com>
parents:
12787
diff
changeset
|
226 convert.svn.trunk |
15861
ee8f5e4ce7b8
minirst: simplify and standardize field list formatting
Olav Reinert <seroton10@gmail.com>
parents:
15443
diff
changeset
|
227 specify the name of the trunk branch. The default is |
ee8f5e4ce7b8
minirst: simplify and standardize field list formatting
Olav Reinert <seroton10@gmail.com>
parents:
15443
diff
changeset
|
228 "trunk". |
17974
337d728e644f
convert: add config option to use the local time zone
Julian Cowley <julian@lava.net>
parents:
17837
diff
changeset
|
229 convert.localtimezone |
337d728e644f
convert: add config option to use the local time zone
Julian Cowley <julian@lava.net>
parents:
17837
diff
changeset
|
230 use local time (as determined by the TZ environment |
337d728e644f
convert: add config option to use the local time zone
Julian Cowley <julian@lava.net>
parents:
17837
diff
changeset
|
231 variable) for changeset date/times. The default is False |
337d728e644f
convert: add config option to use the local time zone
Julian Cowley <julian@lava.net>
parents:
17837
diff
changeset
|
232 (use UTC). |
12510 | 233 |
234 Source history can be retrieved starting at a specific revision, instead | |
235 of being integrally converted. Only single branch conversions are | |
236 supported. | |
237 | |
12922
58f0c60b7f40
convert: use field list instead of option list in help
Erik Zielke <ez@aragost.com>
parents:
12787
diff
changeset
|
238 convert.svn.startrev |
15861
ee8f5e4ce7b8
minirst: simplify and standardize field list formatting
Olav Reinert <seroton10@gmail.com>
parents:
15443
diff
changeset
|
239 specify start Subversion revision number. The default is 0. |
12510 | 240 |
22466
e1b68c0a9363
convert: add initial docs for git sources
Siddharth Agarwal <sid0@fb.com>
parents:
22300
diff
changeset
|
241 Git Source |
e1b68c0a9363
convert: add initial docs for git sources
Siddharth Agarwal <sid0@fb.com>
parents:
22300
diff
changeset
|
242 ########## |
e1b68c0a9363
convert: add initial docs for git sources
Siddharth Agarwal <sid0@fb.com>
parents:
22300
diff
changeset
|
243 |
e1b68c0a9363
convert: add initial docs for git sources
Siddharth Agarwal <sid0@fb.com>
parents:
22300
diff
changeset
|
244 The Git importer converts commits from all reachable branches (refs in |
e1b68c0a9363
convert: add initial docs for git sources
Siddharth Agarwal <sid0@fb.com>
parents:
22300
diff
changeset
|
245 refs/heads) and remotes (refs in refs/remotes) to Mercurial. Branches are |
e1b68c0a9363
convert: add initial docs for git sources
Siddharth Agarwal <sid0@fb.com>
parents:
22300
diff
changeset
|
246 converted to bookmarks with the same name, with the leading 'refs/heads' |
e1b68c0a9363
convert: add initial docs for git sources
Siddharth Agarwal <sid0@fb.com>
parents:
22300
diff
changeset
|
247 stripped. Git submodules are converted to Git subrepos in Mercurial. |
e1b68c0a9363
convert: add initial docs for git sources
Siddharth Agarwal <sid0@fb.com>
parents:
22300
diff
changeset
|
248 |
22470
8e0c4df28eec
convert: add support to detect git renames and copies
Siddharth Agarwal <sid0@fb.com>
parents:
22466
diff
changeset
|
249 The following options can be set with "--config": |
8e0c4df28eec
convert: add support to detect git renames and copies
Siddharth Agarwal <sid0@fb.com>
parents:
22466
diff
changeset
|
250 |
8e0c4df28eec
convert: add support to detect git renames and copies
Siddharth Agarwal <sid0@fb.com>
parents:
22466
diff
changeset
|
251 convert.git.similarity |
8e0c4df28eec
convert: add support to detect git renames and copies
Siddharth Agarwal <sid0@fb.com>
parents:
22466
diff
changeset
|
252 specify how similar files modified in a commit must be to be |
8e0c4df28eec
convert: add support to detect git renames and copies
Siddharth Agarwal <sid0@fb.com>
parents:
22466
diff
changeset
|
253 imported as renames or copies, as a percentage between "0" |
8e0c4df28eec
convert: add support to detect git renames and copies
Siddharth Agarwal <sid0@fb.com>
parents:
22466
diff
changeset
|
254 (disabled) and "100" (files must be identical). For example, |
8e0c4df28eec
convert: add support to detect git renames and copies
Siddharth Agarwal <sid0@fb.com>
parents:
22466
diff
changeset
|
255 "90" means that a delete/add pair will be imported as a |
8e0c4df28eec
convert: add support to detect git renames and copies
Siddharth Agarwal <sid0@fb.com>
parents:
22466
diff
changeset
|
256 rename if more than 90% of the file hasn't changed. The |
22512
6b6da715cb96
convert: change default for git rename detection to 50%
Siddharth Agarwal <sid0@fb.com>
parents:
22471
diff
changeset
|
257 default is "50". |
22471
cc5f94db672b
convert: add support to find git copies from all files in the working copy
Siddharth Agarwal <sid0@fb.com>
parents:
22470
diff
changeset
|
258 convert.git.findcopiesharder |
cc5f94db672b
convert: add support to find git copies from all files in the working copy
Siddharth Agarwal <sid0@fb.com>
parents:
22470
diff
changeset
|
259 while detecting copies, look at all files in the working |
cc5f94db672b
convert: add support to find git copies from all files in the working copy
Siddharth Agarwal <sid0@fb.com>
parents:
22470
diff
changeset
|
260 copy instead of just changed ones. This is very expensive |
cc5f94db672b
convert: add support to find git copies from all files in the working copy
Siddharth Agarwal <sid0@fb.com>
parents:
22470
diff
changeset
|
261 for large projects, and is only effective when |
cc5f94db672b
convert: add support to find git copies from all files in the working copy
Siddharth Agarwal <sid0@fb.com>
parents:
22470
diff
changeset
|
262 "convert.git.similarity" is greater than 0. The default is |
cc5f94db672b
convert: add support to find git copies from all files in the working copy
Siddharth Agarwal <sid0@fb.com>
parents:
22470
diff
changeset
|
263 False. |
30646
ea3540e66fd8
convert: config option for git rename limit
Gregory Szorc <gregory.szorc@gmail.com>
parents:
30152
diff
changeset
|
264 convert.git.renamelimit |
ea3540e66fd8
convert: config option for git rename limit
Gregory Szorc <gregory.szorc@gmail.com>
parents:
30152
diff
changeset
|
265 perform rename and copy detection up to this many changed |
ea3540e66fd8
convert: config option for git rename limit
Gregory Szorc <gregory.szorc@gmail.com>
parents:
30152
diff
changeset
|
266 files in a commit. Increasing this will make rename and copy |
ea3540e66fd8
convert: config option for git rename limit
Gregory Szorc <gregory.szorc@gmail.com>
parents:
30152
diff
changeset
|
267 detection more accurate but will significantly slow down |
ea3540e66fd8
convert: config option for git rename limit
Gregory Szorc <gregory.szorc@gmail.com>
parents:
30152
diff
changeset
|
268 computation on large projects. The option is only relevant |
ea3540e66fd8
convert: config option for git rename limit
Gregory Szorc <gregory.szorc@gmail.com>
parents:
30152
diff
changeset
|
269 if "convert.git.similarity" is greater than 0. The default |
ea3540e66fd8
convert: config option for git rename limit
Gregory Szorc <gregory.szorc@gmail.com>
parents:
30152
diff
changeset
|
270 is "400". |
30813
2cbbd4622ab0
convert: config option to control Git committer actions
Gregory Szorc <gregory.szorc@gmail.com>
parents:
30661
diff
changeset
|
271 convert.git.committeractions |
2cbbd4622ab0
convert: config option to control Git committer actions
Gregory Szorc <gregory.szorc@gmail.com>
parents:
30661
diff
changeset
|
272 list of actions to take when processing author and committer |
2cbbd4622ab0
convert: config option to control Git committer actions
Gregory Szorc <gregory.szorc@gmail.com>
parents:
30661
diff
changeset
|
273 values. |
2cbbd4622ab0
convert: config option to control Git committer actions
Gregory Szorc <gregory.szorc@gmail.com>
parents:
30661
diff
changeset
|
274 |
2cbbd4622ab0
convert: config option to control Git committer actions
Gregory Szorc <gregory.szorc@gmail.com>
parents:
30661
diff
changeset
|
275 Git commits have separate author (who wrote the commit) and committer |
2cbbd4622ab0
convert: config option to control Git committer actions
Gregory Szorc <gregory.szorc@gmail.com>
parents:
30661
diff
changeset
|
276 (who applied the commit) fields. Not all destinations support separate |
2cbbd4622ab0
convert: config option to control Git committer actions
Gregory Szorc <gregory.szorc@gmail.com>
parents:
30661
diff
changeset
|
277 author and committer fields (including Mercurial). This config option |
2cbbd4622ab0
convert: config option to control Git committer actions
Gregory Szorc <gregory.szorc@gmail.com>
parents:
30661
diff
changeset
|
278 controls what to do with these author and committer fields during |
2cbbd4622ab0
convert: config option to control Git committer actions
Gregory Szorc <gregory.szorc@gmail.com>
parents:
30661
diff
changeset
|
279 conversion. |
2cbbd4622ab0
convert: config option to control Git committer actions
Gregory Szorc <gregory.szorc@gmail.com>
parents:
30661
diff
changeset
|
280 |
2cbbd4622ab0
convert: config option to control Git committer actions
Gregory Szorc <gregory.szorc@gmail.com>
parents:
30661
diff
changeset
|
281 A value of "messagedifferent" will append a "committer: ..." line to |
2cbbd4622ab0
convert: config option to control Git committer actions
Gregory Szorc <gregory.szorc@gmail.com>
parents:
30661
diff
changeset
|
282 the commit message if the Git committer is different from the author. |
2cbbd4622ab0
convert: config option to control Git committer actions
Gregory Szorc <gregory.szorc@gmail.com>
parents:
30661
diff
changeset
|
283 The prefix of that line can be specified using the syntax |
2cbbd4622ab0
convert: config option to control Git committer actions
Gregory Szorc <gregory.szorc@gmail.com>
parents:
30661
diff
changeset
|
284 "messagedifferent=<prefix>". e.g. "messagedifferent=git-committer:". |
2cbbd4622ab0
convert: config option to control Git committer actions
Gregory Szorc <gregory.szorc@gmail.com>
parents:
30661
diff
changeset
|
285 When a prefix is specified, a space will always be inserted between |
2cbbd4622ab0
convert: config option to control Git committer actions
Gregory Szorc <gregory.szorc@gmail.com>
parents:
30661
diff
changeset
|
286 the prefix and the value. |
2cbbd4622ab0
convert: config option to control Git committer actions
Gregory Szorc <gregory.szorc@gmail.com>
parents:
30661
diff
changeset
|
287 |
2cbbd4622ab0
convert: config option to control Git committer actions
Gregory Szorc <gregory.szorc@gmail.com>
parents:
30661
diff
changeset
|
288 "messagealways" behaves like "messagedifferent" except it will always |
2cbbd4622ab0
convert: config option to control Git committer actions
Gregory Szorc <gregory.szorc@gmail.com>
parents:
30661
diff
changeset
|
289 result in a "committer: ..." line being appended to the commit |
2cbbd4622ab0
convert: config option to control Git committer actions
Gregory Szorc <gregory.szorc@gmail.com>
parents:
30661
diff
changeset
|
290 message. This value is mutually exclusive with "messagedifferent". |
2cbbd4622ab0
convert: config option to control Git committer actions
Gregory Szorc <gregory.szorc@gmail.com>
parents:
30661
diff
changeset
|
291 |
2cbbd4622ab0
convert: config option to control Git committer actions
Gregory Szorc <gregory.szorc@gmail.com>
parents:
30661
diff
changeset
|
292 "dropcommitter" will remove references to the committer. Only |
2cbbd4622ab0
convert: config option to control Git committer actions
Gregory Szorc <gregory.szorc@gmail.com>
parents:
30661
diff
changeset
|
293 references to the author will remain. Actions that add references to |
2cbbd4622ab0
convert: config option to control Git committer actions
Gregory Szorc <gregory.szorc@gmail.com>
parents:
30661
diff
changeset
|
294 the committer will have no effect when this is set. |
2cbbd4622ab0
convert: config option to control Git committer actions
Gregory Szorc <gregory.szorc@gmail.com>
parents:
30661
diff
changeset
|
295 |
2cbbd4622ab0
convert: config option to control Git committer actions
Gregory Szorc <gregory.szorc@gmail.com>
parents:
30661
diff
changeset
|
296 "replaceauthor" will replace the value of the author field with the |
2cbbd4622ab0
convert: config option to control Git committer actions
Gregory Szorc <gregory.szorc@gmail.com>
parents:
30661
diff
changeset
|
297 committer. Other actions that add references to the committer will |
2cbbd4622ab0
convert: config option to control Git committer actions
Gregory Szorc <gregory.szorc@gmail.com>
parents:
30661
diff
changeset
|
298 still take effect when this is set. |
2cbbd4622ab0
convert: config option to control Git committer actions
Gregory Szorc <gregory.szorc@gmail.com>
parents:
30661
diff
changeset
|
299 |
2cbbd4622ab0
convert: config option to control Git committer actions
Gregory Szorc <gregory.szorc@gmail.com>
parents:
30661
diff
changeset
|
300 The default is "messagedifferent". |
2cbbd4622ab0
convert: config option to control Git committer actions
Gregory Szorc <gregory.szorc@gmail.com>
parents:
30661
diff
changeset
|
301 |
30660
1f21a6835604
convert: add config option to copy extra keys from Git commits
Gregory Szorc <gregory.szorc@gmail.com>
parents:
30646
diff
changeset
|
302 convert.git.extrakeys |
1f21a6835604
convert: add config option to copy extra keys from Git commits
Gregory Szorc <gregory.szorc@gmail.com>
parents:
30646
diff
changeset
|
303 list of extra keys from commit metadata to copy to the |
1f21a6835604
convert: add config option to copy extra keys from Git commits
Gregory Szorc <gregory.szorc@gmail.com>
parents:
30646
diff
changeset
|
304 destination. Some Git repositories store extra metadata in |
1f21a6835604
convert: add config option to copy extra keys from Git commits
Gregory Szorc <gregory.szorc@gmail.com>
parents:
30646
diff
changeset
|
305 commits. By default, this non-default metadata will be lost |
1f21a6835604
convert: add config option to copy extra keys from Git commits
Gregory Szorc <gregory.szorc@gmail.com>
parents:
30646
diff
changeset
|
306 during conversion. Setting this config option can retain |
1f21a6835604
convert: add config option to copy extra keys from Git commits
Gregory Szorc <gregory.szorc@gmail.com>
parents:
30646
diff
changeset
|
307 that metadata. Some built-in keys such as "parent" and |
1f21a6835604
convert: add config option to copy extra keys from Git commits
Gregory Szorc <gregory.szorc@gmail.com>
parents:
30646
diff
changeset
|
308 "branch" are not allowed to be copied. |
25787
d9133e89d39d
convert: allow customizing git remote prefix
Durham Goode <durham@fb.com>
parents:
25750
diff
changeset
|
309 convert.git.remoteprefix |
d9133e89d39d
convert: allow customizing git remote prefix
Durham Goode <durham@fb.com>
parents:
25750
diff
changeset
|
310 remote refs are converted as bookmarks with |
d9133e89d39d
convert: allow customizing git remote prefix
Durham Goode <durham@fb.com>
parents:
25750
diff
changeset
|
311 "convert.git.remoteprefix" as a prefix followed by a /. The |
d9133e89d39d
convert: allow customizing git remote prefix
Durham Goode <durham@fb.com>
parents:
25750
diff
changeset
|
312 default is 'remote'. |
30661
ced0d686ecb3
convert: add config option to control storing original revision
Gregory Szorc <gregory.szorc@gmail.com>
parents:
30660
diff
changeset
|
313 convert.git.saverev |
ced0d686ecb3
convert: add config option to control storing original revision
Gregory Szorc <gregory.szorc@gmail.com>
parents:
30660
diff
changeset
|
314 whether to store the original Git commit ID in the metadata |
ced0d686ecb3
convert: add config option to control storing original revision
Gregory Szorc <gregory.szorc@gmail.com>
parents:
30660
diff
changeset
|
315 of the destination commit. The default is True. |
26077
e63d05fbae84
convert: add convert.git.skipsubmodules option
Durham Goode <durham@fb.com>
parents:
25884
diff
changeset
|
316 convert.git.skipsubmodules |
e63d05fbae84
convert: add convert.git.skipsubmodules option
Durham Goode <durham@fb.com>
parents:
25884
diff
changeset
|
317 does not convert root level .gitmodules files or files with |
e63d05fbae84
convert: add convert.git.skipsubmodules option
Durham Goode <durham@fb.com>
parents:
25884
diff
changeset
|
318 160000 mode indicating a submodule. Default is False. |
22470
8e0c4df28eec
convert: add support to detect git renames and copies
Siddharth Agarwal <sid0@fb.com>
parents:
22466
diff
changeset
|
319 |
12510 | 320 Perforce Source |
17267
979b107eaea2
doc: unify section level between help topics
FUJIWARA Katsunori <foozy@lares.dti.ne.jp>
parents:
17251
diff
changeset
|
321 ############### |
12510 | 322 |
323 The Perforce (P4) importer can be given a p4 depot path or a client | |
324 specification as source. It will convert all files in the source to a flat | |
325 Mercurial repository, ignoring labels, branches and integrations. Note | |
326 that when a depot path is given you then usually should specify a target | |
12924
2f1174b2c4fa
convert: better ReST markup in docstring
Martin Geisler <mg@aragost.com>
parents:
12922
diff
changeset
|
327 directory, because otherwise the target may be named "...-hg". |
12510 | 328 |
25884
b810b59eca62
convert: when converting from Perforce use original local encoding by default
Eugene Baranov <eug.baranov@gmail.com>
parents:
25880
diff
changeset
|
329 The following options can be set with "--config": |
12510 | 330 |
25884
b810b59eca62
convert: when converting from Perforce use original local encoding by default
Eugene Baranov <eug.baranov@gmail.com>
parents:
25880
diff
changeset
|
331 convert.p4.encoding |
b810b59eca62
convert: when converting from Perforce use original local encoding by default
Eugene Baranov <eug.baranov@gmail.com>
parents:
25880
diff
changeset
|
332 specify the encoding to use when decoding standard output of |
b810b59eca62
convert: when converting from Perforce use original local encoding by default
Eugene Baranov <eug.baranov@gmail.com>
parents:
25880
diff
changeset
|
333 the Perforce command line tool. The default is default |
b810b59eca62
convert: when converting from Perforce use original local encoding by default
Eugene Baranov <eug.baranov@gmail.com>
parents:
25880
diff
changeset
|
334 system encoding. |
12922
58f0c60b7f40
convert: use field list instead of option list in help
Erik Zielke <ez@aragost.com>
parents:
12787
diff
changeset
|
335 convert.p4.startrev |
15861
ee8f5e4ce7b8
minirst: simplify and standardize field list formatting
Olav Reinert <seroton10@gmail.com>
parents:
15443
diff
changeset
|
336 specify initial Perforce revision (a Perforce changelist |
ee8f5e4ce7b8
minirst: simplify and standardize field list formatting
Olav Reinert <seroton10@gmail.com>
parents:
15443
diff
changeset
|
337 number). |
12510 | 338 |
339 Mercurial Destination | |
17267
979b107eaea2
doc: unify section level between help topics
FUJIWARA Katsunori <foozy@lares.dti.ne.jp>
parents:
17251
diff
changeset
|
340 ##################### |
12510 | 341 |
25558
daf9f7ee2a5c
convert: support incremental conversion with hg subrepos
Matt Harbison <matt_harbison@yahoo.com>
parents:
22512
diff
changeset
|
342 The Mercurial destination will recognize Mercurial subrepositories in the |
daf9f7ee2a5c
convert: support incremental conversion with hg subrepos
Matt Harbison <matt_harbison@yahoo.com>
parents:
22512
diff
changeset
|
343 destination directory, and update the .hgsubstate file automatically if |
daf9f7ee2a5c
convert: support incremental conversion with hg subrepos
Matt Harbison <matt_harbison@yahoo.com>
parents:
22512
diff
changeset
|
344 the destination subrepositories contain the <dest>/<sub>/.hg/shamap file. |
daf9f7ee2a5c
convert: support incremental conversion with hg subrepos
Matt Harbison <matt_harbison@yahoo.com>
parents:
22512
diff
changeset
|
345 Converting a repository with subrepositories requires converting a single |
daf9f7ee2a5c
convert: support incremental conversion with hg subrepos
Matt Harbison <matt_harbison@yahoo.com>
parents:
22512
diff
changeset
|
346 repository at a time, from the bottom up. |
daf9f7ee2a5c
convert: support incremental conversion with hg subrepos
Matt Harbison <matt_harbison@yahoo.com>
parents:
22512
diff
changeset
|
347 |
12922
58f0c60b7f40
convert: use field list instead of option list in help
Erik Zielke <ez@aragost.com>
parents:
12787
diff
changeset
|
348 The following options are supported: |
12510 | 349 |
12922
58f0c60b7f40
convert: use field list instead of option list in help
Erik Zielke <ez@aragost.com>
parents:
12787
diff
changeset
|
350 convert.hg.clonebranches |
15861
ee8f5e4ce7b8
minirst: simplify and standardize field list formatting
Olav Reinert <seroton10@gmail.com>
parents:
15443
diff
changeset
|
351 dispatch source branches in separate clones. The default is |
ee8f5e4ce7b8
minirst: simplify and standardize field list formatting
Olav Reinert <seroton10@gmail.com>
parents:
15443
diff
changeset
|
352 False. |
12922
58f0c60b7f40
convert: use field list instead of option list in help
Erik Zielke <ez@aragost.com>
parents:
12787
diff
changeset
|
353 convert.hg.tagsbranch |
15861
ee8f5e4ce7b8
minirst: simplify and standardize field list formatting
Olav Reinert <seroton10@gmail.com>
parents:
15443
diff
changeset
|
354 branch name for tag revisions, defaults to "default". |
12922
58f0c60b7f40
convert: use field list instead of option list in help
Erik Zielke <ez@aragost.com>
parents:
12787
diff
changeset
|
355 convert.hg.usebranchnames |
15861
ee8f5e4ce7b8
minirst: simplify and standardize field list formatting
Olav Reinert <seroton10@gmail.com>
parents:
15443
diff
changeset
|
356 preserve branch names. The default is True. |
25750
c9093d4d1ff6
convert: add config for recording the source name
Durham Goode <durham@fb.com>
parents:
25748
diff
changeset
|
357 convert.hg.sourcename |
c9093d4d1ff6
convert: add config for recording the source name
Durham Goode <durham@fb.com>
parents:
25748
diff
changeset
|
358 records the given string as a 'convert_source' extra value |
c9093d4d1ff6
convert: add config for recording the source name
Durham Goode <durham@fb.com>
parents:
25748
diff
changeset
|
359 on each commit made in the target repository. The default is |
c9093d4d1ff6
convert: add config for recording the source name
Durham Goode <durham@fb.com>
parents:
25748
diff
changeset
|
360 None. |
12510 | 361 |
25741
86fe3c404c1e
convert: add config to not convert tags
Durham Goode <durham@fb.com>
parents:
25558
diff
changeset
|
362 All Destinations |
86fe3c404c1e
convert: add config to not convert tags
Durham Goode <durham@fb.com>
parents:
25558
diff
changeset
|
363 ################ |
86fe3c404c1e
convert: add config to not convert tags
Durham Goode <durham@fb.com>
parents:
25558
diff
changeset
|
364 |
86fe3c404c1e
convert: add config to not convert tags
Durham Goode <durham@fb.com>
parents:
25558
diff
changeset
|
365 All destination types accept the following options: |
86fe3c404c1e
convert: add config to not convert tags
Durham Goode <durham@fb.com>
parents:
25558
diff
changeset
|
366 |
86fe3c404c1e
convert: add config to not convert tags
Durham Goode <durham@fb.com>
parents:
25558
diff
changeset
|
367 convert.skiptags |
86fe3c404c1e
convert: add config to not convert tags
Durham Goode <durham@fb.com>
parents:
25558
diff
changeset
|
368 does not convert tags from the source repo to the target |
86fe3c404c1e
convert: add config to not convert tags
Durham Goode <durham@fb.com>
parents:
25558
diff
changeset
|
369 repo. The default is False. |
86fe3c404c1e
convert: add config to not convert tags
Durham Goode <durham@fb.com>
parents:
25558
diff
changeset
|
370 |
25748
baea47cafe75
convert: add support for specifying multiple revs
Durham Goode <durham@fb.com>
parents:
25741
diff
changeset
|
371 options ([+] can be repeated): |
12510 | 372 |
15145
ff26712a0c50
help: use RST to format option lists
Matt Mackall <mpm@selenic.com>
parents:
13494
diff
changeset
|
373 -s --source-type TYPE source repository type |
ff26712a0c50
help: use RST to format option lists
Matt Mackall <mpm@selenic.com>
parents:
13494
diff
changeset
|
374 -d --dest-type TYPE destination repository type |
25748
baea47cafe75
convert: add support for specifying multiple revs
Durham Goode <durham@fb.com>
parents:
25741
diff
changeset
|
375 -r --rev REV [+] import up to source revision REV |
15145
ff26712a0c50
help: use RST to format option lists
Matt Mackall <mpm@selenic.com>
parents:
13494
diff
changeset
|
376 -A --authormap FILE remap usernames using this file |
ff26712a0c50
help: use RST to format option lists
Matt Mackall <mpm@selenic.com>
parents:
13494
diff
changeset
|
377 --filemap FILE remap file names using contents of file |
30152
d65e246100ed
help: backout f3c4edfd35e1 (mark boolean flags with [no-] in help) for now
Pierre-Yves David <pierre-yves.david@ens-lyon.org>
parents:
30024
diff
changeset
|
378 --full apply filemap changes by converting all files again |
15145
ff26712a0c50
help: use RST to format option lists
Matt Mackall <mpm@selenic.com>
parents:
13494
diff
changeset
|
379 --splicemap FILE splice synthesized history into place |
ff26712a0c50
help: use RST to format option lists
Matt Mackall <mpm@selenic.com>
parents:
13494
diff
changeset
|
380 --branchmap FILE change branch names while converting |
30152
d65e246100ed
help: backout f3c4edfd35e1 (mark boolean flags with [no-] in help) for now
Pierre-Yves David <pierre-yves.david@ens-lyon.org>
parents:
30024
diff
changeset
|
381 --branchsort try to sort changesets by branches |
d65e246100ed
help: backout f3c4edfd35e1 (mark boolean flags with [no-] in help) for now
Pierre-Yves David <pierre-yves.david@ens-lyon.org>
parents:
30024
diff
changeset
|
382 --datesort try to sort changesets by date |
d65e246100ed
help: backout f3c4edfd35e1 (mark boolean flags with [no-] in help) for now
Pierre-Yves David <pierre-yves.david@ens-lyon.org>
parents:
30024
diff
changeset
|
383 --sourcesort preserve source changesets order |
d65e246100ed
help: backout f3c4edfd35e1 (mark boolean flags with [no-] in help) for now
Pierre-Yves David <pierre-yves.david@ens-lyon.org>
parents:
30024
diff
changeset
|
384 --closesort try to reorder closed revisions |
12510 | 385 |
22110
26f7c8033bed
help: tweak --verbose command help hint
Matt Mackall <mpm@selenic.com>
parents:
21077
diff
changeset
|
386 (some details hidden, use --verbose to show complete help) |
12510 | 387 $ hg init a |
388 $ cd a | |
389 $ echo a > a | |
390 $ hg ci -d'0 0' -Ama | |
391 adding a | |
392 $ hg cp a b | |
393 $ hg ci -d'1 0' -mb | |
394 $ hg rm a | |
395 $ hg ci -d'2 0' -mc | |
396 $ hg mv b a | |
397 $ hg ci -d'3 0' -md | |
398 $ echo a >> a | |
399 $ hg ci -d'4 0' -me | |
400 $ cd .. | |
401 $ hg convert a 2>&1 | grep -v 'subversion python bindings could not be loaded' | |
402 assuming destination a-hg | |
403 initializing destination a-hg repository | |
404 scanning source... | |
405 sorting... | |
406 converting... | |
407 4 a | |
408 3 b | |
409 2 c | |
410 1 d | |
411 0 e | |
412 $ hg --cwd a-hg pull ../a | |
413 pulling from ../a | |
414 searching for changes | |
415 no changes found | |
7905
d596b1f2935a
convert: missing p4 tool is only slightly fatal
Mads Kiilerich <mads@kiilerich.com>
parents:
5805
diff
changeset
|
416 |
16986
79902f7e27df
tests: convert some hghave unix-permissions to #if
Mads Kiilerich <mads@kiilerich.com>
parents:
16107
diff
changeset
|
417 conversion to existing file should fail |
12510 | 418 |
16986
79902f7e27df
tests: convert some hghave unix-permissions to #if
Mads Kiilerich <mads@kiilerich.com>
parents:
16107
diff
changeset
|
419 $ touch bogusfile |
12510 | 420 $ hg convert a bogusfile |
421 initializing destination bogusfile repository | |
422 abort: cannot create new bundle repository | |
423 [255] | |
16986
79902f7e27df
tests: convert some hghave unix-permissions to #if
Mads Kiilerich <mads@kiilerich.com>
parents:
16107
diff
changeset
|
424 |
20008
e54a078153f7
tests: skip tests that require not having root (issue4089)
Matt Mackall <mpm@selenic.com>
parents:
19891
diff
changeset
|
425 #if unix-permissions no-root |
16986
79902f7e27df
tests: convert some hghave unix-permissions to #if
Mads Kiilerich <mads@kiilerich.com>
parents:
16107
diff
changeset
|
426 |
79902f7e27df
tests: convert some hghave unix-permissions to #if
Mads Kiilerich <mads@kiilerich.com>
parents:
16107
diff
changeset
|
427 conversion to dir without permissions should fail |
79902f7e27df
tests: convert some hghave unix-permissions to #if
Mads Kiilerich <mads@kiilerich.com>
parents:
16107
diff
changeset
|
428 |
12510 | 429 $ mkdir bogusdir |
430 $ chmod 000 bogusdir | |
431 | |
432 $ hg convert a bogusdir | |
18227
720308f741cb
dispatch: show empty filename in OSError aborts
Mads Kiilerich <mads@kiilerich.com>
parents:
17974
diff
changeset
|
433 abort: Permission denied: 'bogusdir' |
12510 | 434 [255] |
435 | |
16986
79902f7e27df
tests: convert some hghave unix-permissions to #if
Mads Kiilerich <mads@kiilerich.com>
parents:
16107
diff
changeset
|
436 user permissions should succeed |
9962
a7178eccf2dc
convert: better error on invalid repository type
Patrick Mezard <pmezard@gmail.com>
parents:
8674
diff
changeset
|
437 |
12510 | 438 $ chmod 700 bogusdir |
439 $ hg convert a bogusdir | |
440 initializing destination bogusdir repository | |
441 scanning source... | |
442 sorting... | |
443 converting... | |
444 4 a | |
445 3 b | |
446 2 c | |
447 1 d | |
448 0 e | |
449 | |
16986
79902f7e27df
tests: convert some hghave unix-permissions to #if
Mads Kiilerich <mads@kiilerich.com>
parents:
16107
diff
changeset
|
450 #endif |
79902f7e27df
tests: convert some hghave unix-permissions to #if
Mads Kiilerich <mads@kiilerich.com>
parents:
16107
diff
changeset
|
451 |
12510 | 452 test pre and post conversion actions |
453 | |
454 $ echo 'include b' > filemap | |
455 $ hg convert --debug --filemap filemap a partialb | \ | |
456 > grep 'run hg' | |
457 run hg source pre-conversion action | |
458 run hg sink pre-conversion action | |
459 run hg sink post-conversion action | |
460 run hg source post-conversion action | |
461 | |
462 converting empty dir should fail "nicely | |
463 | |
464 $ mkdir emptydir | |
465 | |
466 override $PATH to ensure p4 not visible; use $PYTHON in case we're | |
467 running from a devel copy, not a temp installation | |
9962
a7178eccf2dc
convert: better error on invalid repository type
Patrick Mezard <pmezard@gmail.com>
parents:
8674
diff
changeset
|
468 |
12510 | 469 $ PATH="$BINDIR" $PYTHON "$BINDIR"/hg convert emptydir |
470 assuming destination emptydir-hg | |
471 initializing destination emptydir-hg repository | |
472 emptydir does not look like a CVS checkout | |
29102
22c53b3a390d
tests: add globs for Windows
Matt Harbison <matt_harbison@yahoo.com>
parents:
29051
diff
changeset
|
473 $TESTTMP/emptydir does not look like a Git repository (glob) |
12510 | 474 emptydir does not look like a Subversion repository |
475 emptydir is not a local Mercurial repository | |
476 emptydir does not look like a darcs repository | |
477 emptydir does not look like a monotone repository | |
478 emptydir does not look like a GNU Arch repository | |
479 emptydir does not look like a Bazaar repository | |
480 cannot find required "p4" tool | |
481 abort: emptydir: missing or unsupported repository | |
482 [255] | |
483 | |
484 convert with imaginary source type | |
485 | |
486 $ hg convert --source-type foo a a-foo | |
487 initializing destination a-foo repository | |
488 abort: foo: invalid source repository type | |
489 [255] | |
490 | |
491 convert with imaginary sink type | |
10577
d5bd1beff794
store: only add new entries to the fncache file
Adrian Buehlmann <adrian@cadifra.com>
parents:
9962
diff
changeset
|
492 |
12510 | 493 $ hg convert --dest-type foo a a-foo |
494 abort: foo: invalid destination repository type | |
495 [255] | |
496 | |
497 testing: convert must not produce duplicate entries in fncache | |
10885
9e4d120e3c32
convert/subversion: fix default URL checker prototype
Patrick Mezard <pmezard@gmail.com>
parents:
10775
diff
changeset
|
498 |
12510 | 499 $ hg convert a b |
500 initializing destination b repository | |
501 scanning source... | |
502 sorting... | |
503 converting... | |
504 4 a | |
505 3 b | |
506 2 c | |
507 1 d | |
508 0 e | |
509 | |
510 contents of fncache file: | |
511 | |
13389
3efc99ac2ac4
tests: sort fncache
Adrian Buehlmann <adrian@cadifra.com>
parents:
13011
diff
changeset
|
512 $ cat b/.hg/store/fncache | sort |
12510 | 513 data/a.i |
514 data/b.i | |
515 | |
516 test bogus URL | |
517 | |
518 $ hg convert -q bzr+ssh://foobar@selenic.com/baz baz | |
519 abort: bzr+ssh://foobar@selenic.com/baz: missing or unsupported repository | |
520 [255] | |
17002
0eb522625eb2
revset: add a predicate for finding converted changesets
Matt Harbison <matt_harbison@yahoo.com>
parents:
16986
diff
changeset
|
521 |
0eb522625eb2
revset: add a predicate for finding converted changesets
Matt Harbison <matt_harbison@yahoo.com>
parents:
16986
diff
changeset
|
522 test revset converted() lookup |
0eb522625eb2
revset: add a predicate for finding converted changesets
Matt Harbison <matt_harbison@yahoo.com>
parents:
16986
diff
changeset
|
523 |
17345
4f8054d3171b
check-code: fix check for trailing whitespace on sh command lines
Mads Kiilerich <mads@kiilerich.com>
parents:
17267
diff
changeset
|
524 $ hg --config convert.hg.saverev=True convert a c |
17002
0eb522625eb2
revset: add a predicate for finding converted changesets
Matt Harbison <matt_harbison@yahoo.com>
parents:
16986
diff
changeset
|
525 initializing destination c repository |
0eb522625eb2
revset: add a predicate for finding converted changesets
Matt Harbison <matt_harbison@yahoo.com>
parents:
16986
diff
changeset
|
526 scanning source... |
0eb522625eb2
revset: add a predicate for finding converted changesets
Matt Harbison <matt_harbison@yahoo.com>
parents:
16986
diff
changeset
|
527 sorting... |
0eb522625eb2
revset: add a predicate for finding converted changesets
Matt Harbison <matt_harbison@yahoo.com>
parents:
16986
diff
changeset
|
528 converting... |
0eb522625eb2
revset: add a predicate for finding converted changesets
Matt Harbison <matt_harbison@yahoo.com>
parents:
16986
diff
changeset
|
529 4 a |
0eb522625eb2
revset: add a predicate for finding converted changesets
Matt Harbison <matt_harbison@yahoo.com>
parents:
16986
diff
changeset
|
530 3 b |
0eb522625eb2
revset: add a predicate for finding converted changesets
Matt Harbison <matt_harbison@yahoo.com>
parents:
16986
diff
changeset
|
531 2 c |
0eb522625eb2
revset: add a predicate for finding converted changesets
Matt Harbison <matt_harbison@yahoo.com>
parents:
16986
diff
changeset
|
532 1 d |
0eb522625eb2
revset: add a predicate for finding converted changesets
Matt Harbison <matt_harbison@yahoo.com>
parents:
16986
diff
changeset
|
533 0 e |
0eb522625eb2
revset: add a predicate for finding converted changesets
Matt Harbison <matt_harbison@yahoo.com>
parents:
16986
diff
changeset
|
534 $ echo f > c/f |
0eb522625eb2
revset: add a predicate for finding converted changesets
Matt Harbison <matt_harbison@yahoo.com>
parents:
16986
diff
changeset
|
535 $ hg -R c ci -d'0 0' -Amf |
0eb522625eb2
revset: add a predicate for finding converted changesets
Matt Harbison <matt_harbison@yahoo.com>
parents:
16986
diff
changeset
|
536 adding f |
0eb522625eb2
revset: add a predicate for finding converted changesets
Matt Harbison <matt_harbison@yahoo.com>
parents:
16986
diff
changeset
|
537 created new head |
0eb522625eb2
revset: add a predicate for finding converted changesets
Matt Harbison <matt_harbison@yahoo.com>
parents:
16986
diff
changeset
|
538 $ hg -R c log -r "converted(09d945a62ce6)" |
0eb522625eb2
revset: add a predicate for finding converted changesets
Matt Harbison <matt_harbison@yahoo.com>
parents:
16986
diff
changeset
|
539 changeset: 1:98c3dd46a874 |
0eb522625eb2
revset: add a predicate for finding converted changesets
Matt Harbison <matt_harbison@yahoo.com>
parents:
16986
diff
changeset
|
540 user: test |
0eb522625eb2
revset: add a predicate for finding converted changesets
Matt Harbison <matt_harbison@yahoo.com>
parents:
16986
diff
changeset
|
541 date: Thu Jan 01 00:00:01 1970 +0000 |
0eb522625eb2
revset: add a predicate for finding converted changesets
Matt Harbison <matt_harbison@yahoo.com>
parents:
16986
diff
changeset
|
542 summary: b |
0eb522625eb2
revset: add a predicate for finding converted changesets
Matt Harbison <matt_harbison@yahoo.com>
parents:
16986
diff
changeset
|
543 |
0eb522625eb2
revset: add a predicate for finding converted changesets
Matt Harbison <matt_harbison@yahoo.com>
parents:
16986
diff
changeset
|
544 $ hg -R c log -r "converted()" |
0eb522625eb2
revset: add a predicate for finding converted changesets
Matt Harbison <matt_harbison@yahoo.com>
parents:
16986
diff
changeset
|
545 changeset: 0:31ed57b2037c |
0eb522625eb2
revset: add a predicate for finding converted changesets
Matt Harbison <matt_harbison@yahoo.com>
parents:
16986
diff
changeset
|
546 user: test |
0eb522625eb2
revset: add a predicate for finding converted changesets
Matt Harbison <matt_harbison@yahoo.com>
parents:
16986
diff
changeset
|
547 date: Thu Jan 01 00:00:00 1970 +0000 |
0eb522625eb2
revset: add a predicate for finding converted changesets
Matt Harbison <matt_harbison@yahoo.com>
parents:
16986
diff
changeset
|
548 summary: a |
0eb522625eb2
revset: add a predicate for finding converted changesets
Matt Harbison <matt_harbison@yahoo.com>
parents:
16986
diff
changeset
|
549 |
0eb522625eb2
revset: add a predicate for finding converted changesets
Matt Harbison <matt_harbison@yahoo.com>
parents:
16986
diff
changeset
|
550 changeset: 1:98c3dd46a874 |
0eb522625eb2
revset: add a predicate for finding converted changesets
Matt Harbison <matt_harbison@yahoo.com>
parents:
16986
diff
changeset
|
551 user: test |
0eb522625eb2
revset: add a predicate for finding converted changesets
Matt Harbison <matt_harbison@yahoo.com>
parents:
16986
diff
changeset
|
552 date: Thu Jan 01 00:00:01 1970 +0000 |
0eb522625eb2
revset: add a predicate for finding converted changesets
Matt Harbison <matt_harbison@yahoo.com>
parents:
16986
diff
changeset
|
553 summary: b |
0eb522625eb2
revset: add a predicate for finding converted changesets
Matt Harbison <matt_harbison@yahoo.com>
parents:
16986
diff
changeset
|
554 |
0eb522625eb2
revset: add a predicate for finding converted changesets
Matt Harbison <matt_harbison@yahoo.com>
parents:
16986
diff
changeset
|
555 changeset: 2:3b9ca06ef716 |
0eb522625eb2
revset: add a predicate for finding converted changesets
Matt Harbison <matt_harbison@yahoo.com>
parents:
16986
diff
changeset
|
556 user: test |
0eb522625eb2
revset: add a predicate for finding converted changesets
Matt Harbison <matt_harbison@yahoo.com>
parents:
16986
diff
changeset
|
557 date: Thu Jan 01 00:00:02 1970 +0000 |
0eb522625eb2
revset: add a predicate for finding converted changesets
Matt Harbison <matt_harbison@yahoo.com>
parents:
16986
diff
changeset
|
558 summary: c |
0eb522625eb2
revset: add a predicate for finding converted changesets
Matt Harbison <matt_harbison@yahoo.com>
parents:
16986
diff
changeset
|
559 |
0eb522625eb2
revset: add a predicate for finding converted changesets
Matt Harbison <matt_harbison@yahoo.com>
parents:
16986
diff
changeset
|
560 changeset: 3:4e0debd37cf2 |
0eb522625eb2
revset: add a predicate for finding converted changesets
Matt Harbison <matt_harbison@yahoo.com>
parents:
16986
diff
changeset
|
561 user: test |
0eb522625eb2
revset: add a predicate for finding converted changesets
Matt Harbison <matt_harbison@yahoo.com>
parents:
16986
diff
changeset
|
562 date: Thu Jan 01 00:00:03 1970 +0000 |
0eb522625eb2
revset: add a predicate for finding converted changesets
Matt Harbison <matt_harbison@yahoo.com>
parents:
16986
diff
changeset
|
563 summary: d |
0eb522625eb2
revset: add a predicate for finding converted changesets
Matt Harbison <matt_harbison@yahoo.com>
parents:
16986
diff
changeset
|
564 |
0eb522625eb2
revset: add a predicate for finding converted changesets
Matt Harbison <matt_harbison@yahoo.com>
parents:
16986
diff
changeset
|
565 changeset: 4:9de3bc9349c5 |
0eb522625eb2
revset: add a predicate for finding converted changesets
Matt Harbison <matt_harbison@yahoo.com>
parents:
16986
diff
changeset
|
566 user: test |
0eb522625eb2
revset: add a predicate for finding converted changesets
Matt Harbison <matt_harbison@yahoo.com>
parents:
16986
diff
changeset
|
567 date: Thu Jan 01 00:00:04 1970 +0000 |
0eb522625eb2
revset: add a predicate for finding converted changesets
Matt Harbison <matt_harbison@yahoo.com>
parents:
16986
diff
changeset
|
568 summary: e |
0eb522625eb2
revset: add a predicate for finding converted changesets
Matt Harbison <matt_harbison@yahoo.com>
parents:
16986
diff
changeset
|
569 |
25750
c9093d4d1ff6
convert: add config for recording the source name
Durham Goode <durham@fb.com>
parents:
25748
diff
changeset
|
570 |
c9093d4d1ff6
convert: add config for recording the source name
Durham Goode <durham@fb.com>
parents:
25748
diff
changeset
|
571 test specifying a sourcename |
c9093d4d1ff6
convert: add config for recording the source name
Durham Goode <durham@fb.com>
parents:
25748
diff
changeset
|
572 $ echo g > a/g |
c9093d4d1ff6
convert: add config for recording the source name
Durham Goode <durham@fb.com>
parents:
25748
diff
changeset
|
573 $ hg -R a ci -d'0 0' -Amg |
c9093d4d1ff6
convert: add config for recording the source name
Durham Goode <durham@fb.com>
parents:
25748
diff
changeset
|
574 adding g |
c9093d4d1ff6
convert: add config for recording the source name
Durham Goode <durham@fb.com>
parents:
25748
diff
changeset
|
575 $ hg --config convert.hg.sourcename=mysource --config convert.hg.saverev=True convert a c |
c9093d4d1ff6
convert: add config for recording the source name
Durham Goode <durham@fb.com>
parents:
25748
diff
changeset
|
576 scanning source... |
c9093d4d1ff6
convert: add config for recording the source name
Durham Goode <durham@fb.com>
parents:
25748
diff
changeset
|
577 sorting... |
c9093d4d1ff6
convert: add config for recording the source name
Durham Goode <durham@fb.com>
parents:
25748
diff
changeset
|
578 converting... |
c9093d4d1ff6
convert: add config for recording the source name
Durham Goode <durham@fb.com>
parents:
25748
diff
changeset
|
579 0 g |
c9093d4d1ff6
convert: add config for recording the source name
Durham Goode <durham@fb.com>
parents:
25748
diff
changeset
|
580 $ hg -R c log -r tip --template '{extras % "{extra}\n"}' |
c9093d4d1ff6
convert: add config for recording the source name
Durham Goode <durham@fb.com>
parents:
25748
diff
changeset
|
581 branch=default |
c9093d4d1ff6
convert: add config for recording the source name
Durham Goode <durham@fb.com>
parents:
25748
diff
changeset
|
582 convert_revision=a3bc6100aa8ec03e00aaf271f1f50046fb432072 |
c9093d4d1ff6
convert: add config for recording the source name
Durham Goode <durham@fb.com>
parents:
25748
diff
changeset
|
583 convert_source=mysource |