/brz/remove-bazaar

To get this branch, use:
bzr branch http://gegoxaren.bato24.eu/bzr/brz/remove-bazaar

« back to all changes in this revision

Viewing changes to bzrlib/repofmt/weaverepo.py

1st cut merge of bzr.dev r3907

Show diffs side-by-side

added added

removed removed

Lines of Context:
24
24
from cStringIO import StringIO
25
25
import urllib
26
26
 
 
27
from bzrlib.lazy_import import lazy_import
 
28
lazy_import(globals(), """
 
29
from bzrlib import (
 
30
    xml5,
 
31
    )
 
32
""")
27
33
from bzrlib import (
28
34
    bzrdir,
29
35
    debug,
32
38
    lockdir,
33
39
    osutils,
34
40
    revision as _mod_revision,
 
41
    urlutils,
35
42
    versionedfile,
36
43
    weave,
37
44
    weavefile,
38
 
    xml5,
39
45
    )
40
46
from bzrlib.decorators import needs_read_lock, needs_write_lock
41
47
from bzrlib.repository import (
58
64
class AllInOneRepository(Repository):
59
65
    """Legacy support - the repository behaviour for all-in-one branches."""
60
66
 
61
 
    _serializer = xml5.serializer_v5
 
67
    @property
 
68
    def _serializer(self):
 
69
        return xml5.serializer_v5
 
70
 
 
71
    def _escape(self, file_or_path):
 
72
        if not isinstance(file_or_path, basestring):
 
73
            file_or_path = '/'.join(file_or_path)
 
74
        if file_or_path == '':
 
75
            return u''
 
76
        return urlutils.escape(osutils.safe_unicode(file_or_path))
62
77
 
63
78
    def __init__(self, _format, a_bzrdir):
64
79
        # we reuse one control files instance.
70
85
            # or entirely uncompressed is tidy, but breaks upgrade from 
71
86
            # some existing branches where there's a mixture; we probably 
72
87
            # still want the option to look for both.
73
 
            relpath = a_bzrdir._control_files._escape(name)
 
88
            relpath = self._escape(name)
74
89
            store = TextStore(a_bzrdir.transport.clone(relpath),
75
90
                              prefixed=prefixed, compressed=compressed,
76
91
                              dir_mode=dir_mode,
177
192
class WeaveMetaDirRepository(MetaDirVersionedFileRepository):
178
193
    """A subclass of MetaDirRepository to set weave specific policy."""
179
194
 
180
 
    _serializer = xml5.serializer_v5
 
195
    @property
 
196
    def _serializer(self):
 
197
        return xml5.serializer_v5
181
198
 
182
199
    def __init__(self, _format, a_bzrdir, control_files):
183
200
        super(WeaveMetaDirRepository, self).__init__(_format, a_bzrdir, control_files)