Skip to content
Snippets Groups Projects
Commit a3545c31 authored by Sean Farley's avatar Sean Farley
Browse files

convert: add parseclosemap method

This is a copy of the parsesplicemap method and will serve as a way to specify
which changesets to close while converting.
parent e8203629
No related branches found
No related tags found
No related merge requests found
......@@ -120,6 +120,42 @@
self.splicemap = self.parsesplicemap(opts.get('splicemap'))
self.branchmap = mapfile(ui, opts.get('branchmap'))
self.closemap = self.parseclosemap(opts.get('closemap'))
def parseclosemap(self, path):
""" check and validate the closemap format and
return a list of revs to close.
Format checking has two parts.
1. generic format which is same across all source types
2. specific format checking which may be different for
different source type. This logic is implemented in
checkrevformat function in source files like
hg.py, subversion.py etc.
"""
if not path:
return []
m = []
try:
fp = open(path, 'r')
for i, line in enumerate(fp):
line = line.splitlines()[0].rstrip()
if not line:
# Ignore blank lines
continue
# split line
lex = shlex.shlex(line, posix=True)
lex.whitespace_split = True
lex.whitespace += ','
line = list(lex)
for part in line:
self.source.checkrevformat(part, 'closemap')
m.extend(line)
# if file does not exist or error reading, exit
except IOError:
raise util.Abort(_('closemap file not found or error reading %s:')
% path)
return m
def parsesplicemap(self, path):
""" check and validate the splicemap format and
......@@ -408,6 +444,9 @@
except KeyError:
parents = [b[0] for b in pbranches]
source = progresssource(self.ui, self.source, len(files))
if self.closemap and rev in self.closemap:
commit.extra['close'] = 1
newnode = self.dest.putcommit(files, copies, parents, commit,
source, self.map)
source.close()
......
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