[PATCH hglib] merge and resolve return boolean instead of raising an exception
Andrey Somov
py4fun at gmail.com
Thu Jan 26 18:30:02 UTC 2012
# HG changeset patch
# User py4fun
# Date 1327602055 -3600
# Node ID daa30292d864b8b1b94ee0f4393d1c98ba2fdfc0
# Parent e5d3b0aa48e6ab79531204f61e25ee335b306df3
merge and resolve return boolean instead of raising an exception
diff -r e5d3b0aa48e6 -r daa30292d864 hglib/client.py
--- a/hglib/client.py Tue Jan 17 17:15:47 2012 -0600
+++ b/hglib/client.py Thu Jan 26 19:20:55 2012 +0100
@@ -999,6 +999,8 @@
removed it. It can be one of merge.handlers, or a function that gets a
single argument which are the contents of stdout. It should return one
of the expected choices (a single character).
+
+ Returns True on success, False if there are unresolved files.
"""
# we can't really use --preview since merge doesn't support --template
args = cmdbuilder('merge', r=rev, f=force, t=tool)
@@ -1011,7 +1013,9 @@
else:
prompt = lambda size, output: cb(output) + '\n'
- self.rawcommand(args, prompt=prompt)
+ eh = util.reterrorhandler(args)
+ self.rawcommand(args, prompt=prompt, eh=eh)
+ return bool(eh)
def move(self, source, dest, after=False, force=False, dryrun=False,
include=None, exclude=None):
@@ -1237,13 +1241,16 @@
args = cmdbuilder('resolve', a=all, l=listfiles, m=mark, u=unmark,
t=tool, I=include, X=exclude, *file)
- out = self.rawcommand(args)
+ eh = util.reterrorhandler(args)
+ out = self.rawcommand(args, eh=eh)
if listfiles:
l = []
for line in out.splitlines():
l.append(tuple(line.split(' ', 1)))
return l
+ else:
+ return bool(eh)
def revert(self, files, rev=None, all=False, date=None, nobackup=False,
dryrun=False, include=None, exclude=None):
diff -r e5d3b0aa48e6 -r daa30292d864 hglib/context.py
--- a/hglib/context.py Tue Jan 17 17:15:47 2012 -0600
+++ b/hglib/context.py Thu Jan 26 19:20:55 2012 +0100
@@ -205,4 +205,4 @@
"""
return the ancestor context of self and c2
"""
- return changectx(self._repo, 'ancestor(%s, %s)' % (self, n2))
+ return changectx(self._repo, 'ancestor(%s, %s)' % (self, c2))
diff -r e5d3b0aa48e6 -r daa30292d864 tests/test-merge.py
--- a/tests/test-merge.py Tue Jan 17 17:15:47 2012 -0600
+++ b/tests/test-merge.py Thu Jan 26 19:20:55 2012 +0100
@@ -14,7 +14,7 @@
self.client.update(self.node0)
self.append('b', 'a')
rev, node2 = self.client.commit('new file', addremove=True)
- self.client.merge(self.node1)
+ self.assertTrue(self.client.merge(self.node1))
rev, node = self.client.commit('merge')
diff = """diff -r %s -r %s a
--- a/a
@@ -40,7 +40,7 @@
self.client.remove('a')
rev, node = self.client.commit('remove')
- self.client.merge(cb=hglib.merge.handlers.noninteractive)
+ self.assertTrue(self.client.merge(cb=hglib.merge.handlers.noninteractive))
diff = """diff -r %s a
--- /dev/null
@@ -59,7 +59,7 @@
def cb(output):
return 'c'
- self.client.merge(cb=cb)
+ self.assertTrue(self.client.merge(cb=cb))
diff = """diff -r %s a
--- /dev/null
diff -r e5d3b0aa48e6 -r daa30292d864 tests/test-resolve.py
--- a/tests/test-resolve.py Tue Jan 17 17:15:47 2012 -0600
+++ b/tests/test-resolve.py Thu Jan 26 19:20:55 2012 +0100
@@ -18,12 +18,12 @@
self.append('b', 'a')
rev, self.node3 = self.client.commit('third')
- self.assertRaises(hglib.error.CommandError, self.client.merge, self.node1)
- self.assertRaises(hglib.error.CommandError, self.client.resolve, all=True)
+ self.assertFalse(self.client.merge(self.node1))
+ self.assertFalse(self.client.resolve(all=True))
self.assertEquals([('U', 'a'), ('U', 'b')],
self.client.resolve(listfiles=True))
- self.client.resolve('a', mark=True)
+ self.assertTrue(self.client.resolve('a', mark=True))
self.assertEquals([('R', 'a'), ('U', 'b')],
self.client.resolve(listfiles=True))
diff -r e5d3b0aa48e6 -r daa30292d864 tests/test-summary.py
--- a/tests/test-summary.py Tue Jan 17 17:15:47 2012 -0600
+++ b/tests/test-summary.py Thu Jan 26 19:20:55 2012 +0100
@@ -103,7 +103,7 @@
self.append('b', 'a')
rev2, node2 = self.client.commit('third', addremove=True)
- self.client.merge(rev1)
+ self.assertTrue(self.client.merge(rev1))
d = {'parent' : [(2, node2[:12], 'tip', 'third'),
(1, node1[:12], None, 'second')],
More information about the Mercurial-devel
mailing list