On Wed, 3 Sep 2008 17:44:19 -0500, Will Fiveash <William.Fiveash at Sun.COM> 
wrote:
> In /ws/onnv-gate I see that .hgignore contains:
>
> syntax: glob
> *
>
> Why?  I ask this because this breaks one of hg status useful features
> which is reporting unknown files.

It also transforms `unknown' files to `ignored' by default, so you can
still get at them with:

        hg stat --ignored

or

        hg stat -i

So "hg status" isn't really broken.  It's just a lot less chatty :)

Ignoring all files by default is probably going to be slightly
inconvenient if you forget to add new files to a workspace, build with
them, commit and push to another workspace.  Then the build may be using
'local' files that will not get pushed, and cause build problems later.

Having said that, the default `.hgignore' has a few nice side-effects too:

  (a) You don't get to see all the build output files by default.  This
      is slightly nicer than getting a few thousands of *.o files and
      other intermediate build output thrown into the default output
      of every single "hg stat".

  (b) Mercurial doesn't stat the ignored files, and this speeds up
      some common operations (hg stat, hg diff, and pretty much
      anything that depends on the 'dirstate' of the workspace).

Some of the performance fixes for ignored files were pushed to the
latest development branch of Mercurial (the `crew' repository), so they
are probably unavailable in the ON build tools.  They will start being
more useful when ON updates its build tools to an official release of
Mercurial that includes all these performance fixes.

HTH,
Giorgos


Reply via email to