Git没有在nfs共享上工作

时间:2016-06-05 15:15:27

标签: linux git ubuntu nfs

首先,设置。我正在Windows Server 2012上运行haneWin nfs服务器,在启动时将其挂载到具有此fstab条目的{umbntu服务器~ip~:/sharenfs /srv/share nfs rw 0 0中 umask在windows服务器上设置为000,这确实导致ubuntu上的每个用户都拥有对整个共享的rw访问权。

现在问题出在这里:我想使用nfs共享来存储我们所有的git repos,以便windows服务器可以将它们与所有数据一起备份。在早期的设置中,ubuntu主机提供了一个完美的nfs共享,但出于存储原因,Windows服务器应该托管共享。

git repos应该由redmine自动创建,在nfs更改之前工作正常,但现在它只是无声地失败。日志不提供任何有用的信息。

但是这里确实提供了一些信息,如果我在nfs共享上创建一个新目录,运行git init,会出现以下内容:

error: could not lock config file /srv/share/git/metatest/test1/.git/config: File exists
... (this line shows a total of 6 times)
error: could not lock config file /srv/share/git/metatest/test1/.git/config: File exists
Reinitialized existing shared Git repository in /srv/share/git/metatest/test1/.git/

dir完全是空的!实际上,运行rm -rf .git; git init具有相同的输出。

ls -lAhR显示此

./.git:
total 22K
drwxrwxrwx 2 git git 4.0K Jun  5 17:07 branches/
-rw-rw-rw- 1 git git   53 Jun  5 17:07 config
-rw-rw-rw- 1 git git   21 Jun  5 17:07 config.lock
-rw-rw-rw- 1 git git   73 Jun  5 17:07 description
-rw-rw-rw- 1 git git   23 Jun  5 17:07 HEAD
drwxrwxrwx 2 git git 4.0K Jun  5 17:07 hooks/
drwxrwxrwx 2 git git 4.0K Jun  5 17:07 info/
drwxrwxrwx 4 git git 4.0K Jun  5 17:07 objects/
drwxrwxrwx 4 git git 4.0K Jun  5 17:07 refs/

./.git/branches:
total 0

./.git/hooks:
total 17K
-rwxrwxrwx 1 git git  452 Jun  5 17:07 applypatch-msg.sample*
-rwxrwxrwx 1 git git  896 Jun  5 17:07 commit-msg.sample*
-rwxrwxrwx 1 git git  189 Jun  5 17:07 post-update.sample*
-rwxrwxrwx 1 git git  398 Jun  5 17:07 pre-applypatch.sample*
-rwxrwxrwx 1 git git 1.7K Jun  5 17:07 pre-commit.sample*
-rwxrwxrwx 1 git git 1.3K Jun  5 17:07 prepare-commit-msg.sample*
-rwxrwxrwx 1 git git 1.4K Jun  5 17:07 pre-push.sample*
-rwxrwxrwx 1 git git 4.8K Jun  5 17:07 pre-rebase.sample*
-rwxrwxrwx 1 git git 3.6K Jun  5 17:07 update.sample*

./.git/info:
total 512
-rw-rw-rw- 1 git git 240 Jun  5 17:07 exclude

./.git/objects:
total 8.0K
drwxrwxrwx 2 git git 4.0K Jun  5 17:07 info/
drwxrwxrwx 2 git git 4.0K Jun  5 17:07 pack/

./.git/objects/info:
total 0

./.git/objects/pack:
total 0

./.git/refs:
total 8.0K
drwxrwxrwx 2 git git 4.0K Jun  5 17:07 heads/
drwxrwxrwx 2 git git 4.0K Jun  5 17:07 tags/

./.git/refs/heads:
total 0

./.git/refs/tags:
total 0

有趣的是,当redmine尝试创建存储库时,甚至没有创建目录。再次,它无声地失败,没有有用的输出。

当我尝试运行git add或从远程PC推送来自现有repos的任何更改时,redmine运行时创建的地方,我得到了

fatal: error when closing sha1 file: Permission denied

这对我来说完全没有意义。有什么想法吗?

1 个答案:

答案 0 :(得分:0)

关于问题原因的问题可能并不完全正确。事实证明,通过将gitolite安装移植到 SMB 安装架上,然后将其移至 NFS 安装后,问题仍然存在。
我无法确定是否发生了这种情况,但现在它正在处理NFS共享,这是我最可能的解释。

另一种解释是hanewin nfs是问题,因为现在正在运行它正在运行的Windows Server 2012 NFS服务器。