[PATCH] dirstate: track non-normal files separately

Matt Mackall mpm at selenic.com
Fri Dec 11 16:54:57 CST 2015


On Thu, 2015-12-10 at 22:17 -0800, Bryan O'Sullivan wrote:
> On Wed, Dec 9, 2015 at 3:56 PM, Laurent Charignon <lcharignon at fb.com>
> wrote:
> 
> 
> > -       if (!PyArg_ParseTuple(args, "O!O!s#:parse_dirstate",
> > +       if (!PyArg_ParseTuple(args, "O!O!O!s#:parse_dirstate",
> >                               &PyDict_Type, &dmap,
> >                               &PyDict_Type, &cmap,
> > -                             &str, &readlen))
> > -               goto quit;
> > +                             &PyDict_Type, &nonnmap,
> > +                             &str, &readlen)) {
> > +               /* It might be the old call signature */
> > +               nonnmap = NULL;
> > +               if (!PyArg_ParseTuple(args,
> > "O!O!s#:parse_dirstate",
> > +                                     &PyDict_Type, &dmap,
> > +                                     &PyDict_Type, &cmap,
> > +                                     &str, &readlen))
> > +                       goto quit;
> > +       }
> > 
> 
> I'd love to see Matt run "make local" during a bisect so we don't
> have so
> many unnatural contortions to run through.

It's not just about bisect and it's not just about me.

First, I actually -run- the hg I apply patches to as my main version of
hg. This is dangerous: every few months I hit a bug where importing a
patch breaks the copy of hg doing the import. But it's also super
valuable: I regularly catch obvious bugs that developers who aren't
actually running their development hg have missed. Every Mercurial
developer SHOULD do this.

And since I'm bouncing around the commit graph applying, testing or
rebasing stuff constantly, C/Python API mismatch usually breaks me just
about instantly. Adding a make after every update is making most steps
in my workflow 10x slower. So this issue has an out-sized effect on me,
and I daresay my efficiency has an out-sized effect on everyone else.

As for bisect, it's merely the place where it has the longest-standing
impact. I do bisect several times a week and when one of these API
mismatches sneaks in, it affects me for months.

The other class of users affected (aside from people who SHOULD be
live-developing: all developers), are contributors without easy access
to C compilers. We have ways for people on Windows to hack on hg
without a compiler (and wheels will hopefully improve that
significantly), but API mismatch makes important bug-reporting steps
like bisect impossible for them.

-- 
Mathematics is the supreme nostalgia of our time.



More information about the Mercurial-devel mailing list