Thread (5 messages) flat view 5 messages, 2 authors, 2016-06-15

Re: [PATCH 2/2] remote-hg: add shared repo upgrade

From: Felipe Contreras <hidden>
Date: 2016-06-15 22:58:23

On Fri, Aug 9, 2013 at 3:19 PM, Antoine Pelisse [off-list ref] wrote:
On Fri, Aug 9, 2013 at 10:03 PM, Felipe Contreras
[off-list ref] wrote:
quoted
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 ?
Yeah, that's true.
quoted
+        # 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
I prefer my version because if there's any need to add more lines,
they don't have to be indented. That's why a lot of code ends up
having unnecessary indentation.

-- 
Felipe Contreras
Keyboard shortcuts
hback out one level
jnext message in thread
kprevious message in thread
ldrill in
Escclose help / fold thread tree
?toggle this help