Johannes Schindelin | 16 Dec 12:37 2006

Re: Can git be tweaked to work cross-platform, on FAT32?


On Sat, 16 Dec 2006, Florian v. Savigny wrote:

> DO your answers imply that it is NOT possible (by "possible", I mean of 
> course: possible without re-programming the source code ;-)) to compile 
> git in a way that would enable it to work DIRECTLY with a local 
> repository on FAT32 from both Windows and Linux (or, perhaps more 
> simple: to work directly with a repository on FAT32 under Linux)?

My answer was not so clear...

Question: Is it possible to use git on a FAT32 filesystem?

Answer: Yes.

Question: Is it possible to access such a repository from both Linux and 

Answer: Yes.

Question: Is there anything that could cause problems?

Answer: Yes. The working directory is a problem.

	- Symlinks for example. Don't use them.
	- Umlauts: don't use them.
	- The index has to be updated, since the stat information is 
	  unlikely to match. A simple "git status" should suffice, though.
	- Permissions: the permission handling of Linux and Windows are
	  quite different. If you initialize the repository with Cygwin,
	  it automatically sets core.filemode=false, if you initalize(d) 
	  with Linux, you have to adjust manually.

Question: Are there other shortcomings to this approach?

Answer: Definitely. Most are only annoying (like the performance of FAT32, 
which literally sucks), but some are different: for example, if you 
compile things in the working directory, you will be unhappy.

> 3. ad Johannes: This does sound quite simple and straightforward. If I
>    got it right, it would involve having one repository on a, say,
>    ext2 partition to work with under Linux, and one on a FAT32
>    partition to work with under Windows, and syncing the two after
>    booting (fetching from FAT32) and before shutting down (pushing to
>    FAT32) Linux.

This is how I'd do it.

>    It is quite interesting, BTW, that git can /sync/ with a repository
>    on FAT32 under Linux, but not work with it.

You can. But I wouldn't. I like to keep separations clean and obvious.