Skip to content
Snippets Groups Projects
Commit 5b159ebb authored by Bryan O'Sullivan's avatar Bryan O'Sullivan
Browse files

convert: document splicemap, allow setting of multiple parents

parent 50a277e6
No related branches found
No related tags found
No related merge requests found
......@@ -67,6 +67,17 @@
subdirectory into the root of the repository, use '.' as the path to
rename to.
The splicemap is a file that allows insertion of synthetic
history, letting you specify the parents of a revision. This is
useful if you want to e.g. give a Subversion merge two parents, or
graft two disconnected series of history together. Each entry
contains a key, followed by a space, followed by one or two
values, separated by spaces. The key is the revision ID in the
source revision control system whose parents should be modified
(same format as a key in .hg/shamap). The values are the revision
IDs (in either the source or destination revision control system)
that should be used as the new parents for that node.
Back end options:
--config convert.hg.clonebranches=False (boolean)
......@@ -100,6 +111,7 @@
('', 'filemap', '', 'remap file names using contents of file'),
('r', 'rev', '', 'import up to target revision REV'),
('s', 'source-type', '', 'source repository type'),
('', 'splicemap', '', 'splice synthesized history into place'),
('', 'datesort', None, 'try to sort changesets by date')],
'hg convert [OPTION]... SOURCE [DEST [MAPFILE]]'),
"debugsvnlog":
......
......@@ -84,7 +84,7 @@
self.readauthormap(opts.get('authors'))
self.authorfile = self.dest.authorfile()
self.splicemap = mapfile(ui, ui.config('convert', 'splicemap'))
self.splicemap = mapfile(ui, opts.get('splicemap'))
def walktree(self, heads):
'''Return a mapping that identifies the uncommitted parents of every
......@@ -252,9 +252,10 @@
self.dest.copyfile(copyf, f)
try:
parents = [self.splicemap[rev]]
self.ui.debug('spliced in %s as parents of %s\n' %
(parents, rev))
parents = self.splicemap[rev].replace(',', ' ').split()
self.ui.status('spliced in %s as parents of %s\n' %
(parents, rev))
parents = [self.map.get(p, p) for p in parents]
except KeyError:
parents = [b[0] for b in pbranches]
newnode = self.dest.putcommit(filenames, parents, commit)
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment