流浪者同步的文件夹不区分大小写


10

对于我们的Web堆栈,我们正在从Windows Server迁移到CentOS。为了促进开发,我们利用Vagrant在本地运行CentOS VM。我们正在使用Vagrant的“ 同步文件夹”功能,以允许开发人员在其主机上使用他们喜欢的IDE,但是我们发现此设置缺少一个关键功能:文件系统区分大小写。

VM内部的同步文件夹显然具有主机文件系统的属性,因此,如果我是从Windows计算机甚至OSX进行开发的,则文件系统不区分大小写。这是一个大问题,因为我们的生产服务器将是纯CentOS,并且其文件系统区分大小写。

区分大小写是我们想要拥有本地VM的主要原因之一。我们要防止“它在我的机器上有效!”

我们已经考虑或尝试过的一些解决方法:

  • 使用lsyncd从无业游民的共享同步到VM中区分大小写的位置
    • 主机上更新文件似乎不会在lsync侦听的VM中生成事件
  • 在主机上创建区分大小写的分区
    • (不适用于Windows)
  • 使用桑巴舞
    • 这可能是一个选择,但我们尚未对其进行审核。

有没有更好的办法?请注意,我们有使用Windows,OS X和Ubuntu的开发人员,并且该解决方案需要在任何地方都可以使用。


这是一个很好的问题,但是我觉得对于SF来说,它也是面向开发的-您可能对Stack Overflow感到更幸运,已经标记了要迁移:)
Craig Watson

1
老实说,我认为这不属于SO,因为这实际上是对发展无关紧要的。问题在于文件系统是否区分大小写,因为它与无用的来宾和主机有关。
phoebus

Answers:


6

我在OS X上通过在项目文件夹中创建稀疏磁盘映像并将其格式化为区分大小写来解决该问题。

装入稀疏映像后,我将代码移到了该映像上。然后将原始的“ src”文件夹替换为已安装映像的符号链接/别名。这样,共享文件夹在来宾操作系统中区分大小写。

绝对不是最优雅的解决方案,但它确实缩小了部署和开发环境之间的差距,这就是为什么我首先开始使用Vagrant的原因。

也许类似的解决方法也可以适用于Ubuntu和Windows?


Windows根本没有区分大小写的文件系统。
迈克尔·汉普顿

谢谢杰森。我考虑过这一点,它可以在我的mac和ubuntu上运行,但不适用于Windows。它还增加了一个用于创建开发环境的手动步骤,我曾希望完全使用vagrant / chef编写脚本。但是,可能没有其他选择。
Scott Coldwell

2
在使用MAMP多年之后,区分大小写是我转向Vagrant的主要原因之一,因此,我对它仍然是一个问题感到非常失望。我不敢相信在Vagrant的文档中没有更清楚地说明这一点。
Jason Suave 2013年

3
@JasonSuave问题实际上出在VirtualBox上,它用于挂载,而不是Vagrant。Vagrant仅控制VirtualBox挂载。您可能在VMWare上有不同的经历...我没有尝试过。
布拉德(Brad)2014年

0

我也遇到了同样的问题,而解决该问题的方法是通过git clone在VM上工作目录并添加指向它的Samba共享,从而使其可以在Windows或Mac上访问。

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.