[PATCH 3 of 9 hglib] hgclient: add parents and p1, p2 convenience functions
Idan Kamara
idankk86 at gmail.com
Thu Jul 28 19:58:56 UTC 2011
# HG changeset patch
# User Idan Kamara <idankk86 at gmail.com>
# Date 1311450939 -10800
# Node ID 6d82d657acd9aaf73b681f0a4c7933c78530496e
# Parent a6ef66b8248fea1fabf95cd2f86c6c05dfafe485
hgclient: add parents and p1, p2 convenience functions
diff -r a6ef66b8248f -r 6d82d657acd9 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
@@ -315,3 +315,26 @@
if not output:
return out
+
+ def parents(self, rev=None):
+ args = util.commandlinebuilder('parents')
+ args.arg('--template', [templates.changeset])
+ args.argif(rev, '-r', rev)
+
+ out = self.outputruncommand(args)[1]
+ if not out:
+ return
+
+ out = out.split('\0')[:-1]
+
+ return changeset.fromtemplate(out)
+
+ def p1(self, rev=None):
+ par = self.parents(rev)
+ if par:
+ return par[0]
+
+ def p2(self, rev=None):
+ par = self.parents(rev)
+ if par and len(par) == 2:
+ return par[1]
diff -r a6ef66b8248f -r 6d82d657acd9 tests/test-parents.py
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/tests/test-parents.py Sat Jul 23 22:55:39 2011 +0300
@@ -0,0 +1,24 @@
+import common
+from hglib import hglib
+
+class test_parents(common.basetest):
+ def test_noparents(self):
+ self.assertEquals(self.client.p1(), None)
+ self.assertEquals(self.client.p2(), None)
+ self.append('a', 'a')
+ self.client.commit('first', addremove=True)
+ self.assertEquals(self.client.p2(), None)
+
+ def test_basic(self):
+ self.append('a', 'a')
+ rev0 = self.client.commit('first', addremove=True)
+ self.assertEquals(rev0, self.client.p1())
+
+ def test_rev(self):
+ self.append('a', 'a')
+ rev0 = self.client.commit('first', addremove=True)
+ self.assertEquals(None, self.client.p1(rev0))
+ self.append('a', 'a')
+ rev1 = self.client.commit('second')
+ self.assertEquals(rev0, self.client.p1(rev1))
+ self.assertEquals(None, self.client.p2(rev1))
More information about the Mercurial-devel
mailing list