Mixed up directory name case

Matt Mackall mpm at selenic.com
Mon Apr 2 17:38:53 UTC 2012


On Mon, 2012-04-02 at 16:38 +0200, Hertroys A. wrote:
> > > If you don't have access to a case-sensitive filesystem (ie Linux) to clean
> > this up, you can do some manual
> > > magic this way:
> > 
> > > http://mercurial.selenic.com/wiki/FixingCaseCollisions
> > 
> > You only have to do this if you have two files in your repository whose paths
> > differ only by case, e.g.
> > 
> > > hg manifest
> > Portal\ui.js
> > portal\ui.js
> > 
> > You'll know you're in this camp when you get an error about case-folding
> > collisions when you try to update to the tip of your branch.
> 
> Now I get the above when I try to clone our main repository. I don't
> understand how we can have case collisions, as all our repositories
> are on Windows! Shouldn't this type of collision be impossible with
> only one type of file-system?!?

Actually, no. Being case-insensitive in a distributed SCM is not
remotely as simple as adding lower() everywhere, so bugs happen. Your
particular bug is fixed in 2.1.2, released yesterday (though that won't
let you fix your problem now).
 
> I tried following the steps outlined in above link, but I can't figure
> out how to find this "bad revision". Which one is that anyway, the
> original one that created the badly named lower case "portal/ui.js" or
> the later one where it was replaced by the correctly named
> "Portal/ui.js"?

In the context of the wiki page, it's the revision you're trying to
check out. For a clone, that would be the default branch head. If you
try to fix an earlier version that's not a branch head.. you'll create a
new branch head, which would be unhelpful.

-- 
Mathematics is the supreme nostalgia of our time.





More information about the Mercurial mailing list