1
# (C) 2005 Canonical Development Ltd
1
# (C) 2005-2006 Canonical Development 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
101
def write_bundle(repository, revision_id, base_revision_id, out):
99
def write_bundle(repository, revision_id, base_revision_id, out, format=None):
103
101
repository.lock_read()
105
return _write_bundle(repository, revision_id, base_revision_id, out)
103
return _write_bundle(repository, revision_id, base_revision_id, out,
107
106
repository.unlock()
110
def _write_bundle(repository, revision_id, base_revision_id, out):
109
def _write_bundle(repository, revision_id, base_revision_id, out, format):
110
"""Write a bundle of revisions.
112
:param repository: Repository containing revisions to serialize.
113
:param revision_id: Head revision_id of the bundle.
114
:param base_revision_id: Revision assumed to be present in repositories
116
:param out: Output file.
111
118
if base_revision_id is NULL_REVISION:
112
119
base_revision_id = None
113
120
base_ancestry = set(repository.get_ancestry(base_revision_id))
114
121
revision_ids = [r for r in repository.get_ancestry(revision_id) if r
115
122
not in base_ancestry]
116
123
revision_ids = list(reversed(revision_ids))
117
write(repository, revision_ids, out,
124
write(repository, revision_ids, out, format,
118
125
forced_bases = {revision_id:base_revision_id})
119
126
return revision_ids
290
297
to_file.write('\n')
292
299
register_lazy('0.8', 'bzrlib.bundle.serializer.v08', 'BundleSerializerV08')
300
register_lazy('0.9', 'bzrlib.bundle.serializer.v09', 'BundleSerializerV09')
293
301
register_lazy(None, 'bzrlib.bundle.serializer.v08', 'BundleSerializerV08')