From 8f9a87caa240b31f19edd6417f59bbe6004fc5bd Mon Sep 17 00:00:00 2001 From: Felipe Contreras Date: Fri, 9 Aug 2013 17:38:04 -0500 Subject: [PATCH] remote-hg: add shared repo upgrade If we have an old organization (v1.8.3), and want to upgrade to a newer one (v1.8.4), the user would have to fetch the whole repository, instead we can just move the repository, so the user would not notice any difference. Also, remove other clones, so in time they get set up as shared. Signed-off-by: Felipe Contreras Reviewed-by: Antoine Pelisse Signed-off-by: Junio C Hamano --- git-remote-hg | 12 ++++++++++++ 1 file changed, 12 insertions(+) diff --git a/git-remote-hg b/git-remote-hg index ca620c4..c276039 100755 --- a/git-remote-hg +++ b/git-remote-hg @@ -392,6 +392,18 @@ def get_repo(url, alias): else: shared_path = os.path.join(gitdir, 'hg') + # 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 + if not os.path.exists(hg_path): + shutil.move(local_hg, hg_path) + shutil.rmtree(os.path.join(shared_path, x, 'clone')) + # setup shared repo (if not there) try: hg.peer(myui, {}, shared_path, create=True)