2011-12-19 116 views
2

我们在工作中遇到了一个奇怪的问题,我一直无法弄清楚。我们都在我们的台式机上使用带有Snow Leopard的MacBook,并且我们也有一些远程使用的Linux服务器。我的一些团队成员将git存储库放在Mac和Linux服务器之间共享的NFS文件系统上,这样他们就不必考虑在其个人工作流程中共享代码库之间的代码。git显示在Mac上更改的随机文件NFS文件系统

这是奇怪的开始,在OSX机器git会随机在状态展示一些文件过时的当您尝试如果您运行git status没有文件显示过时的合并或转换分支等。 gitk将以相同的方式显示文件被修改但未提交的状态。如果你reset --hard这些文件,你可以有时改变分支之前,这再次出现,但大多不是。如果您登录到其中一台Linux机器并查看相同的存储库,那么所有工作都可以完美地工作这些文件没有标记为已更改,您可以随心所欲地做任何事情。

我已经消除了线结束差异和文件模式差异作为罪魁祸首,但我不知道还有什么其他尝试。是否有一些OSX特定的NFS交互,我们必须以某种方式解决?

+0

您的NFS服务器是否正确保存可执行位? – Romain 2011-12-19 15:06:33

+0

除了@Romains问题:当文件显示'过时'时:'git diff'返回什么? – eckes 2011-12-19 15:10:06

+0

我已经更新了我的文章,我误以为这些文件实际上并没有显示出来。 'git diff'什么都不显示(立即返回而没有输出)。 Mac和Linux上的'ls -l'看起来都一样,有什么我应该看的?在启用了空白模式的emacs中,文件在Linux和Mac上显示为相同,并且具有相同的文件编码。 – asm 2011-12-19 16:59:29

回答

3

也许服务器和工作站之间的不同步时间使文件的修改时间不可靠。 core.trustctime的设置有帮助吗? (默认情况下是这样)。 还有更重的设置:core.ignoreStat忽略更改检测代码中的完整stat(2)信息。

相关问题