From d25f92acfb4840cfa6f41e40d58f915d32d717fc Mon Sep 17 00:00:00 2001 From: Sylvain Th?nault Date: Mon, 10 Jan 2011 14:21:17 +0100 Subject: [mercurial] add function to get incoming/outgoing changesets whatever mercurial's version --- hg.py | 19 +++++++++++++++++++ 1 file changed, 19 insertions(+) (limited to 'hg.py') diff --git a/hg.py b/hg.py index 17e075f..0538a38 100644 --- a/hg.py +++ b/hg.py @@ -98,3 +98,22 @@ def get_repository(path): if repopath is None: raise RuntimeError('no repository found in %s' % osp.abspath(path)) return Repository(Ui(), path=repopath) + +def incoming(wdrepo, masterrepo): + try: + return wdrepo.findincoming(masterrepo) + except AttributeError: + from mercurial import hg, discovery + revs, checkout = hg.addbranchrevs(wdrepo, masterrepo, ('', []), None) + common, incoming, rheads = discovery.findcommonincoming( + wdrepo, masterrepo, heads=revs) + return masterrepo.changelog.nodesbetween(incoming, revs)[0] + +def outgoing(wdrepo, masterrepo): + try: + return wdrepo.findoutgoing(masterrepo) + except AttributeError: + from mercurial import hg, discovery + revs, checkout = hg.addbranchrevs(wdrepo, wdrepo, ('', []), None) + o = discovery.findoutgoing(wdrepo, masterrepo) + return wdrepo.changelog.nodesbetween(o, revs)[0] -- cgit v1.2.1