/brz/remove-bazaar

To get this branch, use:
bzr branch http://gegoxaren.bato24.eu/bzr/brz/remove-bazaar
0.193.1 by Robert Collins
Create plugin.
1
# Copyright (C) 2008 Canonical Ltd
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 2 of the License.
6
#
7
# This program is distributed in the hope that it will be useful,
8
# but WITHOUT ANY WARRANTY; without even the implied warranty of
9
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
10
# GNU General Public License for more details.
11
#
12
# You should have received a copy of the GNU General Public License
13
# along with this program; if not, write to the Free Software
14
# Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307  USA
15
16
17
"""CVS working tree support for bzr.
18
6652.2.9 by Jelmer Vernooij
Refresh docstring.
19
Currently limited to referencing tools for migration.
0.193.1 by Robert Collins
Create plugin.
20
"""
21
7143.11.1 by Jelmer Vernooij
Remove some unused imports.
22
from ... import version_info  # noqa: F401
6778 by Jelmer Vernooij
Merge lp:~jelmer/brz/warn-mtn-cvs.
23
6652.2.6 by Jelmer Vernooij
Fix test references.
24
from ... import (
6778 by Jelmer Vernooij
Merge lp:~jelmer/brz/warn-mtn-cvs.
25
    controldir,
6652.2.6 by Jelmer Vernooij
Fix test references.
26
    errors,
6778 by Jelmer Vernooij
Merge lp:~jelmer/brz/warn-mtn-cvs.
27
    )
7413.5.1 by Jelmer Vernooij
CVS pserver URLs indicate that the pserver protocol is not supported.
28
from ...transport import register_transport_proto
6652.2.1 by Jelmer Vernooij
Bundle the cvs plugin.
29
30
31
class CVSUnsupportedError(errors.UnsupportedFormatError):
0.193.5 by Jelmer Vernooij
Update for new Prober.known_formats() interface.
32
33
    _fmt = ("CVS working trees are not supported. To convert CVS projects to "
34
            "bzr, please see http://bazaar-vcs.org/BzrMigration and/or "
35
            "https://launchpad.net/launchpad-bazaar/+faq/26.")
36
6778 by Jelmer Vernooij
Merge lp:~jelmer/brz/warn-mtn-cvs.
37
38
class CVSDirFormat(controldir.ControlDirFormat):
0.193.1 by Robert Collins
Create plugin.
39
    """The CVS directory control format."""
40
41
    def get_converter(self):
42
        raise NotImplementedError(self.get_converter)
43
44
    def get_format_description(self):
45
        return "CVS control directory."
46
47
    def initialize_on_transport(self, transport):
6652.2.6 by Jelmer Vernooij
Fix test references.
48
        raise errors.UninitializableFormat(self)
0.193.1 by Robert Collins
Create plugin.
49
0.195.1 by Jelmer Vernooij
Implement CVSDirFormat.check_status.
50
    def is_supported(self):
51
        return False
0.193.1 by Robert Collins
Create plugin.
52
6778 by Jelmer Vernooij
Merge lp:~jelmer/brz/warn-mtn-cvs.
53
    def supports_transport(self, transport):
54
        return False
55
0.195.2 by Jelmer Vernooij
Rename check_status -> check_support_status.
56
    def check_support_status(self, allow_unsupported, recommend_upgrade=True,
7143.15.2 by Jelmer Vernooij
Run autopep8.
57
                             basedir=None):
0.193.5 by Jelmer Vernooij
Update for new Prober.known_formats() interface.
58
        raise CVSUnsupportedError(self)
0.193.1 by Robert Collins
Create plugin.
59
6778 by Jelmer Vernooij
Merge lp:~jelmer/brz/warn-mtn-cvs.
60
    def open(self, transport):
61
        # Raise NotBranchError if there is nothing there
62
        CVSProber().probe_transport(transport)
63
        raise NotImplementedError(self.open)
64
65
66
class CVSProber(controldir.Prober):
0.194.1 by Jelmer Vernooij
Support the new control dir API.
67
68
    @classmethod
7413.6.1 by Jelmer Vernooij
Add an optional priority field for probers.
69
    def priority(klass, transport):
70
        return 100
71
72
    @classmethod
0.194.1 by Jelmer Vernooij
Support the new control dir API.
73
    def probe_transport(klass, transport):
0.193.1 by Robert Collins
Create plugin.
74
        # little ugly, but works
75
        # try a manual probe first, its a little faster perhaps ?
6778 by Jelmer Vernooij
Merge lp:~jelmer/brz/warn-mtn-cvs.
76
        if transport.has('CVS') and transport.has('CVS/Repository'):
77
            return CVSDirFormat()
78
        raise errors.NotBranchError(path=transport.base)
0.194.1 by Jelmer Vernooij
Support the new control dir API.
79
0.193.5 by Jelmer Vernooij
Update for new Prober.known_formats() interface.
80
    @classmethod
81
    def known_formats(cls):
6973.12.9 by Jelmer Vernooij
More fixes.
82
        return [CVSDirFormat()]
0.193.5 by Jelmer Vernooij
Update for new Prober.known_formats() interface.
83
6778 by Jelmer Vernooij
Merge lp:~jelmer/brz/warn-mtn-cvs.
84
85
controldir.ControlDirFormat.register_prober(CVSProber)
7413.5.1 by Jelmer Vernooij
CVS pserver URLs indicate that the pserver protocol is not supported.
86
87
register_transport_proto(
88
    'cvs+pserver://', help="The pserver access protocol for CVS.")