# HG changeset patch # User RhodeCode Admin # Date 2023-03-24 21:18:58 # Node ID 69a85da830dae9496107f46d693ae93bd629a454 # Parent 8fc1778b7e693d9abb880cb709193b8893e6e5c8 vcsserver: few fixes for python3 support diff --git a/vcsserver/remote/git.py b/vcsserver/remote/git.py --- a/vcsserver/remote/git.py +++ b/vcsserver/remote/git.py @@ -328,8 +328,7 @@ class GitRemote(RemoteBase): args = [wire, rev] result[attr] = method(*args) except KeyError as e: - raise exceptions.VcsException(e)( - "Unknown bulk attribute: %s" % attr) + raise exceptions.VcsException(e)(f"Unknown bulk attribute: {attr}") return result return _bulk_request(repo_id, rev, sorted(pre_load)) @@ -359,7 +358,7 @@ class GitRemote(RemoteBase): @reraise_safe_exceptions def check_url(self, url, config): - url_obj = url_parser(url) + url_obj = url_parser(safe_bytes(url)) test_uri, _ = url_obj.authinfo() url_obj.passwd = '*****' if url_obj.passwd else url_obj.passwd url_obj.query = obfuscate_qs(url_obj.query) @@ -470,9 +469,11 @@ class GitRemote(RemoteBase): object_store = repo.object_store # Create tree and populates it with blobs + if commit_tree: + commit_tree = safe_bytes(commit_tree) if commit_tree and repo[commit_tree]: - git_commit = repo[commit_data['parents'][0]] + git_commit = repo[safe_bytes(commit_data['parents'][0])] commit_tree = repo[git_commit.tree] # root tree else: commit_tree = objects.Tree() @@ -575,12 +576,16 @@ class GitRemote(RemoteBase): 'author', 'committer', 'message', - 'encoding' + 'encoding', + 'parents' ] for k, v in commit_data.items(): if k in bytes_keys: - v = safe_bytes(v) + if k == 'parents': + v = [safe_bytes(x) for x in v] + else: + v = safe_bytes(v) setattr(commit, k, v) object_store.add_object(commit) diff --git a/vcsserver/remote/hg.py b/vcsserver/remote/hg.py --- a/vcsserver/remote/hg.py +++ b/vcsserver/remote/hg.py @@ -18,9 +18,10 @@ import io import logging import stat -import urllib.request, urllib.parse, urllib.error -import urllib.request, urllib.error, urllib.parse +import urllib.request +import urllib.parse import traceback +import hashlib from hgext import largefiles, rebase, purge diff --git a/vcsserver/vcs_base.py b/vcsserver/vcs_base.py --- a/vcsserver/vcs_base.py +++ b/vcsserver/vcs_base.py @@ -23,7 +23,7 @@ class RemoteBase(object): def _region(self, wire): cache_repo_id = wire.get('cache_repo_id', '') - cache_namespace_uid = 'cache_repo.{}'.format(cache_repo_id) + cache_namespace_uid = f'cache_repo.{cache_repo_id}' return rc_cache.get_or_create_region('repo_object', cache_namespace_uid) def _cache_on(self, wire): @@ -38,7 +38,7 @@ class RemoteBase(object): from vcsserver.lib import rc_cache repo_id = wire.get('repo_id', '') cache_repo_id = wire.get('cache_repo_id', '') - cache_namespace_uid = 'cache_repo.{}'.format(cache_repo_id) + cache_namespace_uid = f'cache_repo.{cache_repo_id}' if delete: rc_cache.clear_cache_namespace(