[PATCH] introduce filenamelog repository layout

Matt Mackall mpm at selenic.com
Fri Jul 11 13:21:02 CDT 2008


On Fri, 2008-07-11 at 19:10 +0200, Adrian Buehlmann wrote:
> # HG changeset patch
> # User Adrian Buehlmann <adrian at cadifra.com>
> # Date 1215795701 -7200
> # Node ID 4c44bdd7f45f62a21feaab6e41a44dd8e8ec9151
> # Parent  2134d6c09432e4e3dbee18d93ec9242a332f7cdc
> introduce filenamelog repository layout
> 
> * adds a new entry 'filenamelog' to .hg/requires for new repos
> * writes new file .hg/store/filenamelog

What's the format?

> * hash-encodes filenames with long paths (issue839)

What's the format?

> * encodes Windows reserved filenames (issue793)

What's the format?

> * aborts on Windows if repo store path length exceeds limit
> 
> The filename encoding used is no longer reversible.

Both encodings? Why? Non-reversible encoding are encoding that can have
collisions. So unless your encoding is cryptographically strong (in
other words, makes collisions extremely unlikely), that's a problem.

> Filelogs with full (unhashed) filenames are stored into '.hg/store/df',

Why change this name?

> This change depends on the fact that hg strip truncates filelog
> files to zero length instead of deleting them. If strip should ever
> start deleting empty filelogs, there will be duplicate entries
> in the filenamelog if filelogs are recreated.

-- 
Mathematics is the supreme nostalgia of our time.



More information about the Mercurial-devel mailing list