summaryrefslogtreecommitdiff
path: root/exporters
diff options
context:
space:
mode:
authorMatt McClure <mlm@aya.yale.edu>2009-08-16 18:34:35 -0400
committerMatt McClure <mlm@aya.yale.edu>2009-08-16 18:34:35 -0400
commit1a25cf0b400e14055972a1a6a988d639036dc29a (patch)
treea57d141497e4d0a1b8fe525069feff038576c698 /exporters
parentbbb0342c1089033ce3f2e4d7083b9a7b150106c8 (diff)
downloadbzr-fastimport-1a25cf0b400e14055972a1a6a988d639036dc29a.tar.gz
Adds a fast-export-from-p4 command.
Diffstat (limited to 'exporters')
-rw-r--r--exporters/__init__.py22
1 files changed, 22 insertions, 0 deletions
diff --git a/exporters/__init__.py b/exporters/__init__.py
index 64b02b6..9eaf26b 100644
--- a/exporters/__init__.py
+++ b/exporters/__init__.py
@@ -258,6 +258,26 @@ class MonotoneExporter(_Exporter):
self.report_results(retcode, destination)
+class PerforceExporter(_Exporter):
+
+ def __init__(self):
+ self.check_install('bzrp4', '', None, ['bzrlib.plugins.bzrp4'])
+
+ def generate(self, source, destination, verbose=False, custom=None):
+ """Generate a fast import stream. See _Exporter.generate() for details."""
+ from bzrlib.plugins.bzrp4 import p4_fast_export
+ outf, base, marks = self.get_output_info(destination)
+ # Marks aren't supported by p4_fast_export so no need to set that
+ # option
+ original_stdout = sys.stdout
+ sys.stdout = outf
+ try:
+ retcode = p4_fast_export.main([source])
+ finally:
+ sys.stdout = original_stdout
+ self.report_results(retcode, destination)
+
+
class SubversionExporter(_Exporter):
def __init__(self):
@@ -288,6 +308,8 @@ def fast_export_from(source, destination, tool, verbose=False, custom=None):
factory = GitExporter
elif tool == 'mnt':
factory = MonotoneExporter
+ elif tool == 'p4':
+ factory = PerforceExporter
elif tool == 'svn':
factory = SubversionExporter
try: