我有以下结构,通过grok镜像填充:
/var/opt/git/git-data/repositories
/organization1
/teamA
/repo1
/repo2
/teamB
/repo3
/repo4
/organizationN
/teamN
/repoN
git instaweb适用于个人仓库但是如果我想自动git instaweb显示“repositories”下的所有repos dir它不起作用:
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).
这是真的,因为父目录中没有repo,但如果我从git instaweb
执行/var/opt/git/git-data/repositories/organization/teamA/
,我会得到相同的错误,并且在该目录中是裸存储库所在的位置(repoN。每个仓库的git目录)
我设置GIT_DISCOVERY_ACROSS_FILESYSTEM
env var没有结果。
我还设置了/etc/gitweb.conf
以下条目:our $projectroot = "/var/opt/git/git-data/repositories";
正如我在项目文档中所读到的,git instaweb可以为多个repos服务,不仅仅是一个,它在某个目录下查找repos。
我做错了什么?
答案 0 :(得分:4)
我这样做是通过创建一个空的存储库并链接到我想要浏览的存储库。这种解决方法是必要的,因为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项目(您刚刚初始化的空存储库)以及您链接到的两个实际项目。