diff options
author | Julien Cristau <julien.cristau@logilab.fr> | 2014-09-29 10:20:30 +0200 |
---|---|---|
committer | Julien Cristau <julien.cristau@logilab.fr> | 2014-09-29 10:20:30 +0200 |
commit | 3460e121018b712efb2031f3c5c1576720314474 (patch) | |
tree | 6d1ed9103cd958080f60d1ffba7d2e6d04e262e9 /hg.py | |
parent | 2a7d3ca7c2b7a5563ff3aa9293a537a9a73f9563 (diff) | |
download | logilab-common-3460e121018b712efb2031f3c5c1576720314474.tar.gz |
Delete hg.py
No known users.
Diffstat (limited to 'hg.py')
-rw-r--r-- | hg.py | 130 |
1 files changed, 0 insertions, 130 deletions
@@ -1,130 +0,0 @@ -# copyright 2003-2011 LOGILAB S.A. (Paris, FRANCE), all rights reserved. -# contact http://www.logilab.fr/ -- mailto:contact@logilab.fr -# -# This file is part of logilab-common. -# -# logilab-common is free software: you can redistribute it and/or modify it under -# the terms of the GNU Lesser General Public License as published by the Free -# Software Foundation, either version 2.1 of the License, or (at your option) any -# later version. -# -# logilab-common is distributed in the hope that it will be useful, but WITHOUT -# ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS -# FOR A PARTICULAR PURPOSE. See the GNU Lesser General Public License for more -# details. -# -# You should have received a copy of the GNU Lesser General Public License along -# with logilab-common. If not, see <http://www.gnu.org/licenses/>. -"""mercurial utilities (mercurial should be installed)""" - -__docformat__ = "restructuredtext en" - -import os -import sys -import os.path as osp - -try: - from mercurial.error import RepoError - from mercurial.__version__ import version as hg_version -except ImportError: - from mercurial.repo import RepoError - from mercurial.version import get_version - hg_version = get_version() - -from mercurial.hg import repository as Repository -from mercurial.ui import ui as Ui -from mercurial.node import short -try: - # mercurial >= 1.2 (?) - from mercurial.cmdutil import walkchangerevs -except ImportError, ex: - from mercurial.commands import walkchangerevs -try: - # mercurial >= 1.1 (.1?) - from mercurial.util import cachefunc -except ImportError, ex: - def cachefunc(func): - return func -try: - # mercurial >= 1.3.1 - from mercurial import encoding - _encoding = encoding.encoding -except ImportError: - try: - from mercurial.util import _encoding - except ImportError: - import locale - # stay compatible with mercurial 0.9.1 (etch debian release) - # (borrowed from mercurial.util 1.1.2) - try: - _encoding = os.environ.get("HGENCODING") - if sys.platform == 'darwin' and not _encoding: - # On darwin, getpreferredencoding ignores the locale environment and - # always returns mac-roman. We override this if the environment is - # not C (has been customized by the user). - locale.setlocale(locale.LC_CTYPE, '') - _encoding = locale.getlocale()[1] - if not _encoding: - _encoding = locale.getpreferredencoding() or 'ascii' - except locale.Error: - _encoding = 'ascii' -try: - # demandimport causes problems when activated, ensure it isn't - # XXX put this in apycot where the pb has been noticed? - from mercurial import demandimport - demandimport.disable() -except: - pass - -Ui.warn = lambda *args, **kwargs: 0 # make it quiet - -def find_repository(path): - """returns <path>'s mercurial repository - - None if <path> is not under hg control - """ - path = osp.realpath(osp.abspath(path)) - while not osp.isdir(osp.join(path, ".hg")): - oldpath = path - path = osp.dirname(path) - if path == oldpath: - return None - return path - - -def get_repository(path): - """Simple function that open a hg repository""" - repopath = find_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) - if not masterrepo.local(): - from mercurial import bundlerepo, changegroup - if revs is None and masterrepo.capable('changegroupsubset'): - revs = rheads - if revs is None: - cg = masterrepo.changegroup(incoming, "incoming") - else: - cg = masterrepo.changegroupsubset(incoming, revs, 'incoming') - fname = changegroup.writebundle(cg, None, "HG10UN") - # use the created uncompressed bundlerepo - masterrepo = bundlerepo.bundlerepository(wdrepo.ui, wdrepo.root, fname) - 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] |