推送到NFS共享上的Git存储库失败

时间:2011-01-13 00:29:34

标签: git ssh nfs

我们目前在本地磁盘上有我们的Git存储库。它们由组共享并通过SSH访问(使用git-shell)。

由于存在空间问题,我们现在希望将存储库移动到NAS上的NFS共享。我一直在试验这个,并遇到了一个奇怪的问题。具有完全相同权限的新鲜(和裸)存储库可以克隆得很好,但推送更改(触摸foo&& git add foo&& git commit&&& git push origin master)失败,并显示错误“无法设置refs / heads / master“和”写入失败“。

现在,如果我在本地磁盘上重复这种情况,则refs / heads / master将由所推送的任何用户拥有。相反,在NFS共享上,如果我将其所有者更改为尝试推送的用户,则不会引发任何错误。但是,在这两种情况下,用户都是拥有整个存储库并具有组写权限的组的成员。此外,如果我只是使用SSH作为该组成员的用户登录,我可以在NFS共享和本地磁盘上触摸refs / heads / master(如预期的那样)。

因此,我在这里不知所措。我不知道为什么不同的文件所有者会导致推送失败,看看组权限如何允许用户覆盖refs / heads / master。而且,即使在该文件上使用chmod 777,除非我将文件chown,否则推送失败。

如果有人能说清楚这种奇怪之处,我将非常感激。提前谢谢!

1 个答案:

答案 0 :(得分:2)

啊,笨蛋。 NAS对权限做了奇怪的事情,在所有目录上设置了粘滞位。这解释了这种行为。另外一个chmod解决了这个问题。