Subject: Re: Bug? Git checkout fails with a wrong error message

From: Yves Goergen <[email-masked]>
Date: Fri, 13 Jan 2012 18:46:07 +0100

On 13.01.2012 13:50 CE(S)T, Holger Hellmuth wrote:
> Important information missing: What version of git are you using? Should 
> the version number begin with 1.6 or even lower you will get the advice 
> to update your version to something non-ancient. Lots of bug-fixes 
> happened in-between.

The first bug happened with msysGit 1.7.6 and 1.7.8, the second one
(reported now) with 1.7.8. That update didn't change a thing.

> I assume .cs is a C source file for visual studio, not a generated file, 
> right ?

.cs is C# code and .Designer.cs files are used internally by the Visual
Studio designer. They're not supposed to be edited by the programmer and
contain lots of stuff that changes all the time. So they are generated
and presented in a different way.

> git does not record renames like cvs/svn do. It operates on snapshots 
> and infers renames through comparisions. So if the next commit has a 
> file missing and the same or similar file contents under some different 
> path, it reports it as a rename. You can try -M with git log or git diff 
> so that git expends more effort to detect renames+edits. Or you could 
> avoid doing renames and edits of the same file in the same commit.

I renamed the file and created a new one with the same name. Is it so
simple to crash the Git repository?

>> -----
>> git.exe checkout    form-refactoring
>>
>> Aborting
>> error: The following untracked working tree files would be overwritten by
>> checkout:
>> Form1.Designer.cs
>> Please move or remove them before you can switch branches.
>> -----
> 
> You didn't mention that filename before (please assume people not 
> accustomed to the ways of Visual Studio 2010). Is that another file you 
> renamed and created new in the form-refactoring branch?

Form1.cs, Form1.Designer.cs and Form1.resx all belong together and are
renamed atomically. If I rename "Form1" in the project, actually these 3
files are renamed on disk.

> What does git diff -- Form1.Designer.cs' say?

Nothing.

> What does 'git diff form-refactoring -- Form1.Designer.cs' say?

All lines deleted.

Will this message also appear on the mailing list where I posted my
first message with Gmane? (That's the only thing I've found on the
official Git website.)

-- 
Yves Goergen "LonelyPixel" <[email-masked]>
Visit my web laboratory at http://beta.unclassified.de