与Git pull error: unable to create temporary sha1 filename相关
大家好。我们已经将我们的应用程序放在了一个git项目中,在另一台服务器上只有一个空的repo,已经有一段时间了。空的repo有一个post-receive钩子,这使得它可以推送到我们的临时服务器,而我们的登台服务器又有一个post-receive钩子来做与部署相关的所有事情。这一切都运行得很好,但现在空的repo无法推送到临时服务器。这与post-receive过程本身没有任何关系,因为如果我ssh到空的repo并从那里手动推送到临时服务器,我会得到相同的错误:
Counting objects: 11, done.
Delta compression using up to 8 threads.
Compressing objects: 100% (7/7), done.
Writing objects: 100% (7/7), 1.74 KiB, done.
Total 7 (delta 5), reused 0 (delta 0)
error: unable to create temporary sha1 filename ./objects/51: No such file or directory
fatal: failed to write object
error: unpack failed: unpacker exited with error code
To ssh://deploy@our-staging-server.com/var/www/apps/e_learning_staging/www
! [remote rejected] develop -> develop (n/a (unpacker error))
error: failed to push some refs to 'ssh://deploy@our-staging-server.com/var/www/apps/e_learning_staging/www'我可以转到临时服务器,从那里的空存储库中拉出,然后推送到它。所以“从A拉到B”有效,但是“从A推到B”不行。
我见过相当多的人有类似的问题,并调查了以下问题:
1)不同用户:没有问题,因为推送的是deploy用户,它是所有人在登台服务器上唯一使用的用户。
2)文件权限:我递归地拥有.git中的所有文件来部署:deploy(我们使用的用户和组),并将u+w、g+w递归地chmodded到.git中的所有文件上
3) git-fsck,git-gc。我已经在存储库和临时服务器上完成了这些工作。
4)新文件权限:在中间服务器上执行'umask‘会得到0022,这相当于u=rwx,g=rx,o=rx,所以应该没问题。为了防止我将其更改为0002,它现在允许组做任何事情,就像用户做任何事情一样,没有任何区别。
5)在临时服务器上的.git/ sharedRepository=true中设置配置。我这样做的想法是,也许这是必要的,以便从赤裸裸的回购推向它。没有任何区别(它以前从来没有设置过,不管怎么说,当它都工作时),所以我又把它拿出来了。
6) git- repack :我试着重新打包,但被告知没有要打包的东西。
7)在临时服务器上执行git reset --hard。没帮上忙。
8)没有用完磁盘空间。
我觉得我已经研究过了,试过了所有的方法,这让我很累。还有没有人能给我提个建议让我试试?
编辑-我尝试将存储库克隆到临时服务器上的一个新文件夹中,并将裸存储库的git配置更改为在"staging_server“远程服务器的定义中指向该新文件夹。然后,我从本地计算机推送到裸存储库,然后尝试从存储库推送到临时服务器,并且得到了相同的问题:
error: unable to create temporary sha1 filename ./objects/26: No such file or directory在临时服务器上的.git文件夹中没有objects/26文件夹,但是我不知道为什么它不能创建一个。
发布于 2011-11-08 00:46:45
发现了这是什么,结果觉得自己像个笨蛋。
最初,在暂存箱中,git代码库位于应用程序文件夹之外。为了实现这个功能,我们在git配置中添加了一个选项,即
worktree = /path/to/app/folder在某种程度上,我们决定像往常一样将git存储库移动到实际的工作文件夹中,即.git文件夹中。上面的选项仍然在配置中,即使它是正确的文件夹,它根本就在那里的事实是阻止解包程序工作的原因。一旦我将该选项从配置中删除,它就会立即生效。多伊尔。
https://stackoverflow.com/questions/8031325
复制相似问题