2012/09/12

Gitlab 2.7 → 2.8にバージョンアップ

友人との開発プロジェクトにGitLabを実際に利用させていただいています。
GitHubに使い勝手が近いこと、また、RedmineやTracほど大規模でないため
とても手軽で、メンバーの学習コスト的にも敷居が低く、最適だと思っています。
(前回の記事: Gitlabの導入 (Unicorn+nginxでサブディレクトリへ配置))

さて今回は、8月末にGitLab 2.8が公開されたため、
現在のGitLab 2.7からバージョンアップをすることとしました。

GITLAB 2.8 released - GITLAB Blog

Gitlab Flavored Markdownなどなど...便利になりますね。
(プレビュー機能が使えて、その場で確認もできるようになりました。)
また、詳細まで追ってはいませんが、Security fixもあるそうですから
アップデートしておいたほうが良いと思います。

アップデート手順のドキュメントが公開されており、基本的にはこのとおりです。
https://github.com/gitlabhq/gitlabhq/wiki/From-2.7-to-2.8
(推奨OSではなく、CentOS 6.2上で動作させていますが、特にこのとおりで問題ありません。))

GitLabのディレクトリでGitを使ってgit pullしてきて、
bundleコマンドをいくらか実行するだけなので、楽ちんですね♪



以下は、どちらかといえば私のサーバ環境固有の問題なのですが... (一応メモですw)

1. Gitoliteのユーザアカウントに対してホームフォルダを作っていないためそのままでは動作しませんでした(詳しくは前回の記事を参照)
→ egrepコマンドで"/home/git/"ディレクトリのパスが決め打ちされている箇所を探して書き換えることで対処できました。

2. nginx+Unicornでサブディレクトリ下でGitlabを動作させるため
コードをほんの一部書き換えているのですが、git pullする際に
マージするか、一旦上書きしてしまって再設定する必要がありました。


3. Gitlab2.8以降のGitlab Markdownによってリンクタグ生成処理が変更されており、
Markdown記述内のリンクには、サブディレクトリが含まれませんでした。
(<a href="http://example.com/gitlab/hoge/issues/1">〜〜</a> になってほしいところが<a href="http://example.com/hoge/issues/1">〜〜</a> になるという。)

→こちらは追加の変更で対処できました: (下線の箇所にサブディレクトリパスを記述)

/lib/gitlab/markdown.rb: 147行:
link_to("##{identifier}", 'gitlab/'+ project_issue_path(@project, issue), html_options.merge(title: "Issue: #{issue.title}", class: "gfm gfm-issue #{html_options[:class]}")) 
同じ感じで...153行、159行、165行目にもパスを追加していきます。

以上です。

GitLabのサブディレクトリの件、もし不具合なのであれば、
GitHubで報告したいのですが、以前からサブディレクトリ対応については
ドキュメントでも触れられていませんし・・・仕様なのかなと。
もし宜しければ、どなたかお願いしますm(_ _)m