diff options
author | Ian Clatworthy <ian.clatworthy@canonical.com> | 2009-08-24 06:57:19 +1000 |
---|---|---|
committer | Ian Clatworthy <ian.clatworthy@canonical.com> | 2009-08-24 06:57:19 +1000 |
commit | b42f5e0a791a31cc336e2e797df8d7811e283d1f (patch) | |
tree | 220c727f705c61b4a03e6c8a26daa4a6b96a7618 | |
parent | d3d86853d56b8b87f75a15ffbc8c72538d6eb72a (diff) | |
download | bzr-fastimport-b42f5e0a791a31cc336e2e797df8d7811e283d1f.tar.gz |
Use the new marks file format (introduced in git 1.6 apparently)
-rwxr-xr-x | bzr_exporter.py | 8 | ||||
-rw-r--r-- | marks_file.py | 42 |
2 files changed, 11 insertions, 39 deletions
diff --git a/bzr_exporter.py b/bzr_exporter.py index 38b7656..16d942a 100755 --- a/bzr_exporter.py +++ b/bzr_exporter.py @@ -110,8 +110,9 @@ class BzrFastExporter(object): marks_info = marks_file.import_marks(self.import_marks_file) if marks_info is not None: self.revid_to_mark = dict((r, m) for m, r in - marks_info[0].items()) - self.branch_names = marks_info[1] + marks_info.items()) + # These are no longer included in the marks file + #self.branch_names = marks_info[1] def interesting_history(self): if self.revision: @@ -195,8 +196,7 @@ class BzrFastExporter(object): def _save_marks(self): if self.export_marks_file: revision_ids = dict((m, r) for r, m in self.revid_to_mark.items()) - marks_file.export_marks(self.export_marks_file, revision_ids, - self.branch_names) + marks_file.export_marks(self.export_marks_file, revision_ids) def is_empty_dir(self, tree, path): path_id = tree.path2id(path) diff --git a/marks_file.py b/marks_file.py index 96e3cab..ab24be2 100644 --- a/marks_file.py +++ b/marks_file.py @@ -25,11 +25,8 @@ def import_marks(filename): """Read the mapping of marks to revision-ids from a file. :param filename: the file to read from - :return: None if an error is encountered or (revision_ids, branch_names) - where - * revision_ids is a dictionary with marks as keys and revision-ids - as values - * branch_names is a dictionary mapping branch names to some magic # + :return: None if an error is encountered or a dictionary with marks + as keys and revision-ids as values """ # Check that the file is readable and in the right format try: @@ -38,41 +35,24 @@ def import_marks(filename): warning("Could not import marks file %s - not importing marks", filename) return None - firstline = f.readline() - match = re.match(r'^format=(\d+)$', firstline) - if not match: - warning("%r doesn't look like a marks file - not importing marks", - filename) - return None - elif match.group(1) != '1': - warning('format version in marks file %s not supported - not importing' - 'marks', filename) - return None - # Read the branch info - branch_names = {} - for string in f.readline().rstrip('\n').split('\0'): - if not string: - continue - name, integer = string.rsplit('.', 1) - branch_names[name] = int(integer) - # Read the revision info revision_ids = {} for line in f: line = line.rstrip('\n') mark, revid = line.split(' ', 1) + if mark.startswith(':'): + mark = mark[1:] revision_ids[mark] = revid f.close() - return (revision_ids, branch_names) + return revision_ids -def export_marks(filename, revision_ids, branch_names=None): +def export_marks(filename, revision_ids): """Save marks to a file. :param filename: filename to save data to :param revision_ids: dictionary mapping marks -> bzr revision-ids - :param branch_names: dictionary mapping branch names to some magic # """ try: f = file(filename, 'w') @@ -80,16 +60,8 @@ def export_marks(filename, revision_ids, branch_names=None): warning("Could not open export-marks file %s - not exporting marks", filename) return - f.write('format=1\n') - - # Write the branch names line - if branch_names: - branch_names = [ '%s.%d' % x for x in branch_names.iteritems() ] - f.write('\0'.join(branch_names) + '\n') - else: - f.write('\0tmp.0\n') # Write the revision info for mark, revid in revision_ids.iteritems(): - f.write('%s %s\n' % (mark, revid)) + f.write(':%s %s\n' % (mark, revid)) f.close() |