Re: [PATCH] remote-hg: fix path when cloning with tilde expansion
From: Antoine Pelisse <hidden>
Date: 2016-06-15 22:58:23
On Fri, Aug 9, 2013 at 8:49 PM, Junio C Hamano [off-list ref] wrote:
Antoine Pelisse [off-list ref] writes:quoted
On Mon, Aug 5, 2013 at 10:30 PM, Felipe Contreras [off-list ref] wrote:quoted
Shouldn't that be the job of the shell? (s/~/$HOME/)I'm not sure what you mean here. Does it mean that I should stop cloning using "~" ?I think shells do not expand ~ when it appears in a string (e.g. hg::~/there); you could work it around with git clone hg::$(echo ~/there) and I suspect that is what Felipe is alluding to. A tool (like remote-hg bridge with this patch) that expands ~ in the middle of a string also may be surprising to some people, especially to those who know the shell does not.
It looks like mercurial will expand the tilde (it it starts with it): hg init \~ will create a $HOME/.hg. (while git init \~ will create ./~). So when we run: git clone hg::~/my/repo Git will remove the "hg::" part, and Mercurial will expand tilde and clone $HOME/my/repo. So what should we do ? I think we should stick as close as possible to Hg behavior: That is consider that a path starting with tilde is absolute, and not try to fix it by building /home/user/~/repo/path. Of course if we could not depend on "I think Hg works like that", it would be better if we could resolve that by asking Mercurial. I will dig into it.
By the way, you earlier sent an updated 1/2; is this supposed to be 2/2 to conclude the two-patch series?
Those two patches don't interact with each other, but you can of course join them if it makes it easier for you (and I don't think one is going to have to go "faster" than the other anyway).