在Ubuntu 14.04上配置 gitweb

1。先安装 gitweb和 apache2

2. 修改配置文件(因为gitweb在/etc/apache2/conf.d/下安装了配置文件,这个目录是过时的):

sudo cp /etc/apache2/conf.d/gitweb /etc/apache2/conf-available/gitweb.conf
cd /etc/apache2/conf-enabled
sudo ln -s ../conf-available/gitweb.conf

修改gitweb.conf 如下:

Alias /gitweb /usr/share/gitweb


  Options +FollowSymLinks +ExecCGI
  AddHandler cgi-script .cgi
(在 FollowSymLinks之前加上了 "+"解决语法问题)

3. 使能cgi:

sudo a2enmod cgi
sudo service apache2 restart

4. 修改/etc/gitweb.conf,添加上项目信息:

$projectroot = "/home/charles/repo";
$projects_list = $projectroot;

5. 创建项目信息.

把项目信息和实际代码分开。

 mkdir repo
 cd repo/
 git clone  --bare ~/code/linux-3.10.28 linux-3.10.28

然后,打开 http://localhost/gitweb/linux-3.10.28, 就能看到项目信息了。

6。因为 gitweb 的数据来源和实际的代码不在同一个地方,所以,需要经常更新 ~/repo。

这可以用一个脚本来实现:

#!/bin/bash
cd ${HOME}/code/linux-3.10.28
git remote add web  /home/charles/repo/linux-3.10.28 >& /dev/null 
sudo git push -f web
如果有下面的警告,

warning: push.default is unset; its implicit value is changing in
Git 2.0 from 'matching' to 'simple'. To squelch this message
and maintain the current behavior after the default changes, use:

  git config --global push.default matching

To squelch this message and adopt the new behavior now, use:

  git config --global push.default simple

When push.default is set to 'matching', git will push local branches
to the remote branches that already exist with the same name.

执行 
  git config --global push.default matching

就行了。

可以自动化的来更新:

crontab -l
* * * * * ${HOME}/foo/git.web.push

参考资料:

1. Install git/gitolite/gitweb on Ubuntu 14.04

2. Setting up Gitweb on your Ubuntu workstation

你可能感兴趣的:(Linux)