Re: [PATCH 2/2] remote-hg: add shared repo upgrade
From: Antoine Pelisse <hidden>
Date: 2016-06-15 22:58:23
On Fri, Aug 9, 2013 at 10:03 PM, Felipe Contreras [off-list ref] wrote:
6796d49 (remote-hg: use a shared repository store) introduced a bug by making the shared repository '.git/hg', which is already used before that patch, so clones that happened before that patch, fail after that patch, because there's no shared Mercurial repo.
Does that still hold ? You are creating the shared_path repository just below, so it should work without the patch. The real reason for this patch is to avoid having to re-clone from a potential slow source, is it not ?
+ # check and upgrade old organization + hg_path = os.path.join(shared_path, '.hg') + if os.path.exists(shared_path) and not os.path.exists(hg_path): + repos = os.listdir(shared_path) + for x in repos: + local_hg = os.path.join(shared_path, x, 'clone', '.hg') + if not os.path.exists(local_hg): + continue + shutil.copytree(local_hg, hg_path) + break +
By the way, I liked my version better, that is:
if os.path.exists(local_hg):
shutil.copytree(local_hg, hg_path)
break
Simplifying the if not condition: continue else: break
# setup shared repo (if not there)
try:
hg.peer(myui, {}, shared_path, create=True)