Windows long path experimenting report
Jesse Glick
jesse.glick at sun.com
Thu Jun 26 20:13:35 CDT 2008
Peter Arrenbrecht wrote:
> Proposal:
>
> [...] fall back on a hashing scheme. [...]
>
> def encode(path):
> ubar = ubarencode(path)
> if len(ubar) > repo.maxstorepathlen:
> return hashencode(ubar)
> return ubar
>
> def hashencode(path):
> return 'hashed/' + path[:10] + md5.md5(path).hexdigest()
You need to do some more work, since currently serving the repo tries to
iterate over storage files and this assumes a reversible encoding.
For a working patch to play with:
http://www.selenic.com/mercurial/bts/file520/prevent-excessively-long-repo-paths.diff
Doesn't apply cleanly against current sources, but probably easy enough
to fix up.
More information about the Mercurial-devel
mailing list