公私共にGitを使うようになって、gitが使いやすいプロジェクト管理システムが使いたくなりました。githubももちろん考えたのですが、一人でコード管理しているのに契約するのはちょっとなあと思いまして。
それと今まではTracを使ってきてましたが、markdownが標準で使えないため(特殊タグなら使える)遠ざかりつつありまして、githubクローンも出てきてるし使ってみようと試しています。
githubのクローンと言ったら最初にgitlabが思い浮かんだのですが(あと大学の先輩におすすめされました)、gitbucketというscale製のクローンもあるそうです
それで今回はgitlabをインストールして試してみた編です。
公式サイト、情報源
- Create, review and deploy code together Better than GitHub GitLab
- GitHubインポート機能が加わった「GitLab 7.7」が登場 SourceForge.JP Magazine
- gitlabに関する172件の投稿 - Qiita
インストール
確認環境
Mac上のVagrant+ParallelsにUbuntuを入れて、その中で作業しました。
- OS X Yosemite 10.10.?
- Vagrant
- Parallels Desktop 10
- Ubuntu 14.04 (vagrant box add parallels/ubunt-14.04)
Vagrant側のネットワークの設定は、NATにしてあるので、ポートフォワードしています。 後述しますが、boxのデフォルトだとメモリは512MBなので、1GBに変更しています。そうしないとものすごく遅いです。(スワップしててロードが重かった)
5分で終わるらしいと噂を聞きました。公式だと2分とか書いてありますね。
Host it on your own server? Download and install the open source GitLab CE in 2 minutes.
Create, review and deploy code together | Better than GitHub | GitLab
ちょっと前まで、Rubyのパッケージ管理であるgem経由でのインストールのみだったようです?が、それだとRubyのバージョンの互換性や依存問題で苦労するらしくて、それを見て嫌煙していたのですが、今はUbuntu/Debianならdebパッケージにrubyなどの依存環境と一緒にまとまって入れれるそうです。
方法は公式のインストール作業と同じことをしています。
Download GitLab Community Edition (CE) | GitLab
はっきり言ってチョー簡単です。ただ、gitlab本体のダウンロードと、スペックが低い環境によってはgitlab-ctlの実行に時間を取られます。
推奨環境にも書かれていますが、メモリはそれなりに用意する必要があります。とりあえず試すだけなので 1GBほどを用意しています。512MBだとスワップしてしまうのでRasPiとかでは難しいかも。
GitLab Documentation - Requirements
あとは公式にしたがって、サイトにログインすればよいです。デフォルトのパスワードは変更するように求められますので、そうして、再度ログインすれば利用できるようになります。
プロジェクト/リポジトリを作る
ログインするとダッシュボードにいきます。初回だとプロジェクトを作れって言われるかもしれません。ダッシュボードなら右上のNew Projectをクリック
プロジェクトを作ります。最新バージョンだとgithubなどのサービスからimport(clone)できるらしいです。githubのリポジトリをimportしようとしたらoauth認証を求められました。といってもhttp/https?からのcloneもできるので、その辺はお好きな方法でいいと思います。
作成されると初回の方法を示されます。sshやhttp(多分設定でhttpsにもできますね)のアクセス方法が記載されています。http経由でもcloneやpushっぽいです。
あとは、既存のリポジトリをプッシュしたり、新規に作ればいい感じです。
例として、自分がgithubにあげてあるhrsano645/Brewfileのリポジトリをcloneした様子がこれです。
ファイルがこれ
wikiはこんな感じで
いい感じですね。
issueはこんな感じで
さくっと登録
Networkはgitのツリーが見れますね
あとは使うだけ
ですね。公式の推奨環境で使うなら、性能の心配もなく扱えそうです。 バックアップとかはどうするんだろうというのは今後調べてみることにして(最悪リポジトリさえ生きていればなんとか。。。)
merge requestの扱いがちょっとわからないです。githubもpull reqとかしたこと無いので。多分ブランチをいくつか作って、merge requestすればいいだけかな。複数人だと、フォーク?させてから、元にさせればいいのかな。
次回予告
心はもうgitlabに偏ってますが、gitbucketを試してみることにします。