Merge branch 'fc/remote-hg-shared-setup'
authorJunio C Hamano <gitster@pobox.com>
Wed, 4 Sep 2013 19:36:32 +0000 (12:36 -0700)
committerJunio C Hamano <gitster@pobox.com>
Wed, 4 Sep 2013 19:36:32 +0000 (12:36 -0700)
* fc/remote-hg-shared-setup:
remote-hg: add shared repo upgrade
remote-hg: ensure shared repo is initialized

1  2 
contrib/remote-helpers/git-remote-hg
index 81ca001c3b21da9e936f3e70487a5b65f3ee288f,d2ff0e265399e0ad4ee31503527ce20598e0b14d..c27603965ab6970dd71003603d6a77e637a22ab5
@@@ -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]