Solving long paths by hashing
Matt Mackall
mpm at selenic.com
Sun Jun 29 11:43:51 CDT 2008
On Sun, 2008-06-29 at 14:38 +0200, Dirkjan Ochtman wrote:
> Adrian Buehlmann wrote:
> > Writing to a single longnames file needs write locking.
>
> Yeah, so? You won't be writing to it that often. Only if a new file
> added whose name is too long to be encoded normally.
Indeed, and you're already holding the relevant lock when you do this.
> > Plus it's inefficient and scales badly.
>
> I don't think so. But feel free to actually argue this...
>
> > Needing to update the longnames file requires complex code and more
> > memory (caching).
>
> You don't need to update it that often.
This file can be append-only. We only ever need to write to it when we
add a new hashed revlog. And we only need to read it when we
streamclone.
> > You have to read the whole longnames file before you can start
> > streamcloning.
>
> It shouldn't become very large, since most files won't need it.
Indeed. And it will actually be far more efficient to read this file
than to walk the tree of hashed files.
--
Mathematics is the supreme nostalgia of our time.
More information about the Mercurial-devel
mailing list