[PATCH 3 of 9 hglib] hgclient: add parents and p1, p2 convenience functions

Idan Kamara idankk86 at gmail.com
Thu Jul 28 14:58:56 CDT 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