[PATCH 7 of 9 hglib] branches: handle inactive branches
Idan Kamara
idankk86 at gmail.com
Thu Jul 28 19:59:00 UTC 2011
# HG changeset patch
# User Idan Kamara <idankk86 at gmail.com>
# Date 1311450939 -10800
# Node ID f45939ae5fea37d265da36376d31fbf983de8f8e
# Parent bc84a8ded1610a0497e0f32499d014e2d1f1c117
branches: handle inactive branches
diff -r bc84a8ded161 -r f45939ae5fea hglib/hglib.py
--- a/hglib/hglib.py Sat Jul 23 22:55:39 2011 +0300
+++ b/hglib/hglib.py Sat Jul 23 22:55:39 2011 +0300
@@ -283,13 +283,26 @@
return self.outputruncommand(['branch'])[1].rstrip()
def branches(self):
- out = self.outputruncommand(['branches'])[1]
- branches = {}
- for line in out.rstrip().split('\n'):
- branch, revnode = line.split()
- branches[branch] = self.log(revrange=[revnode.split(':')[0]])[0]
+ args = util.commandlinebuilder('branches')
- return branches
+ out = self.outputruncommand(args)[1]
+ branches, inactive = {}, {}
+
+ # no branches case
+ if out:
+ # A 0:abcd\n
+ # B 1:efgh (inactive)\n
+ for line in out.rstrip().split('\n'):
+ branch, node = line.split(' ', 1)
+ node = node.rsplit(':')[1]
+
+ if 'inactive' in node:
+ node = node.split(' ', 1)[0]
+ inactive[branch] = self.log(revset=node)[0]
+ else:
+ branches[branch] = self.log(revset=node)[0]
+
+ return branches, inactive
def paths(self, name=None):
if not name:
diff -r bc84a8ded161 -r f45939ae5fea tests/test-branch.py
--- a/tests/test-branch.py Sat Jul 23 22:55:39 2011 +0300
+++ /dev/null Thu Jan 01 00:00:00 1970 +0000
@@ -1,11 +0,0 @@
-import common
-from hglib import hglib
-
-class test_branch(common.basetest):
- def test_basic(self):
- self.assertEquals(self.client.branch(), 'default')
- self.append('a', 'a')
- rev = self.client.commit('first', addremove=True)
- branches = self.client.branches()
-
- self.assertEquals(rev, branches[rev.branch])
diff -r bc84a8ded161 -r f45939ae5fea tests/test-branches.py
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/tests/test-branches.py Sat Jul 23 22:55:39 2011 +0300
@@ -0,0 +1,23 @@
+import common
+from hglib import hglib
+
+class test_branches(common.basetest):
+ def test_empty(self):
+ self.assertEquals(self.client.branches(), ({}, {}))
+
+ def test_basic(self):
+ self.append('a', 'a')
+ rev = self.client.commit('first', addremove=True)
+ branches, inactive = self.client.branches()
+
+ self.assertEquals(rev, branches[rev.branch])
+
+ def test_inactive(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, inactive = self.client.branches()
+ self.assertEquals(inactive['default'], rev0)
+ self.assertEquals(branches['foo'], rev1)
More information about the Mercurial-devel
mailing list