Show More
@@ -1,4 +1,4 b'' | |||
|
1 | RhodeCode VCSServer provides access to different vcs backends via network. | |
|
1 | # RhodeCode VCSServer provides access to different vcs backends via network. | |
|
2 | 2 | # Copyright (C) 2014-2020 RhodeCode GmbH |
|
3 | 3 | # |
|
4 | 4 | # This program is free software; you can redistribute it and/or modify |
@@ -14,17 +14,16 b'' | |||
|
14 | 14 | # You should have received a copy of the GNU General Public License |
|
15 | 15 | # along with this program; if not, write to the Free Software Foundation, |
|
16 | 16 | # Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA |
|
17 | import functools | |
|
17 | ||
|
18 | 18 | import io |
|
19 | 19 | import logging |
|
20 | import os | |
|
21 | 20 | import stat |
|
22 | 21 | import urllib.request, urllib.parse, urllib.error |
|
23 | 22 | import urllib.request, urllib.error, urllib.parse |
|
24 | 23 | import traceback |
|
25 | 24 | |
|
26 | 25 | from hgext import largefiles, rebase, purge |
|
27 | from hgext.strip import strip as hgext_strip | |
|
26 | ||
|
28 | 27 | from mercurial import commands |
|
29 | 28 | from mercurial import unionrepo |
|
30 | 29 | from mercurial import verify |
@@ -39,7 +38,7 b' from vcsserver.hgcompat import (' | |||
|
39 | 38 | makepeer, instance, match, memctx, exchange, memfilectx, nullrev, hg_merge, |
|
40 | 39 | patch, peer, revrange, ui, hg_tag, Abort, LookupError, RepoError, |
|
41 | 40 | RepoLookupError, InterventionRequired, RequirementError, |
|
42 | alwaysmatcher, patternmatcher, hgutil) | |
|
41 | alwaysmatcher, patternmatcher, hgutil, hgext_strip) | |
|
43 | 42 | from vcsserver.vcs_base import RemoteBase |
|
44 | 43 | |
|
45 | 44 | log = logging.getLogger(__name__) |
@@ -21,6 +21,7 b' Mercurial libs compatibility' | |||
|
21 | 21 | |
|
22 | 22 | import mercurial |
|
23 | 23 | from mercurial import demandimport |
|
24 | ||
|
24 | 25 | # patch demandimport, due to bug in mercurial when it always triggers |
|
25 | 26 | # demandimport.enable() |
|
26 | 27 | demandimport.enable = lambda *args, **kwargs: 1 |
@@ -39,7 +40,8 b' from mercurial import subrepo' | |||
|
39 | 40 | from mercurial import subrepoutil |
|
40 | 41 | from mercurial import tags as hg_tag |
|
41 | 42 | from mercurial import util as hgutil |
|
42 |
from mercurial.commands import clone, |
|
|
43 | from mercurial.commands import clone, pull | |
|
44 | from mercurial.node import nullid | |
|
43 | 45 | from mercurial.context import memctx, memfilectx |
|
44 | 46 | from mercurial.error import ( |
|
45 | 47 | LookupError, RepoError, RepoLookupError, Abort, InterventionRequired, |
@@ -53,7 +55,7 b' from mercurial.encoding import tolocal' | |||
|
53 | 55 | from mercurial.discovery import findcommonoutgoing |
|
54 | 56 | from mercurial.hg import peer |
|
55 | 57 | from mercurial.httppeer import makepeer |
|
56 | from mercurial.util import url as hg_url | |
|
58 | from mercurial.utils.urlutil import url as hg_url | |
|
57 | 59 | from mercurial.scmutil import revrange, revsymbol |
|
58 | 60 | from mercurial.node import nullrev |
|
59 | 61 | from mercurial import exchange |
@@ -63,6 +65,9 b' from hgext import largefiles' | |||
|
63 | 65 | # infinit looping when given invalid resources |
|
64 | 66 | from mercurial.url import httpbasicauthhandler, httpdigestauthhandler |
|
65 | 67 | |
|
68 | # hg strip is in core now | |
|
69 | from mercurial import strip as hgext_strip | |
|
70 | ||
|
66 | 71 | |
|
67 | 72 | def get_ctx(repo, ref): |
|
68 | 73 | try: |
@@ -21,10 +21,8 b' import logging' | |||
|
21 | 21 | import functools |
|
22 | 22 | |
|
23 | 23 | from dogpile.cache import CacheRegion |
|
24 | from dogpile.cache.util import compat | |
|
25 | 24 | |
|
26 | 25 | from vcsserver.utils import safe_str, sha1 |
|
27 | ||
|
28 | 26 | from vcsserver.lib.rc_cache import region_meta |
|
29 | 27 | |
|
30 | 28 | log = logging.getLogger(__name__) |
@@ -36,7 +34,7 b' class RhodeCodeCacheRegion(CacheRegion):' | |||
|
36 | 34 | self, namespace=None, |
|
37 | 35 | expiration_time=None, |
|
38 | 36 | should_cache_fn=None, |
|
39 |
to_str= |
|
|
37 | to_str=str, | |
|
40 | 38 | function_key_generator=None, |
|
41 | 39 | condition=True): |
|
42 | 40 | """ |
@@ -44,7 +42,7 b' class RhodeCodeCacheRegion(CacheRegion):' | |||
|
44 | 42 | condition isn't meet. This works a bit different than should_cache_fn |
|
45 | 43 | And it's faster in cases we don't ever want to compute cached values |
|
46 | 44 | """ |
|
47 |
expiration_time_is_callable = |
|
|
45 | expiration_time_is_callable = callable(expiration_time) | |
|
48 | 46 | |
|
49 | 47 | if function_key_generator is None: |
|
50 | 48 | function_key_generator = self.function_key_generator |
@@ -53,7 +51,7 b' class RhodeCodeCacheRegion(CacheRegion):' | |||
|
53 | 51 | # once we've migrated to py3 |
|
54 | 52 | if 'cython' == 'cython': |
|
55 | 53 | def decorator(fn): |
|
56 |
if to_str is |
|
|
54 | if to_str is str: | |
|
57 | 55 | # backwards compatible |
|
58 | 56 | key_generator = function_key_generator(namespace, fn) |
|
59 | 57 | else: |
@@ -123,7 +121,7 b' class RhodeCodeCacheRegion(CacheRegion):' | |||
|
123 | 121 | return self.get_or_create(key, user_func, timeout, should_cache_fn, (arg, kw)) |
|
124 | 122 | |
|
125 | 123 | def cache_decorator(user_func): |
|
126 |
if to_str is |
|
|
124 | if to_str is str: | |
|
127 | 125 | # backwards compatible |
|
128 | 126 | key_generator = function_key_generator(namespace, user_func) |
|
129 | 127 | else: |
@@ -176,7 +174,7 b' def get_default_cache_settings(settings,' | |||
|
176 | 174 | if key.startswith(prefix): |
|
177 | 175 | name = key.split(prefix)[1].strip() |
|
178 | 176 | val = settings[key] |
|
179 |
if isinstance(val, |
|
|
177 | if isinstance(val, str): | |
|
180 | 178 | val = val.strip() |
|
181 | 179 | cache_settings[name] = val |
|
182 | 180 | return cache_settings |
General Comments 0
You need to be logged in to leave comments.
Login now