1
# Copyright (C) 2005 Canonical Ltd
1
# Copyright (C) 2005-2010 Canonical Ltd
3
3
# This program is free software; you can redistribute it and/or modify
4
4
# it under the terms of the GNU General Public License as published by
19
19
Such as non-controlled directories, tarfiles, zipfiles, etc.
22
from bzrlib.trace import mutter
24
23
import bzrlib.errors as errors
56
55
When requesting a specific type of export, load the respective path.
58
def _loader(tree, dest, root, subdir, filtered):
57
def _loader(tree, dest, root, subdir, filtered, per_file_timestamps):
59
58
mod = __import__(module, globals(), locals(), [funcname])
60
59
func = getattr(mod, funcname)
61
return func(tree, dest, root, subdir, filtered=filtered)
60
return func(tree, dest, root, subdir, filtered=filtered,
61
per_file_timestamps=per_file_timestamps)
62
62
register_exporter(scheme, extensions, _loader)
65
def export(tree, dest, format=None, root=None, subdir=None, filtered=False):
65
def export(tree, dest, format=None, root=None, subdir=None, filtered=False,
66
per_file_timestamps=False):
66
67
"""Export the given Tree to the specific destination.
68
69
:param tree: A Tree (such as RevisionTree) to export
81
82
a directory to start exporting from.
82
83
:param filtered: If True, content filtering is applied to the
85
:param per_file_timestamps: Whether to use the timestamp stored in the
86
tree rather than now(). This will do a revision lookup
87
for every file so will be significantly slower.
85
89
global _exporters, _exporter_extensions
99
103
raise errors.NoSuchExportFormat(format)
102
return _exporters[format](tree, dest, root, subdir, filtered=filtered)
106
return _exporters[format](tree, dest, root, subdir, filtered=filtered,
107
per_file_timestamps=per_file_timestamps)