~bzr-pqm/bzr/bzr.dev

« back to all changes in this revision

Viewing changes to bzrlib/export/__init__.py

Major code cleanup.

Show diffs side-by-side

added added

removed removed

Lines of Context:
61
61
    """
62
62
    def _loader(tree, dest, root, subdir, filtered, force_mtime, per_file_timestamps, fileobj):
63
63
        func = pyutils.get_named_object(module, funcname)
64
 
        return func(tree, dest, root, subdir, filtered=filtered,
65
 
                    force_mtime=force_mtime, per_file_timestamps=per_file_timestamps, fileobj=fileobj)
 
64
        return func(tree, dest, root, subdir, filtered, force_mtime, per_file_timestamps, fileobj)
66
65
    register_exporter(scheme, extensions, _loader)
67
66
    
68
 
def get_export_generator(tree, dest=None, format=None, root=None, subdir=None, filtered=False,
69
 
           per_file_timestamps=False, fileobj=None):
70
 
    
 
67
def get_export_generator(tree, dest=None, format=None, root=None, subdir=None, filtered=False, per_file_timestamps=False, fileobj=None):
71
68
    """Returns a generator that exports the given Tree to the specific destination.
72
69
 
73
70
    :param tree: A Tree (such as RevisionTree) to export
115
112
    trace.mutter('export version %r', tree)
116
113
 
117
114
    tree.lock_read()
118
 
    try:
119
 
        return _exporters[format](tree, dest, root, subdir, filtered=filtered,
120
 
                                  force_mtime=force_mtime, fileobj=fileobj)
121
 
    finally:
122
 
        tree.unlock()
123
 
 
124
 
 
125
 
def export(tree, dest, format=None, root=None, subdir=None, filtered=False,
126
 
           per_file_timestamps=False, fileobj=None):
 
115
 
 
116
    for _ in _exporters[format](tree, dest, root, subdir, filtered, force_mtime, per_file_timestamps, fileobj):
 
117
        
 
118
        yield
 
119
        
 
120
    tree.unlock()
 
121
 
 
122
 
 
123
def export(tree, dest, format=None, root=None, subdir=None, filtered=False, per_file_timestamps=False, fileobj=None):
127
124
    """Export the given Tree to the specific destination.
128
125
 
129
126
    :param tree: A Tree (such as RevisionTree) to export
147
144
        for every file so will be significantly slower.
148
145
    :param fileobj: Optional file object to use
149
146
    """
150
 
    for _ in get_export_generator(tree, dest, format=format, root=root, subdir=subdir,
151
 
                                  filtered=filtered, per_file_timestamps=per_file_timestamps,fileobj=fileobj):
 
147
    for _ in get_export_generator(tree, dest, format, root, subdir, filtered, per_file_timestamps, fileobj):
 
148
        
152
149
        pass
153
150
 
154
 
 
155
 
 
156
151
def get_root_name(dest):
157
152
    """Get just the root name for an export.
158
153
 
199
194
            final_path = path
200
195
        if not tree.has_filename(path):
201
196
            continue
 
197
        
202
198
        yield final_path, entry
203
199
 
204
200