diff options
author | Sylvain Th?nault <sylvain.thenault@logilab.fr> | 2011-01-10 14:21:17 +0100 |
---|---|---|
committer | Sylvain Th?nault <sylvain.thenault@logilab.fr> | 2011-01-10 14:21:17 +0100 |
commit | d25f92acfb4840cfa6f41e40d58f915d32d717fc (patch) | |
tree | 3a6343a41a2f8ecc94c2f6aded14b9c77800b2a2 | |
parent | c3071d83300c34c3d5ccc24b84560b9ff9d4fb6e (diff) | |
download | logilab-common-d25f92acfb4840cfa6f41e40d58f915d32d717fc.tar.gz |
[mercurial] add function to get incoming/outgoing changesets whatever mercurial's version
-rw-r--r-- | hg.py | 19 |
1 files changed, 19 insertions, 0 deletions
@@ -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] |