Windows people: please help check idea for a new Mercurial repository layout

Adrian Buehlmann adrian at cadifra.com
Sat Jun 14 01:36:58 CDT 2008


On 14.06.2008 01:27, Gregory Collins wrote:
> Adrian Buehlmann <adrian at cadifra.com> writes:
> 
>> I am currently trying to improve the situation described
>> at http://www.selenic.com/mercurial/bts/issue793
>> ("Can't clone repos that use Windows reserved names in paths",
>> see also http://msdn.microsoft.com/en-us/library/aa365247(VS.85).aspx)
>>
>> The problem is that on Windows, we cannot save a tracked file or directory
>> with the name, for example, "aux" inside the .hg directory, because it would be
>> stored as "aux.i" (and possibly "aux.d"), which is forbidden as well
>> (see issue793).
> 
> Windows also prohibits filenames with colons; I've been bitten by this
> before.

Good point, yes. I should have mentioned that colons are already encoded as ~3a in
existing versions of Mercurial. My bad. But thanks for responding!

I've prepared a repo on our website (unix server) so you can test it yourself
(I used TortoiseHG 0.4rc2 on Windows):

> hg version
Mercurial Distributed SCM (version 626cb86a6523+tortoisehg)

> hg clone -U --debug http://www.cadifra.com/cgi-bin/repos/colontest
using http://www.cadifra.com/cgi-bin/repos/colontest
destination directory: colontest
sending heads command
requesting all changes
sending changegroup command
adding changesets
add changeset a6e094e4a0d1
adding manifests
adding file changes
adding file:with:colons revisions
added 1 changesets with 1 changes to 1 files
updating the branch cache

> cd colontest

> hg manifest -r 0
file:with:colons

> dir .hg\store\data
 Volume in drive W is Sys
 Volume Serial Number is 8017-C29E

 Directory of W:\colontest\.hg\store\data

14.06.2008  08:25    <DIR>          .
14.06.2008  08:25    <DIR>          ..
14.06.2008  08:25                69 file~3awith~3acolons.i
               1 File(s)             69 bytes
               2 Dir(s)  31'029'088'256 bytes free

There's also http://www.cadifra.com/cgi-bin/repos/auxtest
with an aux file available for testing. That repo cannot be cloned
to Windows.


More information about the Mercurial mailing list