diff options
author | Richard Wilbur <richard.wilbur@gmail.com> | 2014-04-15 23:45:18 -0600 |
---|---|---|
committer | Richard Wilbur <richard.wilbur@gmail.com> | 2014-04-15 23:45:18 -0600 |
commit | 77b2c2fe733f9ada57878c60814d4224804d74f6 (patch) | |
tree | ec9346c8845ccf66a28ed54db26b4968ad57cc8d | |
parent | 0fef0ad22cb027f0a6c8de4e79008f493e681b4d (diff) | |
parent | 4ad3c96f40b1842bca3506bbe43318f92235e93d (diff) | |
download | bzr-fastimport-77b2c2fe733f9ada57878c60814d4224804d74f6.tar.gz |
Add a flag to fast-export to not export tags.(Alex Usov)
-rw-r--r-- | cmds.py | 7 | ||||
-rw-r--r-- | exporter.py | 6 | ||||
-rw-r--r-- | tests/test_commands.py | 10 |
3 files changed, 19 insertions, 4 deletions
@@ -682,12 +682,15 @@ class cmd_fast_export(Command): help="Export an 'absolute' baseline commit prior to" "the first relative commit", ), + Option('no-tags', + help="Don't export tags" + ), ] encoding_type = 'exact' def run(self, source=None, destination=None, verbose=False, git_branch="master", checkpoint=10000, marks=None, import_marks=None, export_marks=None, revision=None, - plain=True, rewrite_tag_names=False, baseline=False): + plain=True, rewrite_tag_names=False, no_tags=False, baseline=False): load_fastimport() from bzrlib.branch import Branch from bzrlib.plugins.fastimport import exporter @@ -704,5 +707,5 @@ class cmd_fast_export(Command): outf=outf, ref="refs/heads/%s" % git_branch, checkpoint=checkpoint, import_marks_file=import_marks, export_marks_file=export_marks, revision=revision, verbose=verbose, plain_format=plain, - rewrite_tags=rewrite_tag_names, baseline=baseline) + rewrite_tags=rewrite_tag_names, no_tags=no_tags, baseline=baseline) return exporter.run() diff --git a/exporter.py b/exporter.py index 8a75a5d..f75399d 100644 --- a/exporter.py +++ b/exporter.py @@ -149,7 +149,7 @@ class BzrFastExporter(object): def __init__(self, source, outf, ref=None, checkpoint=-1, import_marks_file=None, export_marks_file=None, revision=None, verbose=False, plain_format=False, rewrite_tags=False, - baseline=False): + no_tags=False, baseline=False): """Export branch data in fast import format. :param plain_format: if True, 'classic' fast-import format is @@ -160,6 +160,7 @@ class BzrFastExporter(object): will be rewritten to be git-compatible. Otherwise tags which aren't valid for git will be skipped if plain_format is set. + :param no_tags: if True tags won't be exported at all """ self.branch = source self.outf = outf @@ -171,6 +172,7 @@ class BzrFastExporter(object): self.excluded_revisions = set() self.plain_format = plain_format self.rewrite_tags = rewrite_tags + self.no_tags = no_tags self.baseline = baseline self._multi_author_api_available = hasattr(bzrlib.revision.Revision, 'get_apparent_authors') @@ -236,7 +238,7 @@ class BzrFastExporter(object): self.emit_baseline(interesting.pop(0), self.ref) for revid in interesting: self.emit_commit(revid, self.ref) - if self.branch.supports_tags(): + if self.branch.supports_tags() and not self.no_tags: self.emit_tags() finally: self.branch.repository.unlock() diff --git a/tests/test_commands.py b/tests/test_commands.py index 88fefd2..d5eee28 100644 --- a/tests/test_commands.py +++ b/tests/test_commands.py @@ -134,6 +134,16 @@ class TestFastExport(ExternalBase): # "bad Tag" should be exported as bad_Tag self.assertNotEqual(-1, data.find("reset refs/tags/bad_Tag")) + def test_no_tags(self): + tree = self.make_branch_and_tree("br") + tree.commit("pointless") + self.assertTrue(tree.branch.supports_tags()) + rev_id = tree.branch.dotted_revno_to_revision_id((1,)) + tree.branch.tags.set_tag("someTag", rev_id) + + data = self.run_bzr("fast-export --plain --no-tags br")[0] + self.assertEqual(-1, data.find("reset refs/tags/someTag")) + def test_baseline_option(self): tree = self.make_branch_and_tree("bl") |