[PATCH 2 of 2 hglib] client: rewrite branches(), return a list of (branchname, rev, node)
Idan Kamara
idankk86 at gmail.com
Tue Aug 9 16:25:43 CDT 2011
# HG changeset patch
# User Idan Kamara <idankk86 at gmail.com>
# Date 1312925041 -10800
# Node ID dfaf83282b950b4b4044b431e91f89747a593953
# Parent bbdda6a8a748b0cc102204d19827aac1140f5f89
client: rewrite branches(), return a list of (branchname, rev, node)
diff -r bbdda6a8a748 -r dfaf83282b95 hglib/client.py
--- a/hglib/client.py Wed Aug 10 00:21:05 2011 +0300
+++ b/hglib/client.py Wed Aug 10 00:24:01 2011 +0300
@@ -156,13 +156,16 @@
# len('reset working directory to branch ') == 34
return out[34:]
- def branches(self):
- out = self.rawcommand(['branches'])
- branches = {}
- for line in out.rstrip().split('\n'):
- branch, revnode = line.split()
- branches[branch] = self.log(revrange=[revnode.split(':')[0]])[0]
+ def branches(self, active=False, closed=False):
+ args = cmdbuilder('branches', a=active, c=closed)
+ out = self.rawcommand(args)
+ branches = []
+ for line in out.rstrip().splitlines():
+ name, line = line.split(' ', 1)
+ rev, node = line.split(':')
+ node = node.split()[0] # get rid of ' (inactive)'
+ branches.append((name, int(rev), node))
return branches
def cat(self, files, rev=None, output=None):
diff -r bbdda6a8a748 -r dfaf83282b95 tests/test-branch.py
--- a/tests/test-branch.py Wed Aug 10 00:21:05 2011 +0300
+++ b/tests/test-branch.py Wed Aug 10 00:24:01 2011 +0300
@@ -11,7 +11,8 @@
rev = self.client.commit('first', addremove=True)
self.assertEquals(rev.branch, 'foo')
- self.assertEquals(self.client.branches()[rev.branch], rev)
+ self.assertEquals(self.client.branches(),
+ [(rev.branch, int(rev.rev), rev.node[:12])])
def test_reset_with_name(self):
self.assertRaises(ValueError, self.client.branch, 'foo', clean=True)
diff -r bbdda6a8a748 -r dfaf83282b95 tests/test-branches.py
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/tests/test-branches.py Wed Aug 10 00:24:01 2011 +0300
@@ -0,0 +1,22 @@
+import common, hglib
+
+class test_branches(common.basetest):
+ def test_empty(self):
+ self.assertEquals(self.client.branches(), [])
+
+ def test_basic(self):
+ self.append('a', 'a')
+ rev0 = self.client.commit('first', addremove=True)
+ self.client.branch('foo')
+ self.append('a', 'a')
+ rev1 = self.client.commit('second')
+ branches = self.client.branches()
+
+ expected = []
+ for r in (rev1, rev0):
+ expected.append((r.branch, int(r.rev), r.node[:12]))
+
+ self.assertEquals(branches, expected)
+
+ def test_active_closed(self):
+ pass
More information about the Mercurial-devel
mailing list