/brz/remove-bazaar

To get this branch, use:
bzr branch http://gegoxaren.bato24.eu/bzr/brz/remove-bazaar
2052.3.2 by John Arbash Meinel
Change Copyright .. by Canonical to Copyright ... Canonical
1
# Copyright (C) 2006 Canonical Ltd
1910.2.64 by Aaron Bentley
Changes from review
2
#
3
# This program is free software; you can redistribute it and/or modify
4
# it under the terms of the GNU General Public License as published by
5
# the Free Software Foundation; either version 2 of the License, or
6
# (at your option) any later version.
7
#
8
# This program is distributed in the hope that it will be useful,
9
# but WITHOUT ANY WARRANTY; without even the implied warranty of
10
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
11
# GNU General Public License for more details.
12
#
13
# You should have received a copy of the GNU General Public License
14
# along with this program; if not, write to the Free Software
4183.7.1 by Sabin Iacob
update FSF mailing address
15
# Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
1910.2.64 by Aaron Bentley
Changes from review
16
6379.6.3 by Jelmer Vernooij
Use absolute_import.
17
from __future__ import absolute_import
18
6622.1.34 by Jelmer Vernooij
Rename brzlib => breezy.
19
from breezy.bundle.serializer import _get_bundle_header
20
from breezy.bundle.serializer.v08 import BundleSerializerV08, BundleReader
21
from breezy.bundle.bundle_data import BundleInfo
1910.2.50 by Aaron Bentley
start work on format 0.9 serializer
22
7206.4.1 by Jelmer Vernooij
Move breezy.testament to breezy.bzr.testament.
23
from breezy.bzr.testament import StrictTestament3
24
1910.2.62 by Aaron Bentley
Cleanups
25
1910.2.64 by Aaron Bentley
Changes from review
26
"""Serializer for bundle format 0.9"""
27
28
1910.2.50 by Aaron Bentley
start work on format 0.9 serializer
29
class BundleSerializerV09(BundleSerializerV08):
1910.2.62 by Aaron Bentley
Cleanups
30
    """Serializer for bzr bundle format 0.9
3943.8.1 by Marius Kruger
remove all trailing whitespace from bzr source
31
1910.2.62 by Aaron Bentley
Cleanups
32
    This format supports rich root data, for the nested-trees work, but also
33
    supports repositories that don't have rich root data.  It cannot be
34
    used to transfer from a knit2 repo into a knit1 repo, because that would
35
    be lossy.
36
    """
1910.2.50 by Aaron Bentley
start work on format 0.9 serializer
37
38
    def check_compatible(self):
39
        pass
1910.2.51 by Aaron Bentley
Bundles now corrupt repositories
40
41
    def _write_main_header(self):
42
        """Write the header for the changes"""
43
        f = self.to_file
6973.7.8 by Jelmer Vernooij
Fix more tests.
44
        f.write(_get_bundle_header('0.9') + b'#\n')
1910.2.51 by Aaron Bentley
Bundles now corrupt repositories
45
1910.2.55 by Aaron Bentley
Bundle 0.9 uses Testament 3 strict
46
    def _testament_sha1(self, revision_id):
3943.8.1 by Marius Kruger
remove all trailing whitespace from bzr source
47
        return StrictTestament3.from_revision(self.source,
1910.2.55 by Aaron Bentley
Bundle 0.9 uses Testament 3 strict
48
                                              revision_id).as_sha1()
49
50
    def read(self, f):
51
        """Read the rest of the bundles from the supplied file.
52
53
        :param f: The file to read from
54
        :return: A list of bundles
55
        """
56
        return BundleReaderV09(f).info
57
58
59
class BundleInfo09(BundleInfo):
1910.2.64 by Aaron Bentley
Changes from review
60
    """BundleInfo that uses StrictTestament3
3943.8.1 by Marius Kruger
remove all trailing whitespace from bzr source
61
1910.2.62 by Aaron Bentley
Cleanups
62
    This means that the root data is included in the testament.
63
    """
1910.2.55 by Aaron Bentley
Bundle 0.9 uses Testament 3 strict
64
65
    def _testament_sha1_from_revision(self, repository, revision_id):
1910.2.64 by Aaron Bentley
Changes from review
66
        testament = StrictTestament3.from_revision(repository, revision_id)
1910.2.55 by Aaron Bentley
Bundle 0.9 uses Testament 3 strict
67
        return testament.as_sha1()
68
5798.1.2 by Jelmer Vernooij
Fix some tests.
69
    def _testament_sha1(self, revision, tree):
70
        return StrictTestament3(revision, tree).as_sha1()
1910.2.55 by Aaron Bentley
Bundle 0.9 uses Testament 3 strict
71
1910.2.56 by Aaron Bentley
More work on bundles
72
1910.2.55 by Aaron Bentley
Bundle 0.9 uses Testament 3 strict
73
class BundleReaderV09(BundleReader):
1910.2.62 by Aaron Bentley
Cleanups
74
    """BundleReader for 0.9 bundles"""
3943.8.1 by Marius Kruger
remove all trailing whitespace from bzr source
75
1910.2.55 by Aaron Bentley
Bundle 0.9 uses Testament 3 strict
76
    def _get_info(self):
77
        return BundleInfo09()