From: Felipe Contreras Date: Sun, 04 Aug 2013 14:00:35 GMT Subject: Re: [PATCH] remote-hg: Fix cloning and sharing bug Message-ID: In-Reply-To: <668358E0-3483-4DA0-92DD-D72B02C9FBE8@joernhees.de> On Sun, Aug 4, 2013 at 8:51 AM, Jörn Hees wrote: > On 4 Aug 2013, at 15:31, Felipe Contreras wrote: >> This is my solution: >> >> --- a/contrib/remote-helpers/git-remote-hg.py >> +++ b/contrib/remote-helpers/git-remote-hg.py >> @@ -391,11 +391,22 @@ 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 >> + shutil.copytree(local_hg, hg_path) >> + >> + # setup shared repo (if not there) >> + try: >> + hg.peer(myui, {}, shared_path, create=True) > > Didn't look this up, this will raise the error below when it exists already? Exactly. -- Felipe Contreras