[PATCH 1 of 2] subrepo: check that subrepo paths are not existing files

Jordi Gutiérrez Hermoso jordigh at octave.org
Wed Sep 10 09:48:00 CDT 2014


On Wed, 2014-09-10 at 01:31 +0200, Mads Kiilerich wrote:
> On 09/09/2014 07:56 PM, Jordi Gutiérrez Hermoso wrote:
> > # HG changeset patch
> > # User Jordi Gutiérrez Hermoso <jordigh at octave.org>
> > # Date 1410279390 14400
> > #      Tue Sep 09 12:16:30 2014 -0400
> > # Node ID 7611a7833657301d9a881095828d5e75558d82f9
> > # Parent  897041f6b025778193c6da5b9795da09a91c866e
> > subrepo: check that subrepo paths are not existing files
> >
> > This check has to happen early one, as the .hgsub file is being
> > parsed.
> 
> Why?

Because why not catch an error as early as possible?

Currently these problems are caught later after hgsub has been parsed
and when attempting to create a subrepo Python object. This is too
late, and is the core problem in bug #4363.

> > This should provide an early error message.
> 
> Could we please have a test to show it?

Sure, I'll write one.

> > diff --git a/mercurial/subrepo.py b/mercurial/subrepo.py
> > --- a/mercurial/subrepo.py
> > +++ b/mercurial/subrepo.py
> > @@ -126,6 +126,10 @@ def state(ctx, ui):
> >   
> >       state = {}
> >       for path, src in p[''].items():
> > +
> 
> Why add an extra empty line here? It is stupid to spend time
> complaining about it but it also doesn't work to add an empty after
> every for loop.

It made sense to me, but I don't really care, I'll get rid of it.

> > +        if os.path.isfile(path):
> 
> Depending on what problem this patch is solving, shouldn't it also 
> consider directories and symlinks and other file types?

Those other problems are already caught by pathauditor in the other
patch.

I'll explain that in the commit message.

- Jordi G. H.




More information about the Mercurial-devel mailing list