return [ False, True ][len(out)]
def describe(self, commitish, pattern=None, longfmt=False, always=False,
- abbrev=None):
+ abbrev=None, tags=False, exact_match=False):
"""
Describe commit, relative to the latest tag reachable from it.
@type always: C{bool}
@param abbrev: abbreviate sha1 to given length instead of the default
@type abbrev: None or C{long}
+ @param tags: enable matching a lightweight (non-annotated) tag
+ @type tags: C{bool}
+ @param exact_match: only output exact matches (a tag directly
+ references the supplied commit)
+ @type exact_match: C{bool}
@return: tag name plus/or the abbreviated sha1
@rtype: C{str}
"""
elif abbrev is not None:
args.add('--abbrev=%s' % abbrev)
args.add_true(always, '--always')
+ args.add_true(tags, '--tags')
+ args.add_true(exact_match, '--exact-match')
args.add(commitish)
tag, err, ret = self._git_inout('describe', args.args,
>>> repo.describe('HEAD', pattern='foo*', always=True, abbrev=16) == sha[:16]
True
>>> tag = repo.describe('HEAD', longfmt=True, abbrev=16) == 'tag2-0-g%s' % sha[:16]
+ >>> repo.delete_tag('tag2')
+ >>> repo.describe('HEAD', tags=True)
+ 'tag'
+ >>> repo.describe('HEAD', tags=True, exact_match=True)
+ 'tag'
+ >>> repo.create_tag('tag2', msg='foo')
"""
def test_find_tag():