どんな人向けか?
gitサーバはあるが、GitHub、bitbucketのような、管理のためのwebアプリがチーム内にはないが、それに相当するものを自分のローカルで持ちたい人向けです。
具体的には、以前にはGitHubを使っていたプロジェクトにいたが、今はそういった類を使っていないプロジェクトで、それを使うように方針転換できる立場にない人とかです。
つまるところ、チームへの導入が難しくても、自分だけでもリポジトリから効率よく情報を得たいときの代替手段です。
GitBlitとは?
gitサーバや、リポジトリの管理・ブラウジングを提供できるオープンソースのjavaアプリです。
Gitblit GOでは、jettyつきなので、apacheなどのwebサーバを用意しなくとも単体で動かせるようになっています。
windowsのサービス化するための手順もあるので、javaがあれば比較的導入しやすいものです。
インストール手順
細かい手順は公式サイトを参照。
http://gitblit.com/setup_go.html
- 公式サイトよりzipをダウンロード
- C:直下で展開
- data/gitblit.properties でポート番号、SSL証明書のパスフレーズを指定
- authority.cmd でSSL証明書を作成
- installService.cmdの --StartParams
の
--storePassword;` の値を3のものに書き換える - installService.cmdを実行
windowsのサービス化までできます。これでマシンの起動時に、自動でたちあがってくれるようになります。
ポート番号を8888としていたら、localhost:8888にアクセスすれば表示されます。
公式サイトのスクリーンショット もどうぞ。
リポジトリのミラーリング
Gitblitをgitサーバとして使うわけではないので、チームで使っているgitサーバをミラーリングすることで、Gitblitから見られるようにします。定期的にfetchする形でのミラーリングなので、即時反映にならないのはあきらめましょう。(自分の都合で勝手にやっているのだからしょうがない...)
詳細の手順は公式サイトを参照してください。
http://gitblit.com/setup_mirrors.html
概略としては
- data/git/以下に、
git clone --mirror <repository_url>
でミラーとしてクローン - data/gitblit.properties で、
git.enableMirroring = true
としてミラーリングを有効化 -
git.mirrorPeriod = 30 mins
で、同期する間隔を指定
使ってみての感想
GitHubや他のものに比べると、UIはすこし古いかなという印象はありますが、リポジトリブラウジングとしての機能はほぼ同等という印象です。
たとえば、git blameをして、特定の行のコミットのdiffを見るといったことも、ある程度シームレスにできます。
リポジトリのサマリ画面ではdevelopをデフォルトにして、ちょくちょく見て、どういったのがdevelopブランチにコミットされるのかをゆるく監視したりできます。
コミットdiffもみやすいので、それをみながらレビューするとやりやすいです。