跨平台共享项目的文件系统

跨平台共享项目的文件系统

我们进行的是跨平台开发,因此看到装有 Linux 和 2 或 3 个版本的 Windows 的机器并不奇怪。

到目前为止,我在每个平台上都有我们项目的 SVN 工作副本,但有时会变得很麻烦。我正在考虑为项目使用一个分区,可从所有平台访问。看起来唯一的选择是 FAT32 或 NTFS(Linux、Windows 甚至 Mac 都可以读取/写入)。

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

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

编辑:让我澄清一下。我喜欢 SVN。我正在寻找的是在我的本地机器上有一个工作副本,供其中的所有操作系统共享。特别是当我远程工作时,我希望签出或更新一次并使用来自所有操作系统的相同工作副本。

答案1

你不能有相同的分区直接地在多个系统中安装(至少由于每个操作系统的缓存不一致,存在数据丢失的风险)。您必须在一个操作系统中卸载磁盘,然后在另一个操作系统中安装它,这几乎不比 svn commit/update 好。

对于真正的共享访问,您必须通过网络使用共享,然后文件系统就不再那么重要了(磁盘永远不会被主机操作系统直接接触)。

对于 Linux 和 OS X 之间的共享,您可以使用 NFS,它保留了大多数底层文件系统的语义,并且与 Samba 相比,它快速且轻松。

OS X <> Linux 共享中唯一真正的不兼容性是 OS X 中的非 ASCII 文件名必须在分解时使用 UTF-8(例如 ö 必须写为两个代码点:o 和 ¨)。Linux 并不关心,因此解决方案是在 OS X 上始终创建和签入此类文件。

如果您想要 Windows 兼容性,则必须禁止使用符号链接。理论上,它们在 NTFS 中是可行的,但它们无法在任何网络共享中存活。

答案2

您可以获得允许视窗苹果读取 EXT2 或 EXT3 分区,因此这可能是一种替代方法。

此外,如果有多个开发人员在同一个代码库上工作,您确实应该强制执行版本控制。如果您对 Subversion 感到困扰,您可能需要查看git相反。它是分布式的(这意味着不再有一个中央服务器托管代码库的唯一真实副本),并且对分支和合并有更好的支持。它适用于所有主要的开发平台。

答案3

如果您使用源代码控制,则使用的文件系统无关紧要。如果开发人员仅从版本控制系统获取处理项目所需的文件,则他们的客户端将使用其机器上使用的文件系统自动创建必要的文件和目录。如果您的文件不在源代码控制范围内,请查看桑巴 这将允许您使用 Linux 文件服务器设置可从 Linux、Mac 或 Windows 访问的网络共享。如果您的主服务器是 Windows,您仍然可以在其上设置共享并使用 Linux 和 Mac 客户端进行连接。有关在 Mac 上连接到 Samba 共享的信息,请参阅关联。

相关内容