diff --git a/configs/gunicorn_config.py b/configs/gunicorn_config.py --- a/configs/gunicorn_config.py +++ b/configs/gunicorn_config.py @@ -57,7 +57,7 @@ def _get_process_rss(pid=None): def _get_config(ini_path): - import configparser + import configparser try: config = configparser.RawConfigParser() diff --git a/vcsserver/git.py b/vcsserver/git.py --- a/vcsserver/git.py +++ b/vcsserver/git.py @@ -1,4 +1,4 @@ - RhodeCode VCSServer provides access to different vcs backends via network. +# RhodeCode VCSServer provides access to different vcs backends via network. # Copyright (C) 2014-2020 RhodeCode GmbH # # This program is free software; you can redistribute it and/or modify diff --git a/vcsserver/hg.py b/vcsserver/hg.py --- a/vcsserver/hg.py +++ b/vcsserver/hg.py @@ -14,17 +14,16 @@ # You should have received a copy of the GNU General Public License # along with this program; if not, write to the Free Software Foundation, # Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA -import functools + import io import logging -import os import stat import urllib.request, urllib.parse, urllib.error import urllib.request, urllib.error, urllib.parse import traceback from hgext import largefiles, rebase, purge -from hgext.strip import strip as hgext_strip + from mercurial import commands from mercurial import unionrepo from mercurial import verify @@ -39,7 +38,7 @@ from vcsserver.hgcompat import ( makepeer, instance, match, memctx, exchange, memfilectx, nullrev, hg_merge, patch, peer, revrange, ui, hg_tag, Abort, LookupError, RepoError, RepoLookupError, InterventionRequired, RequirementError, - alwaysmatcher, patternmatcher, hgutil) + alwaysmatcher, patternmatcher, hgutil, hgext_strip) from vcsserver.vcs_base import RemoteBase log = logging.getLogger(__name__) diff --git a/vcsserver/hgcompat.py b/vcsserver/hgcompat.py --- a/vcsserver/hgcompat.py +++ b/vcsserver/hgcompat.py @@ -21,6 +21,7 @@ Mercurial libs compatibility import mercurial from mercurial import demandimport + # patch demandimport, due to bug in mercurial when it always triggers # demandimport.enable() demandimport.enable = lambda *args, **kwargs: 1 @@ -39,7 +40,8 @@ from mercurial import subrepo from mercurial import subrepoutil from mercurial import tags as hg_tag from mercurial import util as hgutil -from mercurial.commands import clone, nullid, pull +from mercurial.commands import clone, pull +from mercurial.node import nullid from mercurial.context import memctx, memfilectx from mercurial.error import ( LookupError, RepoError, RepoLookupError, Abort, InterventionRequired, @@ -53,7 +55,7 @@ from mercurial.encoding import tolocal from mercurial.discovery import findcommonoutgoing from mercurial.hg import peer from mercurial.httppeer import makepeer -from mercurial.util import url as hg_url +from mercurial.utils.urlutil import url as hg_url from mercurial.scmutil import revrange, revsymbol from mercurial.node import nullrev from mercurial import exchange @@ -63,6 +65,9 @@ from hgext import largefiles # infinit looping when given invalid resources from mercurial.url import httpbasicauthhandler, httpdigestauthhandler +# hg strip is in core now +from mercurial import strip as hgext_strip + def get_ctx(repo, ref): try: diff --git a/vcsserver/lib/rc_cache/utils.py b/vcsserver/lib/rc_cache/utils.py --- a/vcsserver/lib/rc_cache/utils.py +++ b/vcsserver/lib/rc_cache/utils.py @@ -21,10 +21,8 @@ import logging import functools from dogpile.cache import CacheRegion -from dogpile.cache.util import compat from vcsserver.utils import safe_str, sha1 - from vcsserver.lib.rc_cache import region_meta log = logging.getLogger(__name__) @@ -36,7 +34,7 @@ class RhodeCodeCacheRegion(CacheRegion): self, namespace=None, expiration_time=None, should_cache_fn=None, - to_str=compat.string_type, + to_str=str, function_key_generator=None, condition=True): """ @@ -44,7 +42,7 @@ class RhodeCodeCacheRegion(CacheRegion): condition isn't meet. This works a bit different than should_cache_fn And it's faster in cases we don't ever want to compute cached values """ - expiration_time_is_callable = compat.callable(expiration_time) + expiration_time_is_callable = callable(expiration_time) if function_key_generator is None: function_key_generator = self.function_key_generator @@ -53,7 +51,7 @@ class RhodeCodeCacheRegion(CacheRegion): # once we've migrated to py3 if 'cython' == 'cython': def decorator(fn): - if to_str is compat.string_type: + if to_str is str: # backwards compatible key_generator = function_key_generator(namespace, fn) else: @@ -123,7 +121,7 @@ class RhodeCodeCacheRegion(CacheRegion): return self.get_or_create(key, user_func, timeout, should_cache_fn, (arg, kw)) def cache_decorator(user_func): - if to_str is compat.string_type: + if to_str is str: # backwards compatible key_generator = function_key_generator(namespace, user_func) else: @@ -176,7 +174,7 @@ def get_default_cache_settings(settings, if key.startswith(prefix): name = key.split(prefix)[1].strip() val = settings[key] - if isinstance(val, compat.string_types): + if isinstance(val, str): val = val.strip() cache_settings[name] = val return cache_settings diff --git a/vcsserver/svn.py b/vcsserver/svn.py --- a/vcsserver/svn.py +++ b/vcsserver/svn.py @@ -16,10 +16,8 @@ # Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA - import os import subprocess -import time from urllib.error import URLError import urllib.parse import logging @@ -507,12 +505,12 @@ class SvnRemote(RemoteBase): if safe_call: return '', safe_str(err).strip() else: - cmd = ' '.join(cmd) # human friendly CMD - tb_err = ("Couldn't run svn command (%s).\n" - "Original error was:%s\n" - "Call options:%s\n" - % (cmd, err, _opts)) - log.exception(tb_err) + cmd = ' '.join(cmd) # human friendly CMD + tb_err = ("Couldn't run svn command (%s).\n" + "Original error was:%s\n" + "Call options:%s\n" + % (cmd, err, _opts)) + log.exception(tb_err) raise exceptions.VcsException()(tb_err) @reraise_safe_exceptions