From: Felipe Contreras Date: Fri, 09 Aug 2013 20:03:01 GMT Subject: [PATCH 2/2] remote-hg: add shared repo upgrade Message-ID: <1376078581-24766-3-git-send-email-felipe.contreras@gmail.com> In-Reply-To: <1376078581-24766-1-git-send-email-felipe.contreras@gmail.com> 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. It's trivial to upgrade to the new organization by copying the Mercurial repo from one of the remotes (e.g. 'origin'), so let's do so. Signed-off-by: Felipe Contreras --- contrib/remote-helpers/git-remote-hg | 11 +++++++++++ 1 file changed, 11 insertions(+) diff --git a/contrib/remote-helpers/git-remote-hg b/contrib/remote-helpers/git-remote-hg index cfd4f53..9ec13da 100755 --- a/contrib/remote-helpers/git-remote-hg +++ b/contrib/remote-helpers/git-remote-hg @@ -392,6 +392,17 @@ 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 + shutil.copytree(local_hg, hg_path) + break + # setup shared repo (if not there) try: hg.peer(myui, {}, shared_path, create=True) -- 1.8.3.267.gbb4989f