Subject: Re: Copying Git repository from Linux to Windows.

From: Jakub Narebski <[email-masked]>
Date: Wed, 15 Jun 2011 16:14:05 +0200

On Wed, 15.06.2011, viresh kumar wrote:
> On 06/15/2011 04:59 PM, Jakub Narebski wrote:

> > Ah. This is caused by the fact that FAT doesn't store executable
> > permission.
> > 
> > So beside setting `core.symlinks` to false, you would have also set
> > `core.filemode` to false (and perhaps also `core.ignorecase` to true).
  
> [...], but there is one more issue, as pointed out by
> Andreas. There are few files in kernel with same file name but in different _cases_ (one in caps 
> and another in small.) and so i am getting issues with these now.
> 
> And don't have any idea how to get rid of that?

core.ignorecase::
        If true, this option enables various workarounds to enable
        git to work better on filesystems that are not case sensitive,
        like FAT. For example, if a directory listing finds
        "makefile" when git expects "Makefile", git will assume
        it is really the same file, and continue to remember it as
        "Makefile".

	The default is false

But that wouldn't unfortunately help when there are two files which
filename differs only in case.

You would have to do tricks with `git update-index` and its 
--assume-unchanged bit (though perhaps `core.ignorecase` would be
enough) and `--cacheinfo <mode> <object> <path>` together with
`git hash-object -w`... 

Or perhaps delete file which you have in working area, checkout
one file, add it, checkout other file, add it, use 'git commit'
and not 'git commit -a'.

But that are only possible solutions; I have sane filesystem.

Can't you work on NTFS, and use USB stick only for transport of
either tarred repository, or bundle?

> And why does kernel have such file names at all? 

That I don't know.

-- 
Jakub Narebski
Poland