diff options
author | Junio C Hamano <gitster@pobox.com> | 2013-09-04 12:36:32 -0700 |
---|---|---|
committer | Junio C Hamano <gitster@pobox.com> | 2013-09-04 12:36:32 -0700 |
commit | 4f5e9726e1fd0f9a5cbf53c70055fc678e48a06c (patch) | |
tree | 5ea56be379b697f72019aee89c19acc0699cd991 /contrib | |
parent | 2bdd8727d75c29f535efbae2ed4067b7132aaa9a (diff) | |
parent | 3baacc5cc6e4c2ed6184a7c5d9e10299999498dd (diff) | |
download | git-4f5e9726e1fd0f9a5cbf53c70055fc678e48a06c.tar.gz |
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
Diffstat (limited to 'contrib')
-rwxr-xr-x | contrib/remote-helpers/git-remote-hg | 23 |
1 files changed, 18 insertions, 5 deletions
diff --git a/contrib/remote-helpers/git-remote-hg b/contrib/remote-helpers/git-remote-hg index 81ca001c3b..c27603965a 100755 --- a/contrib/remote-helpers/git-remote-hg +++ b/contrib/remote-helpers/git-remote-hg @@ -391,11 +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) |