~bzr-pqm/bzr/bzr.dev

« back to all changes in this revision

Viewing changes to bzrlib/export/__init__.py

Merged branch

Show diffs side-by-side

added added

removed removed

Lines of Context:
66
66
    register_exporter(scheme, extensions, _loader)
67
67
    
68
68
def get_export_generator(tree, dest=None, format=None, root=None, subdir=None,
69
 
                          filtered=False, per_file_timestamps=False, fileobj=None):
70
 
    """Returns a generator that exports the given tree to the specific destination.
 
69
                         filtered=False, per_file_timestamps=False,
 
70
                         fileobj=None):
 
71
    """Returns a generator that exports the given tree.
71
72
    
72
 
    The generator is expected to yield None while exporting the tree
 
73
    The generator is expected to yield None while exporting the tree while the
 
74
    actual export is written to ``fileobj``.
73
75
 
74
76
    :param tree: A Tree (such as RevisionTree) to export
75
 
    :param dest: The destination where the files,etc should be put
 
77
 
 
78
    :param dest: The destination where the files, etc should be put
 
79
 
76
80
    :param format: The format (dir, zip, etc), if None, it will check the
77
 
                   extension on dest, looking for a match
78
 
    :param root: The root location inside the format.
79
 
                 It is common practise to have zipfiles and tarballs
80
 
                 extract into a subdirectory, rather than into the
81
 
                 current working directory.
82
 
                 If root is None, the default root will be
83
 
                 selected as the destination without its
84
 
                 extension.
 
81
        extension on dest, looking for a match
 
82
 
 
83
    :param root: The root location inside the format.  It is common practise to
 
84
        have zipfiles and tarballs extract into a subdirectory, rather than
 
85
        into the current working directory.  If root is None, the default root
 
86
        will be selected as the destination without its extension.
 
87
 
85
88
    :param subdir: A starting directory within the tree. None means to export
86
89
        the entire tree, and anything else should specify the relative path to
87
90
        a directory to start exporting from.
88
 
    :param filtered: If True, content filtering is applied to the
89
 
                     files exported.
90
 
    :param per_file_timestamps: Whether to use the timestamp stored in the 
91
 
        tree rather than now(). This will do a revision lookup 
92
 
        for every file so will be significantly slower.
 
91
 
 
92
    :param filtered: If True, content filtering is applied to the exported
 
93
        files.
 
94
 
 
95
    :param per_file_timestamps: Whether to use the timestamp stored in the tree
 
96
        rather than now(). This will do a revision lookup for every file so
 
97
        will be significantly slower.
 
98
 
93
99
    :param fileobj: Optional file object to use
94
100
    """
95
101
    global _exporters, _exporter_extensions
118
124
    try:
119
125
        tree.lock_read()
120
126
    
121
 
        for _ in _exporters[format](tree, dest, root, subdir, filtered=filtered, 
 
127
        for _ in _exporters[format](tree, dest, root, subdir,
 
128
                                    filtered=filtered, 
122
129
                                    force_mtime=force_mtime, fileobj=fileobj):
123
130
            
124
131
            yield
206
213
        yield final_path, entry
207
214
 
208
215
 
209
 
register_lazy_exporter(None, [], 'bzrlib.export.dir_exporter', 'dir_exporter_generator')
210
 
register_lazy_exporter('dir', [], 'bzrlib.export.dir_exporter', 'dir_exporter_generator')
211
 
register_lazy_exporter('tar', ['.tar'], 'bzrlib.export.tar_exporter', 'plain_tar_exporter_generator')
212
 
register_lazy_exporter('tgz', ['.tar.gz', '.tgz'], 'bzrlib.export.tar_exporter', 'tgz_exporter_generator')
213
 
register_lazy_exporter('tbz2', ['.tar.bz2', '.tbz2'], 'bzrlib.export.tar_exporter', 'tbz_exporter_generator')
214
 
register_lazy_exporter('tlzma', ['.tar.lzma'], 'bzrlib.export.tar_exporter', 'tar_lzma_exporter_generator')
215
 
register_lazy_exporter('txz', ['.tar.xz'], 'bzrlib.export.tar_exporter', 'tar_xz_exporte_generatorr')
216
 
register_lazy_exporter('zip', ['.zip'], 'bzrlib.export.zip_exporter', 'zip_exporter_generator')
 
216
register_lazy_exporter(None, [], 'bzrlib.export.dir_exporter',
 
217
                       'dir_exporter_generator')
 
218
register_lazy_exporter('dir', [], 'bzrlib.export.dir_exporter',
 
219
                       'dir_exporter_generator')
 
220
register_lazy_exporter('tar', ['.tar'], 'bzrlib.export.tar_exporter',
 
221
                       'plain_tar_exporter_generator')
 
222
register_lazy_exporter('tgz', ['.tar.gz', '.tgz'], 'bzrlib.export.tar_exporter',
 
223
                       'tgz_exporter_generator')
 
224
register_lazy_exporter('tbz2', ['.tar.bz2', '.tbz2'],
 
225
                       'bzrlib.export.tar_exporter', 'tbz_exporter_generator')
 
226
register_lazy_exporter('tlzma', ['.tar.lzma'], 'bzrlib.export.tar_exporter',
 
227
                       'tar_lzma_exporter_generator')
 
228
register_lazy_exporter('txz', ['.tar.xz'], 'bzrlib.export.tar_exporter',
 
229
                       'tar_xz_exporte_generatorr')
 
230
register_lazy_exporter('zip', ['.zip'], 'bzrlib.export.zip_exporter',
 
231
                       'zip_exporter_generator')
217
232