We do very cross-platform development, so it's not strange to see boxes with Linux and 2 or 3 versions of Windows.

So far I have a SVN working copy of our projects in each platform, which becomes kludgy at times. I'm thinking of using a single partition for the projects, accessible from all platforms. Looks like the only option would be FAT32 or NTFS (which Linux, Windows and even Mac can read/write).

I'm a bit worried about different filesystem semantics, though. For example, case-sensitiveness, ownership and permissions.

Can you recommend a better portable filesystem? Do you think my objections are unjustified?

EDIT : Let me clarify. I love SVN. What I'm looking for is to have a single working copy in my local machine shared by all the OSes in it. Especially when I'm working remotely, I want to check out or update once and use the same working copy from all the OSes.


You can't have the same partition directly mounted in more than one system (at least not without risking loss of data due to incoherency of each OS's caches). You'd have to unmount disk in one OS and mount it in another, which is hardly any better than svn commit/update.

For real shared access you must use sharing via network, and then filesystem doesn't matter much (disk is never touched directly by more than host OS).

For sharing between Linux and OS X you could use NFS, which preserves most of underlying filesystem's semantics and—compared to Samba—it's fast and painless.

The only real incompatibility in OS X <> Linux sharing is that non-ASCII filenames in OS X must use UTF-8 in decomposed (e.g. ö must be written as two codepoints: o and ¨). Linux doesn't care, so the solution is to always create and check in such files on OS X.

If you want Windows compatibility, then you will have to ban use of symlinks. They're theoretically possible in NTFS, but they won't survive any network sharing.

  • Thanks. Note that I don't want to mount the partition simultaneously in more than OS - I'm thinking of doing a SVN update while on Linux, work on it for a while, boot to Windows to test my changes (on the same shared working copy), do a few more changes and commit, and so on. This kind of workflow makes sense in my case, I'm doing it all the time, which is why I want to avoid going through the server (especially for untested changes) – ggambett Feb 25 '10 at 23:08
  • "going through the server (especially for untested changes)" is SVN-specific problem, so you might consider switching to some DVCS. If not, then stick to lowest common denominator - ASCII names, no symlinks, no filenames differing by case only, avoid CRLF or set svn:eol-style. NTFS, even with poor non-windows support, is probably less likely to screw up data than FAT. – Kornel Feb 26 '10 at 1:52

You can get drivers that allow Windows and Mac to read EXT2 or EXT3 partitions, so that might be an alternative.

Also, if you have multiple developers working on the same code base, you really should be enforcing version control. If you've having pain with Subversion, you might want to check out git instead. It's distributed (which means there's no longer a central server hosting the one-true-copy of the code base) and has much better support for branching and merging. It's available for all major development platforms.


The file system you use shouldn't matter if you’re using source control. If a developer only obtains the files needed to work on a project from a version control system their client will automatically create the necessary files and directories using the file system in use on their machine. If you have files that live outside of source control take a look at Samba This will allow you to use a Linux file server to set up network shares that can be accessed from Linux, Mac, or windows. If your main servers are Windows you can still set up shares on them and connect using Linux and Mac clients. For info on connecting to Samba shares on the Mac see thislink.

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Not the answer you're looking for? Browse other questions tagged or ask your own question.