Occasional case-folding error when trying to transplant or graft

JohnRenstrom John.Renstrom at HexagonMetrology.com
Thu Feb 2 09:08:20 CST 2012


It is a pain, but we just remove the file (with the bad case) in one changeset then add the file (with desired case) back in a second changeset...This seems to be the only way we have been able to resolve the problem...

 

Just wait for the day when the same file w/mixed case has been added to two different branches and you try to perform a transplant/graft...That is when your head wants to spin 360 degrees and explode!  ;(

 

From: rupert THURNER [via Mercurial] [mailto:ml-node+s808500n3709540h84 at n3.nabble.com] 
Sent: Thursday, February 02, 2012 3:40 AM
To: John Renstrom
Subject: Re: Occasional case-folding error when trying to transplant or graft

 

On Feb 1, 7:04 pm, Matt Mackall <[hidden email]> wrote: 


> On Tue, 2012-01-31 at 22:42 -0800,rupert.thurner wrote: 
> > On Jan 17, 7:10 pm, Matt Mackall <[hidden email]> wrote: 
> > > On Mon, 2012-01-16 at 15:46 -0800, JohnRenstrom wrote: 
> > > > We've been using Mercurial for several years at my company and every once in 
> > > > a while we will get that painful case-folding scenario; By using some custom 
> > > > hooks on push we have been able to catch these problems before they get 
> > > > pushed out to the main repository which has dramatically improved our down 
> > > > time.  Now it is just a local issue that one developer must resolve before 
> > > > his changeset can be pushed to the server. 
> 
> > > > We still bump into occasional case-folding issues with transplant/graft and 
> > > > today while I was examining one of these issues I may have stumbled onto a 
> > > > reason why they seem to come and go so randomly. 
> 
> > > > *My Theory:* 
> > > > AlthoughWindowsis a case-insensitive OS it does still preserve case; I 
> > > > noticed today that the same file had been added to two different branches: 
> > > >    Branch 1: 'Filename.txt' 
> > > >    Branch 2: 'FILENAME.TXT'    (AllUppercase) 
> 
> > > You probably have a tool in your toolchain that's helpfully uppercasing 
> > > filenames on write. We've seen this with various editors. 
> 
> > > Mercurial itself will studiously ignore such changes for -existing- 
> > > files. But for newly-added files, it will take the on-disk 
> > > capitalization. After that, merges with case collisions might have 
> > > "interesting" results onWindows. 
> 
> > > Recent Mercurial (as of 2.0.2 on Jan 1!) will refuse to merge branches 
> > > if there's a case conflict and you're using a case-insensitive 
> > > filesystem. This will probably "solve" your graft/transplant issue, but 
> > > you'll probably need to harmonize filenames across all your branches to 
> > > actually do any grafts. 
> > modernwindowsfilesystem is case sensitive like most the other 
> > filesystems, as it stores the case of the filename. and it is 
> > perfectly fine to do: 
> 
> Basically everyone (including Microsoft, in your cite) refers to that 
> behavior as "case-insensitive". 
> 
> > $ move FILE file 
> > while mercurial gives an error on 
> > $ hg mv FILE file 
> 
> Known issue with trivial workaround. 
> 
> > such awindowsfilesystem move confuses mercurial (at least v-2.0) 
> > completely. if one changes the file and moves it, mercurial displays 
> > the file two times: 
> > $ hg st 
> > M FILE 
> > ? file 
> 
> Works for me. Please file a bug with a test case if it's still present 
> in 2.0.2 or 2.1. 


i tested it on windows7 and hg-2.1, and indeed the output is 
different: 
 $ hg st 
 M FILE 

now i am wondering what i need to do to lowercase the file in the 
repository, as we develop mostly on windows, and run the software on 
unix. 

rupert. 
_______________________________________________ 
Mercurial-devel mailing list 
[hidden email] 
http://selenic.com/mailman/listinfo/mercurial-devel



________________________________

If you reply to this email, your message will be added to the discussion below:

http://mercurial.808500.n3.nabble.com/Occasional-case-folding-error-when-trying-to-transplant-or-graft-tp3664778p3709540.html 

To unsubscribe from Occasional case-folding error when trying to transplant or graft, click here <http://mercurial.808500.n3.nabble.com/template/NamlServlet.jtp?macro=unsubscribe_by_code&node=3664778&code=Sm9obi5SZW5zdHJvbUBIZXhhZ29uTWV0cm9sb2d5LmNvbXwzNjY0Nzc4fDM4MDY4NjU4> .
NAML <http://mercurial.808500.n3.nabble.com/template/NamlServlet.jtp?macro=macro_viewer&id=instant_html%21nabble%3Aemail.naml&base=nabble.naml.namespaces.BasicNamespace-nabble.view.web.template.NabbleNamespace-nabble.view.web.template.NodeNamespace&breadcrumbs=notify_subscribers%21nabble%3Aemail.naml-instant_emails%21nabble%3Aemail.naml-send_instant_email%21nabble%3Aemail.naml>  



--
View this message in context: http://mercurial.808500.n3.nabble.com/Occasional-case-folding-error-when-trying-to-transplant-or-graft-tp3664778p3710137.html
Sent from the Development mailing list archive at Nabble.com.


More information about the Mercurial-devel mailing list