mirror of
https://github.com/galaxyproject/galaxy.git
synced 2026-09-19 02:21:32 +08:00
Merge branch 'release_23.1' into release_23.2
This commit is contained in:
@@ -15,6 +15,10 @@ tool_shed:
|
||||
# installation directory.
|
||||
#hgweb_config_dir: null
|
||||
|
||||
# Default URL prefix for repositories served via hgweb. If running an
|
||||
# external hgweb server you should set this to an empty string.
|
||||
#hgweb_repo_prefix: repos/
|
||||
|
||||
# Allow pushing directly to mercurial repositories directly and
|
||||
# without authentication.
|
||||
#config_hg_for_dev: null
|
||||
|
||||
@@ -31,6 +31,14 @@ mapping:
|
||||
Where the hgweb.config file is stored.
|
||||
The default is the Galaxy installation directory.
|
||||
|
||||
hgweb_repo_prefix:
|
||||
type: str
|
||||
required: false
|
||||
default: repos/
|
||||
desc: |
|
||||
Default URL prefix for repositories served via hgweb.
|
||||
If running an external hgweb server you should set this to an empty string.
|
||||
|
||||
config_hg_for_dev:
|
||||
type: str
|
||||
required: false
|
||||
|
||||
@@ -19,11 +19,11 @@ class HgWebConfigManager:
|
||||
def __init__(self):
|
||||
self.hgweb_config_dir = None
|
||||
self.in_memory_config = None
|
||||
self.lock = threading.Lock()
|
||||
|
||||
def add_entry(self, lhs, rhs):
|
||||
"""Add an entry in the hgweb.config file for a new repository."""
|
||||
lock = threading.Lock()
|
||||
lock.acquire(True)
|
||||
self.lock.acquire(True)
|
||||
try:
|
||||
# Since we're changing the config, make sure the latest is loaded into memory.
|
||||
self.read_config(force_read=True)
|
||||
@@ -38,12 +38,11 @@ class HgWebConfigManager:
|
||||
except Exception as e:
|
||||
log.debug("Exception in HgWebConfigManager.add_entry(): %s", unicodify(e))
|
||||
finally:
|
||||
lock.release()
|
||||
self.lock.release()
|
||||
|
||||
def change_entry(self, old_lhs, new_lhs, new_rhs):
|
||||
"""Change an entry in the hgweb.config file for a repository - this only happens when the owner changes the name of the repository."""
|
||||
lock = threading.Lock()
|
||||
lock.acquire(True)
|
||||
self.lock.acquire(True)
|
||||
try:
|
||||
self.make_backup()
|
||||
# Remove the old entry.
|
||||
@@ -55,7 +54,7 @@ class HgWebConfigManager:
|
||||
except Exception as e:
|
||||
log.debug("Exception in HgWebConfigManager.change_entry(): %s", unicodify(e))
|
||||
finally:
|
||||
lock.release()
|
||||
self.lock.release()
|
||||
|
||||
def get_entry(self, lhs):
|
||||
"""Return an entry in the hgweb.config file for a repository"""
|
||||
|
||||
@@ -228,7 +228,7 @@ def create_repository(
|
||||
# Create the local repository.
|
||||
init_repository(repo_path=repository_path)
|
||||
# Add an entry in the hgweb.config file for the local repository.
|
||||
lhs = f"repos/{repository.user.username}/{repository.name}"
|
||||
lhs = f"{app.config.hgweb_repo_prefix}{repository.user.username}/{repository.name}"
|
||||
app.hgweb_config_manager.add_entry(lhs, repository_path)
|
||||
# Create a .hg/hgrc file for the local repository.
|
||||
create_hgrc_file(app, repository)
|
||||
|
||||
Reference in New Issue
Block a user