From: Junio C Hamano Date: Fri, 09 Aug 2013 22:15:32 GMT Subject: Re: [PATCH] remote-hg: fix path when cloning with tilde expansion Message-ID: <7v7gfu4ikb.fsf@alter.siamese.dyndns.org> In-Reply-To: Felipe Contreras writes: >> OK, I think I see why you are puzzled. >> >> Cloning works fine because we "fix the path" *after* the clone is done >> successfully, for the following reason: > > So if we didn't store a different path, it would work. So instead of > expanding '~' ourselves, it would be better to don't expand anything, > and leave it as it is, but how to detect that in fix_path()? I think that the patch relies on that os.path.expanduser(), if url.path is such a path that begins with "~" (or "~whom"), returns an absolute path. When given an absolute path, or "~whom/path", fix_path returns without running 'git config' on remote..url configuration. Presumably this "git config" is to "fix" what is already there, and in the case where the path is already absolute (e.g. "/home/ap/hgrepo" as opposed to "~ap/hgrepo") the resulting repository has a correct value for the variable set already without the need to fix it (that is why the original code just returns from the function), so doing the same for "~whom" case with this patch should leave the setting, which presumably is "hg::~ap/hgrepo"?