Skip to content

Git のリポジトリブラウザ Ginatra

Posted on:2009年7月19日 at 01:47

「Git のリポジトリブラウザって何かない?」ということで確認してみた。

ちなみに・・・ Git 本体にも gitweb というリポジトリをブラウズできる cgi スクリプトが付属している。リポジトリのルートディレクトリで、

$ git instaweb --httpd webrick
[2009-07-19 00:06:10] INFO  WEBrick 1.3.1
[2009-07-19 00:06:10] INFO  ruby 1.8.6 (2008-08-11) [i686-darwin9.6.0]

とやると起動してくれる。詳細はヘルプで。

$ git help instaweb

デフォルトでは、HTTP サーバは、lighttpd が使用される。上記は、webrick を指定して起動させている状態。apache2 もサポートされているようだ。

これはこれですぐに使えて、質素ではあるが、必要充分な機能が含まれていてよい。 また、Redmine でも SCM (Software Configuration Management) として Git を使える。

というリクエストもあり、別のものも探してみることにした。

Table of Contents

Open Table of Contents

Ginatra とは

Git のリポジトリブラウザになる。名前からもわかるように、Sinatra をベースに作成された Web アプリケーションになる。

上記サイトにも書かれているように、Ruby + Sinatra で書かれた gitweb のクローンであり、現時点、gitweb の全ての機能を実装してはいない。まだまだこれからのアプリではある。

ginatra

インストールと設定

git のバージョンは、1.6.3 以上が必要と記載されている。

$ git --version
git version 1.6.1.2

1.6.1 だが、まずはこれで試してみよう。

必要な gem のインストール。

$ sudo gem install grit kematzy-sinatra-cache coderay

もし、gem のソースとして、http://gems.github.com を含めていない場合は、含めておく。

$ gem sources
*** CURRENT SOURCES ***

http://gems.rubyforge.org/
$ gem sources -a http://gems.github.com
http://gems.github.com added to sources
$ gem sources
*** CURRENT SOURCES ***

http://gems.rubyforge.org/
http://gems.github.com

テストスイートとしては、rspec、cucumber、rack-test を使用しているようなので、これも入れておく。

$ sudo gem install rspec webrat rack-test cucumber

Ginatra 本体をインストールする。と言っても、GitHub から git clone するか、 git プロトコルが使用できない環境にいる場合には、lenary’s ginatra at master - GitHub からアーカイブを取得する。

$ git clone git://github.com/lenary/ginatra.git

インストールは以上。

ローカルでさくっと動かす分には、公開リポジトリだけ用意しておけばよい。

環境の前提。

個人用のリポジトリから公開リポジトリを作成する。

$ cd /home/hoge/apps/ginatra/repos
$ git clone --bare /home/hoge/repos/repos1 repos1.git

Ginatra のホームディレクトリ配下にあるreposディレクトリに移動して、個人用のリポジトリから公開リポジトリの作成を行っている。

この公開リポジトリの作成には、rake タスクも用意されている。

$ rake -T | grep add
rake add               # Adds a Git Repository to Ginatra.

Ginatra の repos 配下に配置するリポジトリのディレクトリ名称は、慣習にならって .git がディレクトリ名のお尻になっている必要がある。Ginatra はその名称のみしか認識しない。

起動して触ってみる

$ cd /home/hoge/apps/ginatra
$ ruby ginatra.rb
== Sinatra/0.9.2 has taken the stage on 4567 for development with backup from Thin

http://localhost:4567/ にアクセスする。

ginatra

2 つのリポジトリが見えている。先程追加を行った “repos1” リポジトリと、先に入れていた “mephisto” リポジトリの 2 つだ。

“repos1” リポジトリを覗いてみる。

ginatra-repos1

コミットオブジェクトの一覧が表示され、右側に HeadsTags というボックスも見え、ブランチの切り替え、タグの切り替えもすぐにできるようだ。

最新のコミットを覗いてみる。

ginatra-commit-object

コミットオブジェクトのサマリが表示されている。git show で確認できる内容だ。

右側にあるボックスの内容について。

“tree: 0efa4e68c517ffe2e6a7d895e64c9ee36f00e88f” をクリックすると、以下の画面になる。

ginatra-tree-object

リスト表示されているファイル名称は、Blob オブジェクトの名称になっており、クリックするとそのデータ、つまりはコミットされている実体ファイルの内容が参照できる。

感想

まだまだこれからのアプリではあるが、ソースもシンプルになっており、

にもちょうどよく、しばらく追っかけてみようかなと、思えるアプリだ。

でも紹介されていた。