[PATCH stable] subrepo: use standard handling of \ in subpath replacement strings (BC)

Matt Mackall mpm at selenic.com
Thu Aug 30 17:00:55 CDT 2012


On Thu, 2012-08-30 at 11:47 +0200, Martin Geisler wrote:
> Matt Mackall <mpm at selenic.com> writes:
> 
> > On Mon, 2012-07-30 at 14:35 +0200, Mads Kiilerich wrote:
> >> On 30/07/12 03:55, Matt Mackall wrote:
> >> > On Mon, 2012-07-30 at 03:18 +0200, Mads Kiilerich wrote:
> >> >> Matt Mackall wrote, On 07/27/2012 09:07 PM:
> >> >>> On Thu, 2012-07-26 at 02:57 +0200, Mads Kiilerich wrote:
> >> >>>> # HG changeset patch
> >> >>>> # User Mads Kiilerich <mads at kiilerich.com>
> >> >>>> # Date 1343264252 -7200
> >> >>>> # Branch stable
> >> >>>> # Node ID 1de046d28995fb6c5af554882d2c5ec14b364ece
> >> >>>> # Parent  1675ef8a2bf2e32e9f42aa3a74b48c0f44ff9b80
> >> >>>> subrepo: use standard handling of \ in subpath replacement strings (BC)
> >> >>> So if I've checked in a .hgsub file which contains replacement
> >> >>> patterns using backslashes, I won't be able to check it out after
> >> >>> upgrading?
> >> >>>
> >> >>> That seems a rather big deal.
> >> >> Negative. All sane setups will work as before.
> >> > Yes... but where does that leave Windows users? </rimshot>
> >> >
> >> > Really, even as bad as the current state is, if there's a
> >> > non-trivial risk it's going to mean people can't check out what
> >> > they checked in after upgrading (definitely a cardinal sin for an
> >> > SCM), I'm not going to buy it. Given how many Windows users have
> >> > reported using "\" in their subrepo config and the fact that this
> >> > misfeature was clearly introduced _for the benefit of Windows
> >> > users_ (probably for one of Martin's clients!), I have basically no
> >> > confidence that Windows users aren't dependent on this.
> >> 
> >> Yes, some Windows users might depend on the misfeature.
> >
> > As I said before, this misfeature was introduced on purpose, probably
> > for a customer of Martin's.
> 
> Yes, the feature was implemented for Lantiq. I don't remember exactly
> whos idea it was to make \N special like this and I don't know if they
> rely on this functionality.

Well, it's not so much that \N is special, because it's already a regex
replacement string, it's that string-escape is used to try to make
Windows users happy in a way that introduces surprises.

If Lantiq has _never_ used this feature, great, that brings my
confidence that reverting this change is safe from about 5% to about
40%. Necessary but not sufficient. Experience has shown that Windows
users will try to use backslashes wherever possible, regardless of what
the docs say. So if the intersection of Windows users and [subpaths]
users is not empty, there will be people who get bit.

So I really think the thing to do is refine the code so that all the
things we want to work do in fact work. Which means replying not to
this, but to the test cases in my last message.

-- 
Mathematics is the supreme nostalgia of our time.




More information about the Mercurial-devel mailing list