ということで、Gitをサーバに入れて遊んでみます。
設定とかはそのうち。。。
https://git.momo-i.org/ と git://git.momo-i.org/ がこっそりと使えますよ。
両方とも設定でpushはできませんがね!
そして殴り書き(後でまとめる)
必要なものを入れる
yum install git git-daemon git-svn gitk git-osis git-web perl-Git
リポジトリ用のディレクトリとgitユーザ作成
useradd -d /usr/local/git git
自分のアカウントでsshの鍵作成と読込
ssh-keygen -t dsa -b 1024 -C ' hoge@example.com'
gitになって
su - git
gitosis-init < ~user/.ssh/id_dsa.pub
(公開鍵読めなかったらrootなりでgitのディレクトリに公開鍵コピーすればおk)
適当なディレクトリに移動してsshでアクセスさせる設定をふがふが
git clone git@git.example.com:gitosis-admin.git
ファイルとディレクトリが出来上がるので以後はこれでアクセス管理とかの設定をする
gitosis.confとkeydir
gitosis.confの中身は[group (グループ名)]で
[gitosis]
[group gitosis-admin]
members = user@example.com
writable = gitosis-admin
[group group1]
members = user@example.com
writable = proj1 proj2 proj3
ユーザを追加する場合はkeydirにユーザ名.pubの公開鍵を置いてpushする
git commit -a -m 'test'
git push
push前にこれが必要かも
git config --global user.email " user@example.com"
git config --global user.name "User"
プロジェクト作る
cd /path/to/proj
git init
touch hogehoge
git add .
git commit -m 'hogehoge'
git remote add origin git@git.example.com:hogehoge.git
git push origin master:refs/heads/master
ついでに後でRedmineと連携させるのにこれもやっとく
git remote add local git@git.example.com:hogehoge.git
git push local master
これを置いておくと良い
touch /usr/local/git/repositories/hogehoge.git/git-daemon-export-ok
hooksのpost-updateも有効にしておく
cd /usr/local/git/repositories/hogehoge.git/hooks
cp post-update.sample post-update
gitwebを設定
/etc/xinetd.d/git
disable = no
user = git
server_args = --base-path=/usr/local/git/repositories --syslog --inetd
tcp_wrapperも設定しておく
vi /etc/hosts.allow
git-daemon: all
gitweb.confを編集
our $projectroot = "/usr/local/git/repositories";
our $home_link_str = "ももーい鯖のGit";
our $site_name = "ももーい鯖のGit";
our $site_header = "header.html";
our $home_text = "main.html";
our $site_footer = "footer.html";
our @stylesheets = ("static/gitweb.css", "static/highlight.css");
our $logo_url = "http://www.momo-i.org/";
our $logo_label = "momo-i";
our $projects_list = "/usr/local/git/list.txt";
our @git_base_url_list = qw(git://git.momo-i.org http://git.momo-i.org/git);
$feature{'pathinfo'}{'default'} = [1];
$feature{'avatar'}{'default'} = ['gravatar'];
$feature{'highlight'}{'default'} = [1];
/usr/local/git/list.txtに公開したいレポジトリ名(スペース)作者を入れる
hogehoge.git user/usr/local/git/repositories/hogehoge.git/descriptionにgitwebで表示させたい説明を入れておく(日本語可)
gitweb用のApache設定(抜粋)
Serveradmin info@example.com
ServerName git.example.com
DocumentRoot /var/www/git
DirectoryIndex gitweb.cgi
pathinfoように.htaccessを設定
/var/www/git/.htaccess
RewriteEngine On
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^.* /gitweb.cgi/$0 [L,PT]
httpで取ってこれるようにディレクトリ作成+α
mkdir /var/www/git/git
vi /var/www/git/git/.htaccess
RewriteEngine Off
ln -s /usr/local/git/repositories/hogehoge.git /var/www/git/git/hogehoge.git
gitwebのハイライト用に適当なファイルを作ってcssだけもらう
echo ''" > hoge.php
highlight -s スタイル名 hoge.php > /dev/null
利用可能なスタイル名は以下のコマンドで
highlight -w
何か忘れてる気もしないでもないですが、これで多分おk
コメントを追加