hg diff seems to traverse unnecessary dirs
Matt Mackall
mpm at selenic.com
Wed Jul 23 11:14:58 CDT 2008
On Wed, 2008-07-23 at 08:23 -0400, Jeff Squyres wrote:
> I can guess what happened: configure runs lots of tests in short-lived
> subdirectories. It creates a subdir, runs a test, and then whacks the
> subdir. So if hg scans a directory, it might see a subdirectory but
> by the time it tries to traverse into that subdirectory, it could be
> gone.
Our diff generation function calls into a status utility function to
figure out what the modified/added/removed files are. Up until very
recently, that function also returned a list of unknown files by
default. That's now fixed in tip.
> Open MPI is a goodly-sized code base (Mercurial tracks around 4500
> files); several Mercurial operations take a few seconds, even on a
> local/fast file system. I always wondered why that was, especially
> when you run what should be a small operation (e.g., "hg diff" on ompi/
> mca/io/romio is a pretty small subtree out of the overall code base;
> "svn diff" on the same tree is nearly instantaneous). Could this
> "traversing unneeded directories" behavior be contributing to the
> "slow" operations?
Yes.
--
Mathematics is the supreme nostalgia of our time.
More information about the Mercurial
mailing list