# HG changeset patch # User Mads Kiilerich # Date 1386700237 -3600 # Node ID 0f4402c519ff8e8bcf431b83ccc2af46cfc49753 # Parent 4b7a790d9702891e7c195863be9d1924fd3a9229 remove: when removing a repo don't rename its .hg/.git folder There is no need to do that ... and doing it will just make analysis and recovery harder and confuse other tools recursing the repos, such as hgweb. diff -r 4b7a790d9702 -r 0f4402c519ff kallithea/lib/vcs/utils/helpers.py --- a/kallithea/lib/vcs/utils/helpers.py Fri Jul 18 18:44:54 2014 +0200 +++ b/kallithea/lib/vcs/utils/helpers.py Tue Dec 10 19:30:37 2013 +0100 @@ -75,10 +75,12 @@ result = [] for key in ALIASES: + # find .hg / .git dirname = os.path.join(path, '.' + key) if os.path.isdir(dirname): result.append(key) continue + # find rm__.hg / rm__.git too - left overs from old method for deleting dirname = os.path.join(path, 'rm__.' + key) if os.path.isdir(dirname): return result diff -r 4b7a790d9702 -r 0f4402c519ff kallithea/model/repo.py --- a/kallithea/model/repo.py Fri Jul 18 18:44:54 2014 +0200 +++ b/kallithea/model/repo.py Tue Dec 10 19:30:37 2013 +0100 @@ -762,26 +762,14 @@ def _delete_filesystem_repo(self, repo): """ - removes repo from filesystem, the removal is acctually made by - added rm__ prefix into dir, and rename internat .hg/.git dirs so this - repository is no longer valid for kallithea, can be undeleted later on - by reverting the renames on this repository + removes repo from filesystem, the removal is actually done by + renaming dir to a 'rm__*' prefix which Kallithea will skip. + It can be undeleted later by reverting the rename. :param repo: repo object """ rm_path = os.path.join(self.repos_path, repo.repo_name) - log.info("Removing repository %s" % (rm_path,)) - # disable hg/git internal that it doesn't get detected as repo - alias = repo.repo_type - - bare = getattr(repo.scm_instance, 'bare', False) - - # skip this for bare git repos - if not bare: - # disable VCS repo - vcs_path = os.path.join(rm_path, '.%s' % alias) - if os.path.exists(vcs_path): - shutil.move(vcs_path, os.path.join(rm_path, 'rm__.%s' % alias)) + log.info("Removing %s" % (rm_path)) _now = datetime.now() _ms = str(_now.microsecond).rjust(6, '0') @@ -790,6 +778,4 @@ if repo.group: args = repo.group.full_path_splitted + [_d] _d = os.path.join(*args) - - if os.path.isdir(rm_path): - shutil.move(rm_path, os.path.join(self.repos_path, _d)) + shutil.move(rm_path, os.path.join(self.repos_path, _d))