通过桑巴跳转 – 无法写入sha1文件名| 没有权限

当我usig git samba在Windows上共享我得到一个错误,当我想通过git_extentions或tortoiseGIT提交一个文件。 错误是:错误:无法写入sha1文件名.git / objects / b4 / e819f886bf31b67c42249a0eff8e8b16cf7622:权限被拒绝当我通过Ubuntu服务器添加文件,并提交文件,它工作正常。 我也在banrch工作。

我已经尝试chmod 777整个.git文件夹。

我也看到了。 这是一个git的缺陷,可能与它如何创建和修改文件有关。 澄清问题:

# mount a samba share locally. $ mount -t cifs options //share/project /mnt/project # The share contains a git checkout. # Do some typical development. $ cd /mnt/project $ vi file ## ok $ git pull ## ok $ git status ## ok $ git add file ## error! error: unable to create temporary sha1 filename .git/objects/8b/tmp_obj_mYE1Xi: Permission denied ## But everything from the shell seems to work. $ ls -latr .git/objects/8b/ ## ok. empty dir. $ touch .git/objects/8b/tmp_obj_mYE1Xi ## ok. $ echo test123> .git/objects/8b/tmp_obj_mYE1Xi ## ok. $ cat .git/objects/8b/tmp_obj_mYE1Xi ## ok. test123 $ rm .git/objects/8b/tmp_obj_mYE1Xi ## ok. 

在git版本1.5.6.5(最新的Debian软件包)中,当您尝试git-add时会出现错误。 如果你安装了git 1.7.3.2(最新版本),你可以添加这个文件,但是当你尝试提交的时候你会得到这个错误。

这个问题以前曾以某种形式出现在Git / Samba安装中。 不知道问题的根源是否已经被指出了:

http://code.google.com/p/msysgit/issues/detail?id=130#makechanges

更新:

看起来像git 1.7.3.3已经解决了这个问题。

好的,我找到了一个适合我的解决方案。

我一直在samba上使用git (samba-common-3.0.33-3.7.el5),对于没有问题的年龄。

我把git升级到了Git-1.7.6-preview20110708 ,这一切都到了锅!

就像我这样有条不紊的开发者,我没有写下我升级的东西!

所以我浏览了之前的发行版本,在Git-1.7.0.2-preview20100309旁边看到了一颗星星,所以有点旧了,但是把它放在….和砰…它的工作原理!

我们今天开始使用git。 对于win7机器来说,版本1.7.10是很好的。 在winXP上,我们发生了给定的错误。 对于那些机器,我们降级到1.7.0.2,正如伊恩在他的帖子中所说的那样,现在它工作。

可能桑巴块的dotfiles? 为什么不使用ssh而不是samba来推送?

在我的情况下,这是Windows上的防病毒软件锁定文件。 暂时禁用防病毒解决了这个问题。

我也在这里回答了这个问题

就我而言,它看起来像Git(v 2.6.3)试图在Samba驱动器上创建自己的读/写权限。 这将防止包文件和/或对象被写入(解包错误)

 remote: error: unable to write sha1 filename ./objects/pack/pack-<some_hex_string>.pack: Permission denied remote: fatal: cannot store pack file error: unpack failed: index-pack abnormal exit To z:\git\<repo name> ! [remote rejected] master -> master (unpacker error) error: failed to push some refs 

我试着去修复。 最后,由于我控制了Samba机器,我在samba驱动器配置中添加了一行,表示“inherit permissions = yes”。 我重新启动了桑巴,并试图推动。 有效!

这对我来说是有效的,因为我是使用Samba服务器的唯一的人。 对于其他人,你可以玩“强制目录模式”或“强制创建模式”。 你可以在这里找到那些手册页:

https://www.samba.org/samba/docs/man/Samba-HOWTO-Collection/AccessControls.html