GitWebが日本語でエラー出すので、Ginatra(ギナトラ)のインストール手順をまとめた

Git

GitWebが日本語でエラー出すので、Ginatraをインストールしてみました。

Ginatraのインストール手順をまとめました。

スポンサーリンク
スポンサーリンク

GitWebで日本語のhistoryをクリックするとThis page contains the following errors

GitのサーバーとGitWebのサーバーを立てて、WEBブラウザを使って日本語も問題なく表示できていると思って安心していたところ

日本語ファイルの「history」をクリックしたり、日本語フォルダで「tree」を押したタイミングで下記のエラーが発生してしまいます。

image

This page contains the following errors:
error on line 12 at column 56: Unescaped '<' not allowed in attributes values
Below is a rendering of the page up to the first error.

日本語そのものは文字化けしたりはしません。

GitWebそのものはCGIスクリプトのようなのですが、この問題をデバッグするのは大変そうだし、GitWebそのものは、それほど使いやすいものではないようです。

そこで、この度、Ginatraをインストールしてみました。

Ginatra (ギナトラ)とは

Sinatra(シナトラ)は、Rubyで作成されたオープンソースのWebアプリケーションフレームワークです。

Ginatra(ギナトラ)

(http://narkoz.github.io/ginatra/)は、

Sinatraをベースに作られたGitのWEBインターフェースです。

かなり大雑把な言い方をすれば、Ginatraを使うと、GitHubみたいなUIをもつWEBサイトをオンプレミスのGitサーバーに立てることが可能です。

MITライセンスなので、社内のGitサーバー以外に外部に公開するリポジトリでも自由に使えると思います。

Ginatraのインストール手順

Ginatraをインストールしてみます。

私の使っているサーバーは、CentOS 7 です。

Ruby系のアプリはあまり使ったことがないのですが、前提として次のソフトをインストールする必要があります。

まず、ruby-develをインストールします。

次に、bundlerをインストールします。

ここで初めて、Ginatraをインストールすることが出来ます。

/root/.ginatra/config.yml というファイルを作って以下の内容を記述します。

git_dirs: gitのリポジトリディレクトリです。

port: 待受けポートです。

host: ホスト名です。

localhostで試したら、外部からうまく接続できなかったのですが、IPアドレスを入力すると接続できました。

この後、以下のコマンドでginatraを起動します。

軽量のWEBサーバーを梱包しているのでしょうか。

ポート9797で待受けます。

以下のコマンドでginatraを終了します。

Ginatraを使ってみたら、ファイル単位で履歴が見れない

WEBブラウザを開いて、

http://192.168.141.131:9797

と入力してみました。

image

/var/lib/gitにおいてあるリポジトリを参照できています。

image

リポジトリを選択すると、デフォルトで「Commit」履歴を表示します。

image

次に、「Source」を押してみました。

フォルダ一覧が見えて、もちろん、日本語の階層のフォルダをクリックすると下の階層まで行くことが出来ます。

image

次に「Stats」を押してみました。

これはコミッターの統計情報でしょうか。

GitWebよりはよく出来ている。

と、ここでGinatraの致命的な問題に気づきました。

ファイル単位での履歴、historyを表示できないんです。

これ、使えねぇ。。。

まとめ

Ginatraのプロジェクト自身は歴史もあるし、コミッターもたくさんいて、使っている人も沢山いるんでしょうか?

GitHubライクなUIがあって、軽量なWebサーバーを同梱していて、リポジトリを自動的に認識してくれるっていう点はとても評価できました。

ただ、ファイル単位で履歴を表示できないのは致命的かなと思いました。

少なくとも私はこれで使うことを断念しました。

残念。

Gitについてのおすすめの本

↓Gitについてのおすすめの本はコチラ

Git