From 5819a0ec6176142c9a07e6af7c5766bdb8388c16 Mon Sep 17 00:00:00 2001 From: ievgenii vdovenko Date: Fri, 6 Jun 2025 13:13:21 +0200 Subject: [PATCH] fix: calls vcs server cache invalidation on repository delete --- .../apps/repository/views/repo_settings_advanced.py | 11 ++++++++++- rhodecode/lib/vcs/backends/svn/repository.py | 6 +++--- 2 files changed, 13 insertions(+), 4 deletions(-) diff --git a/rhodecode/apps/repository/views/repo_settings_advanced.py b/rhodecode/apps/repository/views/repo_settings_advanced.py index 87a0c098..402df14d 100644 --- a/rhodecode/apps/repository/views/repo_settings_advanced.py +++ b/rhodecode/apps/repository/views/repo_settings_advanced.py @@ -134,6 +134,10 @@ class RepoSettingsAdvancedView(RepoAppView): repo_advanced_url = h.route_path("edit_repo_advanced", repo_name=self.db_repo_name, _anchor="advanced-delete") try: old_data = self.db_repo.get_api_data() + + delete_cache = True + self._invalidate_remote_cache(delete=delete_cache) + RepoModel().delete(self.db_repo, forks=handle_forks) _forks = self.db_repo.forks.count() @@ -148,7 +152,7 @@ class RepoSettingsAdvancedView(RepoAppView): "repo.delete", action_data={"old_data": old_data}, user=self._rhodecode_user, repo=repo ) - ScmModel().mark_for_invalidation(self.db_repo_name, delete=True) + ScmModel().mark_for_invalidation(self.db_repo_name, delete=delete_cache) h.flash(_("Deleted repository `%s`") % self.db_repo_name, category="success") Session().commit() except AttachedForksError: @@ -196,6 +200,11 @@ class RepoSettingsAdvancedView(RepoAppView): raise HTTPFound(h.route_path("home")) + def _invalidate_remote_cache(self, delete: bool): + log.debug(f"Invalidating remote cache, for repository: {self.db_repo_name}") + scm_repo = self.db_repo.scm_instance(cache=False) + scm_repo.vcsserver_invalidate_cache(delete=delete) + @LoginRequired() @HasRepoPermissionAnyDecorator("repository.admin") @CSRFRequired() diff --git a/rhodecode/lib/vcs/backends/svn/repository.py b/rhodecode/lib/vcs/backends/svn/repository.py index d0ae04de..101cb8da 100644 --- a/rhodecode/lib/vcs/backends/svn/repository.py +++ b/rhodecode/lib/vcs/backends/svn/repository.py @@ -235,8 +235,8 @@ class SubversionRepository(base.BaseRepository): try: SubversionRepository(path) return True - except VCSError: - pass + except VCSError as e: + log.warning(f"VCSError: {repr(e)}") return False @LazyProperty @@ -307,7 +307,7 @@ class SubversionRepository(base.BaseRepository): start_raw_id = self._sanitize_commit_id(start_id) end_raw_id = self._sanitize_commit_id(end_id) - + # for empty revisions in SVN if start_raw_id not in self.commit_ids or end_raw_id not in self.commit_ids: return base.CollectionGenerator(self, [])