我们进行非常跨平台的开发,所以看到带有 Linux 和 2 或 3 个版本的 Windows 的盒子并不奇怪。
到目前为止,我在每个平台上都有我们项目的 SVN 工作副本,有时会变得很笨拙。我正在考虑为项目使用单个分区,可以从所有平台访问。看起来唯一的选择是 FAT32 或 NTFS(Linux、Windows 甚至 Mac 都可以读/写)。
不过,我有点担心不同的文件系统语义。例如,区分大小写、所有权和权限。
你能推荐一个更好的可移植文件系统吗?你认为我的反对没有道理吗?
编辑:让我澄清一下。我爱SVN。我正在寻找的是在我的本地机器上拥有一个由其中的所有操作系统共享的工作副本。特别是当我在远程工作时,我想签出或更新一次,并使用来自所有操作系统的相同工作副本。
您不能将同一个分区直接安装在多个系统中(至少不会因为每个操作系统的缓存不连贯而导致数据丢失)。您必须在一个操作系统中卸载磁盘并将其安装在另一个操作系统中,这几乎不比 svn commit/update 好。
对于真正的共享访问,您必须通过网络使用共享,然后文件系统并不重要(磁盘永远不会被主机操作系统直接接触)。
对于 Linux 和 OS X 之间的共享,您可以使用 NFS,它保留了大部分底层文件系统的语义,并且与 Samba 相比,它快速且轻松。
OS X <> Linux 共享中唯一真正的不兼容是 OS X 中的非 ASCII 文件名必须使用 UTF-8 进行分解(例如 ö 必须写为两个代码点:o 和 ¨)。Linux 不在乎,因此解决方案是始终在 OS X 上创建和签入此类文件。
如果您想要 Windows 兼容性,那么您将不得不禁止使用符号链接。它们在 NTFS 中理论上是可行的,但它们无法在任何网络共享中存活。
您可以获得允许Windows和Mac读取 EXT2 或 EXT3 分区的驱动程序,因此这可能是一种替代方法。
此外,如果您有多个开发人员在同一代码库上工作,那么您确实应该强制执行版本控制。如果您对 Subversion 感到痛苦,您可能想改用git 。它是分布式的(这意味着不再有一个中央服务器托管代码库的一个真实副本)并且对分支和合并有更好的支持。它适用于所有主要的开发平台。
如果您使用源代码管理,您使用的文件系统应该无关紧要。如果开发人员仅从版本控制系统中获取项目所需的文件,他们的客户将使用他们机器上使用的文件系统自动创建必要的文件和目录。如果您有不受源代码控制的文件,请查看Samba 这将允许您使用 Linux 文件服务器来设置可以从 Linux、Mac 或 Windows 访问的网络共享。如果您的主服务器是 Windows,您仍然可以在它们上设置共享并使用 Linux 和 Mac 客户端进行连接。有关在 Mac 上连接到 Samba 共享的信息,请参阅此链接。