diff options
author | Matt McClure <mlm@aya.yale.edu> | 2009-08-16 18:34:35 -0400 |
---|---|---|
committer | Matt McClure <mlm@aya.yale.edu> | 2009-08-16 18:34:35 -0400 |
commit | 1a25cf0b400e14055972a1a6a988d639036dc29a (patch) | |
tree | a57d141497e4d0a1b8fe525069feff038576c698 /exporters | |
parent | bbb0342c1089033ce3f2e4d7083b9a7b150106c8 (diff) | |
download | bzr-fastimport-1a25cf0b400e14055972a1a6a988d639036dc29a.tar.gz |
Adds a fast-export-from-p4 command.
Diffstat (limited to 'exporters')
-rw-r--r-- | exporters/__init__.py | 22 |
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: |