文件系统跨平台共享项目

我们做了非常跨平台的开发,所以看到带有Linux和2或3版本Windows的机器并不奇怪。

到目前为止,我在每个平台上都有一个SVN的项目工作副本,有时候会变得笨拙。 我正在考虑为所有平台都可以使用的单个分区。 看起来像唯一的select将是FAT32或NTFS(Linux,Windows甚至Mac可以读/写)。

不过,我有点担心不同的文件系统语义。 例如,区分大小写,所有权和权限。

你能推荐一个更好的便携式文件系统吗? 你认为我的反对意见不合理吗?

编辑:让我澄清。 我爱SVN。 我正在寻找的是在我的本地机器中的所有操作系统共享一个单一的工作副本。 特别是当我在远程工作时,我想检出或更新一次,并从所有操作系统使用相同的工作副本。

您不能将同一个分区直接安装在多个系统中(至less不要因为每个操作系统的高速caching不一致而导致数据丢失)。 您必须在一个操作系统中卸载磁盘,并将其装入另一个,这比svn commit / update更好。

对于真正的共享访问,您必须使用通过networking共享,然后文件系统并不重要(磁盘从来没有超过主机操作系统直接触摸)。

为了在Linux和OS X之间共享,你可以使用NFS,它保留了大部分底层文件系统的语义,与Samba相比,它是快速和无痛的。

在OS X <> Linux共享中唯一真正的不兼容是OS X中的非ASCII文件名必须使用UTF-8进行分解(例如ö必须写成两个代码点:o和¨)。 Linux不关心,所以解决scheme是在OS X上总是创build和检查这些文件。

如果你想要Windows的兼容性,那么你将不得不禁止使用符号链接。 他们在理论上可能在NTFS,但他们将无法生存任何networking共享。

您可以获得允许Windows和Mac读取EXT2或EXT3分区的驱动程序,以便作为替代scheme。

另外,如果您有多个开发人员使用相同的代码库,那么您应该实施版本控制。 如果你对Subversion感到痛苦,你可能会想要检查一下git 。 它是分布式的(这意味着不再有一个中央服务器托pipe代码库的单一副本),并且对分支和合并有更好的支持。 它适用于所有主要的开发平台。

如果使用源代码pipe理,则使用的文件系统无关紧要。 如果开发人员只从版本控制系统获取工作所需的文件,他们的客户端将自动使用他们机器上使用的文件系统创build必要的文件和目录。 如果您的文件不在源代码控制之外,请查看Samba。这将允许您使用Linux文件服务器来设置可从Linux,Mac或Windows访问的networking共享。 如果您的主服务器是Windows,您仍然可以在其上设置共享并使用Linux和Mac客户端进行连接。 有关在Mac上连接到Samba共享的信息,请参阅此链接。