【问题标题】:Git push "write error: Operation not supported"Git推送“写入错误:不支持操作”
【发布时间】:2017-09-15 14:48:01
【问题描述】:

我在 samba 共享服务器上有一个裸 git repo,我的团队可以推送到该服务器,但是当我尝试推送时出现错误:

remote: fatal: sha1 file './objects/pack/tmp_pack_<changes-with-every-push>' write error: Operation not supported
error: unpack failed: index-pack abnormal exit
To /run/user/1000/gvfs/smb-share:server=<ip-address>,share=<share>/<directory>/<bare.git>
! [remote rejected] <my-branch> -> <my-remote-branch> (unpacker error)

这是我尝试过的列表:

  • 我将裸存储库从服务器复制到我的机器上,并且能够推送到该存储库(bare.git 存储库就可以了)
  • 我在服务器上制作了一个裸仓库的副本(并作为第二个远程添加),但是当我推送到它时出现相同的错误消息(所以与 samba 共享有关?)
  • 我将另一个裸仓库副本放到 USB 上,成功推送到它,我的团队成员能够将我的分支拉到他的本地仓库并从那里通过 samba 成功推送到服务器(所以也许它不是桑巴舞)
  • 然后我从 stable 创建了一个新分支,并且能够从那里推送一个文本文件(因此 git 将接受一个文本文件提交,但不是全部来自我的工作分支,但它不能是我的提交作为我的同事能够从他的机器上推送我的分支)
  • 我已经使用 prune 和积极标志运行 gc 并且 git fsck 返回没有问题
  • 我已经重新安装了 smbclient 和 git 都没有成功。

“操作不支持”错误让我认为服务器端存在一些系统调用问题导致 git 返回错误。

我之前没有找到遇到过这个问题的人。有什么想法吗?

【问题讨论】:

  • 你对包含远程的目录子树有写权限吗?
  • 我之前已经能够推送,如上所述,我能够在新分支上推送单个文本文件,所以是的,我希望这意味着我有写权限。此外,当我导航到该目录时,我拥有完整的读取、写入和执行权限。

标签: git samba git-bare


【解决方案1】:

所以我终于解决了这个问题。

我已经通过 Nautilus 使用“连接到服务器”安装了服务器,将其安装为:

/run/user/1000/gvfs/smb-share:server=<ip-address>,share=<share>/<directory>/<bare.git>

我决定使用this question.中提供的信息卸载服务器并将其安装到/mnt/mountpoint

它现在可以工作了,我可以将我的分支推送到远程,但只有当我是 sudo 用户时。我还没有解决这个问题,但是当我有时间的时候,那是另一天的问题。希望遇到此问题的其他人会发现我的回答很有用。

【讨论】:

    猜你喜欢
    • 2020-03-27
    • 2014-03-10
    • 1970-01-01
    • 1970-01-01
    • 2018-04-13
    • 1970-01-01
    • 2022-11-09
    • 2020-02-17
    • 2021-10-01
    相关资源
    最近更新 更多