小编Pau*_*gar的帖子

确保 linux 中可重复的目录排序

我经营着一家托管的持续集成公司,我们在 Linux 上运行客户的代码。每次运行代码时,我们都会在单独的虚拟机中运行它。经常出现的一个问题是,客户的测试有时会因为在 VM 上检出的代码的目录顺序而失败。

让我更详细地介绍一下。在 OSX 上,HFS+ 文件系统确保目录总是以相同的顺序遍历。使用 OSX 的程序员假设,如果它在他们的机器上运行,它必须在任何地方运行。但它通常不适用于 Linux,因为 linux 文件系统在遍历目录时不提供排序保证。

例如,假设有 2 个文件,a.rb,b.rb。a.rb 定义MyObject,b.rb 使用MyObject. 如果首先加载 a.rb,一切都会正常。如果首先加载 b.rb ,它将尝试访问未定义的变量MyObject,并失败。

但比这更糟糕的是,它并不总是失败。因为Linux上的文件系统排序是没有顺序的,所以在不同的机器上会是不同的顺序。这更糟糕,因为有时测试通过,有时失败。这是最糟糕的结果。

所以我的问题是,有没有办法使文件系统排序可重复。可能是 ext4 的一些标志,表示它将始终以某种顺序遍历目录?或者可能是具有此保证的不同文件系统?

linux filesystems ext4 directory

18
推荐指数
2
解决办法
2817
查看次数

标签 统计

directory ×1

ext4 ×1

filesystems ×1

linux ×1