From: Junio C Hamano Date: Wed, 4 Sep 2013 19:36:32 +0000 (-0700) Subject: Merge branch 'fc/remote-hg-shared-setup' X-Git-Tag: v1.8.5-rc0~185 X-Git-Url: https://git.lorimer.id.au/gitweb.git/diff_plain/4f5e9726e1fd0f9a5cbf53c70055fc678e48a06c?hp=-c Merge branch 'fc/remote-hg-shared-setup' * fc/remote-hg-shared-setup: remote-hg: add shared repo upgrade remote-hg: ensure shared repo is initialized --- 4f5e9726e1fd0f9a5cbf53c70055fc678e48a06c diff --combined contrib/remote-helpers/git-remote-hg index 81ca001c3b,d2ff0e2653..c27603965a --- a/contrib/remote-helpers/git-remote-hg +++ b/contrib/remote-helpers/git-remote-hg @@@ -391,11 -391,24 +391,24 @@@ def get_repo(url, alias) os.makedirs(dirname) else: shared_path = os.path.join(gitdir, 'hg') - if not os.path.exists(shared_path): - try: - hg.clone(myui, {}, url, shared_path, update=False, pull=True) - except: - die('Repository error') + + # 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) + except error.RepoError: + pass if not os.path.exists(dirname): os.makedirs(dirname) @@@ -1124,7 -1137,7 +1137,7 @@@ def do_option(parser) def fix_path(alias, repo, orig_url): url = urlparse.urlparse(orig_url, 'file') - if url.scheme != 'file' or os.path.isabs(url.path): + if url.scheme != 'file' or os.path.isabs(os.path.expanduser(url.path)): return abs_url = urlparse.urljoin("%s/" % os.getcwd(), orig_url) cmd = ['git', 'config', 'remote.%s.url' % alias, "hg::%s" % abs_url]