diff options
| author | Sebastian Thiel <byronimo@gmail.com> | 2011-05-05 19:43:22 +0200 |
|---|---|---|
| committer | Sebastian Thiel <byronimo@gmail.com> | 2011-05-05 19:43:22 +0200 |
| commit | 4177eefd7bdaea96a529b00ba9cf751924ede202 (patch) | |
| tree | 958614c21bd97267e0d06f71bb18d4215ddd87b5 /git/refs/tag.py | |
| parent | f54546a9b857ae728033482f3c5c18c9ff3393c3 (diff) | |
| download | GitPython-4177eefd7bdaea96a529b00ba9cf751924ede202.tar.gz GitPython-4177eefd7bdaea96a529b00ba9cf751924ede202.zip | |
Added all code from gitdb to gitpython. Next is to make it generally work. Then the tests will need some work
Diffstat (limited to 'git/refs/tag.py')
| -rw-r--r-- | git/refs/tag.py | 38 |
1 files changed, 38 insertions, 0 deletions
diff --git a/git/refs/tag.py b/git/refs/tag.py index 47c9ea4d..24a8e768 100644 --- a/git/refs/tag.py +++ b/git/refs/tag.py @@ -3,7 +3,45 @@ from gitdb.ref.tag import TagReference as GitDB_TagReference __all__ = ["TagReference", "Tag"] class TagReference(GitDB_TagReference): + """Class representing a lightweight tag reference which either points to a commit + ,a tag object or any other object. In the latter case additional information, + like the signature or the tag-creator, is available. + + This tag object will always point to a commit object, but may carray additional + information in a tag object:: + + tagref = TagReference.list_items(repo)[0] + print tagref.commit.message + if tagref.tag is not None: + print tagref.tag.message""" __slots__ = tuple() + _common_path_default = "refs/tags" + + @property + def commit(self): + """:return: Commit object the tag ref points to""" + obj = self.object + if obj.type == "commit": + return obj + elif obj.type == "tag": + # it is a tag object which carries the commit as an object - we can point to anything + return obj.object + else: + raise ValueError( "Tag %s points to a Blob or Tree - have never seen that before" % self ) + + @property + def tag(self): + """ + :return: Tag object this tag ref points to or None in case + we are a light weight tag""" + obj = self.object + if obj.type == "tag": + return obj + return None + + # make object read-only + # It should be reasonably hard to adjust an existing tag + object = property(Reference._get_object) @classmethod def create(cls, repo, path, ref='HEAD', message=None, force=False, **kwargs): |
