我有以下通过 grok 镜像填充的结构:
/var/opt/git/git-data/repositories
/organization1
/teamA
/repo1
/repo2
/teamB
/repo3
/repo4
/organizationN
/teamN
/repoN
git instaweb 对于单个存储库工作正常,但如果我想自动 git instaweb 显示“存储库”目录下的所有存储库,它就不起作用:
fatal: Not a git repository (or any parent up to mount point /var/opt/git/git-data)
Stopping at filesystem boundary (GIT_DISCOVERY_ACROSS_FILESYSTEM not set).
这是正确的,因为父目录中没有存储库,但是如果我执行git instaweb
from /var/opt/git/git-data/repositories/organization/teamA/
我得到同样的错误,该目录内是裸存储库所在的位置(每个存储库都有一个 repoN.git 目录)
我已经设定GIT_DISCOVERY_ACROSS_FILESYSTEM
环境变量没有结果。
我也设置了/etc/gitweb.conf
以下条目:our $projectroot = "/var/opt/git/git-data/repositories";
正如我在该项目的文档中所读到的那样,git instaweb 可以为多个存储库提供服务,而不仅仅是一个,并且它会在某个目录下查找存储库。
我究竟做错了什么?
我通过创建一个空存储库并链接到我想要浏览的存储库来实现此目的。由于 instaweb 运行 gitweb 和设置项目根目录的方式很复杂,因此这种解决方法是必要的。
git init instaweb
cd instaweb
ln -s /var/opt/git/git-data/repositories/org1/teama/repo1 repo1-a-1
ln -s /var/opt/git/git-data/repositories/org2/teamb/repo2 repo2-b-2
git instaweb --httpd webrick
服务器现在已启动并正在运行,主页将列出一个 .git 项目(这是您刚刚初始化的空存储库)以及您链接到的两个实际项目。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)