/brz/remove-bazaar

To get this branch, use:
bzr branch http://gegoxaren.bato24.eu/bzr/brz/remove-bazaar
0.205.1 by Jelmer Vernooij
Import utility functions for foreign branches.
1
# Copyright (C) 2008 Jelmer Vernooij <jelmer@samba.org>
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
15
# Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307  USA
16
17
"""Foreign branch utilities."""
18
0.205.3 by Jelmer Vernooij
Fix import.
19
from bzrlib import registry
20
21
0.205.1 by Jelmer Vernooij
Import utility functions for foreign branches.
22
class VcsMapping(object):
23
    """Describes the mapping between the semantics of Bazaar and a foreign vcs.
24
25
    """
26
    experimental = False
27
    roundtripping = False
28
    revid_prefix = None
29
30
31
class VcsMappingRegistry(registry.Registry):
32
    """Registry for Bazaar<->foreign VCS mappings.
33
    
34
    There should be one instance of this registry for every foreign VCS.
35
    """
36
37
    def register(self, key, factory, help):
38
        """Register a mapping between Bazaar and foreign VCS semantics.
39
40
        The factory must be a callable that takes one parameter: the key.
41
        It must produce an instance of VcsMapping when called.
42
        """
43
        registry.Registry.register(self, key, factory, help)
44
45
    def set_default(self, key):
46
        """Set the 'default' key to be a clone of the supplied key.
47
48
        This method must be called once and only once.
49
        """
50
        self._set_default_key(key)
51
52
    def get_default(self):
53
        """Convenience function for obtaining the default mapping to use."""
54
        return self.get(self._get_default_key())
55