
さくらインターネットでgit管理
出尽くしたネタ感はあるんですけど
気にしちゃダメです。
さくらインターネットの使い道を考えてました。
一つはWordPressが使えれば良いかなぁと考えてました。
他にはないのか?と考えていたのですが、やっと使い道が見つかりました。
さくらインターネット + gitlist です。
レッツ環境構築
環境構築大好きマンとしてはやりがいのある内容でした。
特にバグ見つけたのは良かったです。
あとでプルリク投げてみよう。
さてさて、gitlistの導入ですが、すごく簡単でした。
$ cd www
$ git clone https://github.com/klaussilveira/gitlist.git gitlist
です。
設定ファイルの編集
まずは事前準備です。
$ mkdir ~/{レポジトリのフォルダ}
$ cd ~/{レポジトリのフォルダ}
$ mkdir test
$ git init --bare
設定ファイルですが、こんな形で記述したらOKです。
$ vim config.ini
[git]
client = '/usr/local/bin/git' ; Your git executable path
default_branch = 'master' ; Default branch when HEAD is detached
repositories[] = '/home/{ユーザ名}/{レポジトリのフォルダ}/' ; Path to your repositories
[app]
debug = false
cache = true
theme = "default"
title = "XXXXX"
※ vimを使うには事前に bash
と打ち込んでおきましょう
gitのパスが /usr/local/bin/git
になってますが、 which git
で確認しましょう。
また repositories[]
はパスを自分にあった形で書き換える必要があります。
存在しないディレクトリが書かれてますので、合わせましょう。
title
はお好みで。
ちょっとした調整
デフォルト状態の.htaccessはindex.phpにアクセスするように作られています。
そこで以下のように修正し、index.phpを隠しましょう。
$vim www/gitlist/.htaccess
<IfModule mod_rewrite.c>
Options -MultiViews +SymLinksIfOwnerMatch
RewriteEngine On
#RewriteBase /path/to/gitlist/
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^(.*)$ index.php [L,NC]
</IfModule>
<Files config.ini>
order allow,deny
deny from all
</Files>
あと、gitレポジトリにアクセスすると、php7.1でgetHead()にエラーがあるので、修正します。
社内でphp7系が早いともっぱらの噂なので、最新版を使うようにしています。
$ vim www/gitlist/src/Git/Repository.php
/**
* Get the current branch, returning a default value when HEAD is detached.
*/
public function getHead($default = NULL)
{
$client = $this->getClient();
return parent::getHead($client->getDefaultBranch());
}
$default = NULLを書き加えました。
これだけでエラーが取れます。
(調べたら引数を合わせてないことが問題だった)
終わりに
色々探し回って良いgitレビュアーphpがないか探していたのですが、どれもこれも制限に引っかかるので使えなかったのですが、一番手っ取り早く使えるものが見つかって良かったです。
メンテされてないけど、まあ大丈夫っしょ(気楽思考)
GitlabやGitbucketみたいなレポジトリビューアを使うようになる頃にはもっと巨大なコミュニティになるはずなので、それまでは今のマイクロコミュニティで良いかなぁという印象です。
もちろん本家はgithubとし、こちらを開発用とすることも考えてます。
これでぼくのやりたかったことの一つが達成されたぜ!
おまけ
git cloneする方法はこんな感じです。
git clone {ユーザ名}.sakura.ne.jp:{レポジトリ}/{git init --bareフォルダ}