/brz/remove-bazaar

To get this branch, use:
bzr branch http://gegoxaren.bato24.eu/bzr/brz/remove-bazaar
0.196.16 by Jelmer Vernooij
Clarify license, copyright.
1
# Copyright (C) 2010-2012 Jelmer Vernooij <jelmer@samba.org>
0.196.1 by Jelmer Vernooij
Add simple foreign branch plugin for monotone.
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; version 3 of the License or 
6
# (at your option) a 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
15
# Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307  USA
16
17
"""Monotone foreign branch support.
18
19
Currently only tells the user that Monotone is not supported.
20
"""
21
0.196.12 by Jelmer Vernooij
Use absolute import.
22
from __future__ import absolute_import
23
6652.2.2 by Jelmer Vernooij
Bundle mtn plugin.
24
from ... import version_info
25
26
from ... import (
0.196.1 by Jelmer Vernooij
Add simple foreign branch plugin for monotone.
27
    controldir,
28
    errors,
29
    )
30
31
0.196.6 by Jelmer Vernooij
Implement .check_status.
32
class MonotoneUnsupportedError(errors.UnsupportedFormatError):
33
34
    _fmt = ('Monotone branches are not yet supported. '
35
            'To convert monotone branches to Bazaar branches or vice versa, '
36
            'use bzr-fastimport. See http://bazaar-vcs.org/BzrMigration.')
37
38
0.196.1 by Jelmer Vernooij
Add simple foreign branch plugin for monotone.
39
class MonotoneDirFormat(controldir.ControlDirFormat):
40
    """Monotone directory format."""
41
42
    def get_converter(self):
43
        raise NotImplementedError(self.get_converter)
44
45
    def get_format_description(self):
46
        return "Monotone control directory"
47
48
    def initialize_on_transport(self, transport):
0.196.4 by Jelmer Vernooij
Raise UninitializableFormat on initialize.
49
        raise errors.UninitializableFormat(self)
0.196.1 by Jelmer Vernooij
Add simple foreign branch plugin for monotone.
50
0.196.3 by Jelmer Vernooij
mark monotone format as not supported.
51
    def is_supported(self):
52
        return False
53
0.196.14 by Jelmer Vernooij
Implement supports_transport.
54
    def supports_transport(self, transport):
55
        return False
56
0.196.7 by Jelmer Vernooij
Rename check_status -> check_support_status.
57
    def check_support_status(self, allow_unsupported, recommend_upgrade=True,
0.196.6 by Jelmer Vernooij
Implement .check_status.
58
           basedir=None):
59
        raise MonotoneUnsupportedError(self)
0.196.1 by Jelmer Vernooij
Add simple foreign branch plugin for monotone.
60
0.196.15 by Jelmer Vernooij
Implement .open().
61
    def open(self, transport):
62
        # Raise NotBranchError if there is nothing there
63
        MonotoneProber().probe_transport(transport)
64
        raise NotImplementedError(self.open)
65
0.196.1 by Jelmer Vernooij
Add simple foreign branch plugin for monotone.
66
67
class MonotoneProber(controldir.Prober):
68
69
    @classmethod
70
    def probe_transport(klass, transport):
71
        """Our format is present if the transport has a '_MTN/' subdir."""
72
        if transport.has('_MTN'):
73
            return MonotoneDirFormat()
6778 by Jelmer Vernooij
Merge lp:~jelmer/brz/warn-mtn-cvs.
74
        raise errors.NotBranchError(path=transport.base)
0.196.1 by Jelmer Vernooij
Add simple foreign branch plugin for monotone.
75
0.196.5 by Jelmer Vernooij
Update for new Prober.known_formats() interface.
76
    @classmethod
77
    def known_formats(cls):
6973.12.9 by Jelmer Vernooij
More fixes.
78
        return [MonotoneDirFormat()]
0.196.5 by Jelmer Vernooij
Update for new Prober.known_formats() interface.
79
80
0.196.1 by Jelmer Vernooij
Add simple foreign branch plugin for monotone.
81
controldir.ControlDirFormat.register_prober(MonotoneProber)