summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorRichard Wilbur <richard.wilbur@gmail.com>2014-04-15 23:45:18 -0600
committerRichard Wilbur <richard.wilbur@gmail.com>2014-04-15 23:45:18 -0600
commit77b2c2fe733f9ada57878c60814d4224804d74f6 (patch)
treeec9346c8845ccf66a28ed54db26b4968ad57cc8d
parent0fef0ad22cb027f0a6c8de4e79008f493e681b4d (diff)
parent4ad3c96f40b1842bca3506bbe43318f92235e93d (diff)
downloadbzr-fastimport-77b2c2fe733f9ada57878c60814d4224804d74f6.tar.gz
Add a flag to fast-export to not export tags.(Alex Usov)
-rw-r--r--cmds.py7
-rw-r--r--exporter.py6
-rw-r--r--tests/test_commands.py10
3 files changed, 19 insertions, 4 deletions
diff --git a/cmds.py b/cmds.py
index 5f93105..34aa51a 100644
--- a/cmds.py
+++ b/cmds.py
@@ -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")