summaryrefslogtreecommitdiff
path: root/git/db/compat.py
blob: ce68619664e637b32b6487656051eda6164a1cfb (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
# 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