[PATCH 3 of 3 hglib] client: add missing options to commit()
Idan Kamara
idankk86 at gmail.com
Wed Aug 10 12:34:45 CDT 2011
# HG changeset patch
# User Idan Kamara <idankk86 at gmail.com>
# Date 1312997588 -10800
# Node ID 5c1ba9b8780c98bb4c7df7b61e5b4dd86c05fa1c
# Parent 21190e06aa2d4744356f42b3f072d039a5d3bc50
client: add missing options to commit()
diff -r 21190e06aa2d -r 5c1ba9b8780c hglib/client.py
--- a/hglib/client.py Wed Aug 10 19:59:08 2011 +0300
+++ b/hglib/client.py Wed Aug 10 20:33:08 2011 +0300
@@ -180,9 +180,17 @@
args = cmdbuilder('clone', source, dest, b=branch, u=updaterev, r=revrange)
self.rawcommand(args)
- def commit(self, message, addremove=False):
+ def commit(self, message=None, logfile=None, addremove=False, closebranch=False,
+ date=None, user=None, include=None, exclude=None):
+ if message is None and logfile is None:
+ raise ValueError("must provide at least a message or a logfile")
+ elif message and logfile:
+ raise ValueError("cannot specify both a message and a logfile")
+
# --debug will print the committed cset
- args = cmdbuilder('commit', debug=True, m=message, A=addremove)
+ args = cmdbuilder('commit', debug=True, m=message, A=addremove,
+ close_branch=closebranch, d=date, u=user, l=logfile,
+ I=include, X=exclude)
out = self.rawcommand(args)
rev, node = out.splitlines()[-1].rsplit(':')
diff -r 21190e06aa2d -r 5c1ba9b8780c tests/test-commit.py
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/tests/test-commit.py Wed Aug 10 20:33:08 2011 +0300
@@ -0,0 +1,32 @@
+import common, hglib
+
+class test_commit(common.basetest):
+ def test_user(self):
+ self.append('a', 'a')
+ rev, node = self.client.commit('first', addremove=True, user='foo')
+ rev = self.client.log(node)[0]
+ self.assertEquals(rev.author, 'foo')
+
+ def test_no_user(self):
+ self.append('a', 'a')
+ self.assertRaises(hglib.error.CommandError, self.client.commit, 'first', user='')
+
+ def test_close_branch(self):
+ self.append('a', 'a')
+ rev0, node0 = self.client.commit('first', addremove=True)
+ self.client.branch('foo')
+ self.append('a', 'a')
+ rev1, node1 = self.client.commit('second')
+ revclose = self.client.commit('closing foo', closebranch=True)
+ rev0, rev1, revclose = self.client.log([node0, node1, revclose[1]])
+
+ self.assertEquals(self.client.branches(),
+ [(rev0.branch, int(rev0.rev), rev0.node[:12])])
+
+ self.assertEquals(self.client.branches(closed=True),
+ [(revclose.branch, int(revclose.rev), revclose.node[:12]),
+ (rev0.branch, int(rev0.rev), rev0.node[:12])])
+
+ def test_message_logfile(self):
+ self.assertRaises(ValueError, self.client.commit, 'foo', logfile='bar')
+ self.assertRaises(ValueError, self.client.commit)
More information about the Mercurial-devel
mailing list