1

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

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

该问题也可以在 Apache 的 gitweb 站点上以“404 - 未找到项目”的形式出现,因为项目将位于与/var/cache/git.

4

2 回答 2

2

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

感谢Git 邮件列表的帮助。

于 2012-12-04T11:29:05.207 回答
0

定义后$projectroot=/var/git(就像我的情况一样),如果我在第 3,915 行中插入 的值,则会$projectroot显示<title>字符串/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 发行版中,将不胜感激。

于 2012-11-28T16:13:14.803 回答