【问题标题】:Ubuntu: gitweb always looks for projects in /var/cache/git ("404 - no projects found")Ubuntu:gitweb 总是在 /var/cache/git 中寻找项目(“404 - 未找到项目”)
【发布时间】:2012-12-04 19:29:05
【问题描述】:

在 Ubuntu 12.04(64 位)服务器上安装 gitweb 并将/usr/share/gitweb/gitweb.cgi 中的变量$projectroot 更改为/var/cache/git 以外的任何目录后,仍会在/var/cache/git 中搜索项目.

Ubuntu 的 gitweb 包 (1.7.9.5) 以及克隆 Git 的存储库和编译最新的稳定分支 (1.8.0.1) 都会发生这种情况。

这个问题也可以在 Apache 的 gitweb 站点上表现为“404 - 未找到项目”,因为项目将位于与 /var/cache/git 不同的目录中。

【问题讨论】:

    标签: git ubuntu-12.04 gitweb


    【解决方案1】:

    在 Ubuntu 中,不应编辑文件 /usr/share/gitweb/gitweb.cgi$projectroot 变量应设置在 /etc/gitweb.conf 中。

    感谢Git’s mailing list 的帮助。

    【讨论】:

      【解决方案2】:

      在定义$projectroot=/var/git(我的情况)之后,如果我在第 3,915 行的<title> 中插入$projectroot 的值,则会显示字符串/var/cache/git,所以问题是沿着cgi文件$projectroot的值被重置为系统默认值。

      此行为的罪魁祸首在于 git_get_projects_list 子例程,其中在第 2,865 行,再次定义了全局变量 our $projectroot,将其值重置为系统默认值。解决它的方法是在同一行上声明它并将其设置为与上面相同的值:

      ...
      2,863. # global variables                                       
      2,864. our $project_maxdepth = 2007;
      2,865. our $projectroot = "/var/git";
      2,866. # skip project-list toplevel, if we get it.              
      2,867. return if (m!^[/.]$!);
      ...
      

      我没有在 Ubuntu 或 Git 的邮件列表中看到此问题的报告,因此任何关于这是一个错误或功能的见解(但在我看来它显然是一个错误),或者如果这发生在其他 Linux分发,将不胜感激。

      【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2016-01-31
      • 1970-01-01
      • 2015-09-03
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多