Mercurial > python-hglib
changeset 43:77ebb51f5f36
client: add tags command
author | Idan Kamara <idankk86@gmail.com> |
---|---|
date | Mon, 15 Aug 2011 22:46:45 +0300 |
parents | b6b75c71ac58 |
children | 3a661f63107e |
files | hglib/client.py tests/test-tags.py |
diffstat | 2 files changed, 37 insertions(+), 0 deletions(-) [+] |
line wrap: on
line diff
--- a/hglib/client.py Mon Aug 15 22:46:45 2011 +0300 +++ b/hglib/client.py Mon Aug 15 22:46:45 2011 +0300 @@ -623,6 +623,24 @@ self.rawcommand(args) + def tags(self): + """ + Return a list of repository tags as: (name, rev, node, islocal) + """ + args = cmdbuilder('tags', v=True) + + out = self.rawcommand(args) + + t = [] + for line in out.splitlines(): + taglocal = line.endswith(' local') + if taglocal: + line = line[:-6] + name, rev = line.rsplit(' ', 1) + rev, node = rev.split(':') + t.append((name.rstrip(), int(rev), node, taglocal)) + return t + def tip(self): args = cmdbuilder('tip', template=templates.changeset) out = self.rawcommand(args)
--- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/tests/test-tags.py Mon Aug 15 22:46:45 2011 +0300 @@ -0,0 +1,19 @@ +import common +import hglib + +class test_tags(common.basetest): + def test_basic(self): + self.append('a', 'a') + rev, node = self.client.commit('first', addremove=True) + self.client.tag('my tag') + self.client.tag('local tag', rev=rev, local=True) + + # filecache that was introduced in 2.0 makes us see the local tag, for + # now we have to reconnect + if self.client.version < (2, 0, 0): + self.client = hglib.open() + + tags = self.client.tags() + self.assertEquals(tags, [('tip', 1, self.client.tip().node[:12], False), + ('my tag', 0, node[:12], False), + ('local tag', 0, node[:12], True)])