在git push之后,项目在gitweb上消失了

6
我使用gitolite来托管我的源代码,并使用gitweb设置网站以显示所有项目。一开始,所有项目都能够通过gitweb正确显示,但是,当我修改一个项目并进行git push之后,它立即从项目列表中消失了。
每个项目,只要我在它上面执行git push,它就会从gitweb的项目列表中消失。然后,如果我对该项目进行“git clone --bare”并替换原始项目,它就会重新出现在项目中。
有没有人遇到过相同的问题?
补充说明:我执行了“git clone --bare”和“git push”,然后将其与原始版本进行比较,结果如下:
Only in test.git/objects: 86 Only in test.git/objects: af Only in test.git/objects: f4 Only in test.git/refs/heads: master 创建了一个包含主分支提交ID的新文件。
1个回答

4

这要看情况:

“消失”意味着你在Apache级别输入的身份验证信息不是已授权阅读器之一。


感谢你的提示,我在~/.gitolite.rc文件中更改了以下选项:$REPO_UMASK = 0022; # 可以让其他用户和组读取仓库这样就可以解决问题啦 :) - Vincent
@Vincent:根据https://github.com/sitaramc/gitolite/blob/pu/doc/gitolite.rc.mkd#_most_often_used_changed_variables,这可能是因为httpd进程(Apache Web服务器)的用户不是管理gitolite的用户。最好两者使用相同的用户。 - VonC
@VonC - 我不同意 Web 服务器应该作为存储库的所有者运行。如果在 gitweb.cgi 中发现漏洞,我希望我的基础设施能够保护我免受存储库损坏的影响。最好不要使用相同的用户,而是让 Web 服务器成为具有对存储库读取权限的组的一部分。 - Graham
@Graham 我同意你的观点。虽然距离那个回答已经过去两年了,但我仍然将环境作为一个用户运行(因为我没有权限在我需要操作的服务器上创建其他用户),但你是正确的。 - VonC

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接