Git instaweb有多个存储库无法正常工作

时间:2016-07-11 11:18:56

标签: git instaweb

我有以下结构,通过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。

我做错了什么?

1 个答案:

答案 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项目(您刚刚初始化的空存储库)以及您链接到的两个实际项目。