summaryrefslogtreecommitdiff
path: root/git/db/compat.py
blob: 5e8330816c09cd569132360b8bebcd129e21a2c0 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
# Copyright (C) 2010, 2011 Sebastian Thiel (byronimo@gmail.com) and contributors
#
# This module is part of GitDB and is released under
# the New BSD License: http://www.opensource.org/licenses/bsd-license.php
"""Module providing adaptors to maintain backwards compatability"""


class RepoCompatibilityInterfaceNoBare(object):

    """Interface to install backwards compatability of the new complex repository
    types with the previous, all in one, repository."""

    def rev_parse(self, *args, **kwargs):
        return self.resolve_object(*args, **kwargs)

    @property
    def odb(self):
        """The odb is now an integrated part of each repository"""
        return self

    @property
    def active_branch(self):
        """The name of the currently active branch.

        :return: Head to the active branch"""
        return self.head.reference

    def __repr__(self):
        """Return the representation of the repository, the way it used to be"""
        return '<git.Repo "%s">' % self.git_dir

    @property
    def branches(self):
        return self.heads


class RepoCompatibilityInterface(RepoCompatibilityInterfaceNoBare):

    """Interface to install backwards compatability of the new complex repository
    types with the previous, all in one, repository."""

    @property
    def bare(self):
        return self.is_bare

    @property
    def refs(self):
        return self.references