# HG changeset patch # User Idan Kamara # Date 1313528241 -10800 # Node ID 191855a9d813dbefa7144832d08a6e4965f6f660 # Parent 3a661f63107ef2beb90fb49009eea9118eb8d4bc client: add merge command diff -r 3a661f63107e -r 191855a9d813 hglib/client.py --- a/hglib/client.py Tue Aug 16 23:50:01 2011 +0300 +++ b/hglib/client.py Tue Aug 16 23:57:21 2011 +0300 @@ -442,6 +442,12 @@ return self._parserevs(out) + def merge(self, rev=None, force=False, tool=None, cb=None): + # we can't really use --preview since merge doesn't support --template + args = cmdbuilder('merge', r=rev, f=force, t=tool) + + self.rawcommand(args, prompt=cb) + def move(self, source, dest, after=False, force=False, dryrun=False, include=None, exclude=None): if not isinstance(source, list): diff -r 3a661f63107e -r 191855a9d813 tests/test-merge.py --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/tests/test-merge.py Tue Aug 16 23:57:21 2011 +0300 @@ -0,0 +1,29 @@ +import common, hglib + +class test_merge(common.basetest): + def setUp(self): + common.basetest.setUp(self) + + self.append('a', 'a') + rev, self.node0 = self.client.commit('first', addremove=True) + + self.append('a', 'a') + rev, self.node1 = self.client.commit('change') + + def test_basic(self): + self.client.update(self.node0) + self.append('b', 'a') + rev, node2 = self.client.commit('new file', addremove=True) + self.client.merge(self.node1) + rev, node = self.client.commit('merge') + diff = """diff -r %s -r %s a +--- a/a ++++ b/a +@@ -1,1 +1,1 @@ +-a +\ No newline at end of file ++aa +\ No newline at end of file +""" % (node2[:12], node[:12]) + + self.assertEquals(diff, self.client.diff(change=node, nodates=True))