git.jsを使ってみる

node.jsを使える環境を整える

7/28時点の最新版をダウンロードして利用する。
0.5.2(Unstable)
インストール先は/usr/local/node/0.5.2にする。

# wget http://nodejs.org/dist/v0.5.2/node-v0.5.2.tar.gz
# tar xvzf node-v0.5.2.tar.gz
# cd node-v0.5.2
# mkdir /usr/local/node
# ./configure --prefix=/usr/local/node/0.5.2
Checking for program g++ or c++          : /usr/bin/g++ 
Checking for program cpp                 : /usr/bin/cpp 
Checking for program ar                  : /usr/bin/ar 
Checking for program ranlib              : /usr/bin/ranlib 
Checking for g++                         : ok  
Checking for program gcc or cc           : /usr/bin/gcc 
Checking for gcc                         : ok  
Checking for library dl                  : yes 
Checking for openssl                     : yes 
Checking for library util                : yes 
Checking for library rt                  : yes 
Checking for CLOCK_MONOTONIC             : yes 
Checking for fdatasync(2) with c++       : yes 
'configure' finished successfully (1.590s)
# make
・・・略
# make install
# export PATH=$PATH:/usr/local/node/0.5.2/bin
# node --version
v0.5.2
rakeを使えるようにする

どうやらrakeコマンドを実行してgit.jsを稼働させる必要があるようなので、
rubyを入れてrubygems入れて、rakeをインストールしておきます。

# yum install ruby
# wget  http://rubyforge.org/frs/download.php/75172/rubygems-1.8.6.zip
# unzip rubygems-1.8.6.zip
# cd rubygems-1.8.6
# ruby setup.rb
# gem install rake

また、thinも稼働させる必要があるようなのでthinインストール

# gem install thin
Fetching: rack-1.3.2.gem (100%)
Fetching: eventmachine-0.12.10.gem (100%)
Building native extensions.  This could take a while...
ERROR:  Error installing thin:
        ERROR: Failed to build gem native extension.

        /usr/bin/ruby extconf.rb
mkmf.rb can't find header files for ruby at /usr/lib/ruby/ruby.h


Gem files will remain installed in /usr/lib64/ruby/gems/1.8/gems/eventmachine-0.12.10 for inspection.
Results logged to /usr/lib64/ruby/gems/1.8/gems/eventmachine-0.12.10/ext/gem_make.out

ruby-develが不足しているのでインストール

# yum install ruby-devel
# gem insatll thin
無事成功
git.jsを動かす

ソースコードgithubから取得。
https://github.com/danlucraft/git.js

とりあえずdemoっていうのを動かしてみます。

# cd git.js
# rake demo
# rake demo
packaged lib/git.min.js

 * visit http://localhost:9292/repo-viewer/index.html
 * serving git repos from /root/git.js/git.js/demos/serve. 
 * Add more (bare) repos here to view them in repo-viewer. (SMALL repos work best) 

>> Thin web server (v1.2.11 codename Bat-Shit Crazy)
>> Maximum connections set to 1024
>> Listening on localhost:9292, CTRL+C to stop

デフォルトだとlocalhostの9292ポートで稼働するので、
変更したい場合はRakefileの下記箇所を変更

 #exec("thin -R demos/config.ru -p 9292 start")
  exec("thin -a ホスト名 -R demos/config.ru -p ポート番号 start")
end

これで指定したホスト名、ポート番号で稼働します。

ブラウザからこのURLにアクセス(http://ホスト名:ポート番号/repo-viewer/index.html)
ホスト名やポート番号を変更していると、何も表示されていないので、「HTTP clone url」の欄に正しくホスト名とポート番号を指定します。
最初に起動した段階でgit.jsのリポジトリが配置されるようなのでその情報を確認することができます。
リポジトリの配置先は、git.js/demos/serve以下です。
ここの中にブラウザから見たいリポジトリを配置すればgit.js画面で確認することができます。
例えば、/var/git/test.gitをgit.jsで見たい場合、
シンボリックリンクをgit.js/demos/serve以下に作ってあげるといいかと思います。

# ln -s /var/git/test.git git.js/demos/serve/test.git

こうすることで「HTTP clone url」に「http://ホスト名:ポート番号/test.git」と指定し、Branchを選択するとdiffの状況やコミット履歴を見ることができます。


こんな感じです。