Ubuntu Weekly Recipe

第212回Git/Bazaarブラウザあれこれ

明日から3月です。春です。春といえば出会いと別れの季節。⁠出会い(merge)」「別れ(branch)」を初心者でも効率よく行うために、グラフィカルなインターフェースを備えたGit/Bazaarクライアントをいくつかご紹介します。

Gitクライアント

Gitは世界でもっとも使われている分散型バージョン管理システムです。Recipeの読者であれば、LinuxカーネルやGitHubなんかでお世話になっている人も多いことでしょう。Ubuntuでもgitパッケージをインストールすることで簡単に導入できます。

ちなみに、Gitは初期状態だと日本語などのマルチバイトのファイル名を数値表現で表示します。git-gui/gitk以外のクライアントはこれを数値のまま表示してしまうため、日本語ファイル名を含む差分を見るときに不便です。以下のコマンドで、数値表現に変更せずそのまま表示するように設定を変更しておくとよいでしょう。

$ git config --global core.quotepath false

git-gui/gitk

git-gui/gitkはGitに公式に組み込まれているGUIクライアントです。gitkがリポジトリの履歴や差分を閲覧するビューワーで、git-guiが各種gitコマンドを実行するためのフロントエンドになります。git-guiからgitkもしくはgitkからgit-guiを呼び出すことも可能です。

Ubuntuだとgit-gui/gitkパッケージをインストールすれば使えるようになります。

$ sudo apt-get install git-gui gitk

例えば任意のリポジトリでコマンドからgitkを起動した画面は以下のような感じになります。ちなみにブランチをすべて表示したい場合は、各コマンドの後ろに--allをつけてください。他のツールでもこの--allオプションが有効な場合があります。

図1 日本語ファイル名も問題なく表示される
図1 日本語ファイル名も問題なく表示される

ファイルから「git guiの開始」を選択するとgit guiが起動します。

図2 iBusから日本語のコミットメッセージも入力できる
図2 iBusから日本語のコミットメッセージも入力できる

Tcl/TkベースのUIなので、少し古い感じのするインターフェースとなっていますが、gitで必要な操作を一通りできるのと、軽さが強みです。

Qgit

Qgitはその名のとおりQtベースのGit GUIクライアントです。モダンなインターフェースで、履歴や差分を見たり、そこからパッチを生成することができます。

$ sudo apt-get install qgit

起動方法はリポジトリでqgitコマンドを入力するか、Dashからqgitを検索しリポジトリを追加してください。

図3 ブランチグラフが表示されるので関係がわかりやすい
図3 ブランチグラフが表示されるので関係がわかりやすい

ブランチの生成やコミットもできるのですが、gitの細かい操作はActionsを経て実行する必要があり、どちらかというとStGITと連携したパッチ管理システムのインターフェースとしての使い方の方があっているようです。

git-cola

git-colaもまたQtベースのGUIクライアントですが、こちらはPython-Qtを使っています。qgitと違って、マージやpush/pullといった操作も最初から用意されているので、Gitのインターフェースとして使いたいなら、qgitよりもこちらをおすすめします。

$ sudo apt-get install git-cola
図4 git-colaは起動するとまずコミット用のインターフェースになる
図4 git-colaは起動するとまずコミット用のインターフェースになる
図5 メニューのコミット→Browseからコミットログを表示する
図5 メニューのコミット→Browseからコミットログを表示する

ただし、リポジトリからインストールできるのは1.4系列です。数ヶ月前に1.7系がリリースされて、インターフェースも刷新され、履歴をDAG形式で視覚化したgit-dagも強化されているので、新しい方を自分でインストールするのもよいでしょう。

Giggle

Gtk+ベースのGitクライアントだと、GNOMEで開発しているgiggleが有名です。GNOMEのポリシーにあわせた、シンプルでわかりやすいインターフェースが特徴です。

$ sudo apt-get install giggle

ファイルペイン表示からGeditを起動してファイルを編集するなど、Nautilusでのファイル操作を多用している人ならすぐに慣れるでしょう。

図6 Ubuntuのインターフェースにも合ったシンプルな作りになっている
図6 Ubuntuのインターフェースにも合ったシンプルな作りになっている

ただし、チェックアウトやマージの機能がない、大きなリポジトリの取り込み時や差分表示時に若干もたつくなど、他のクライアントに比べると機能性についてはまだ足りない印象です。

ちなみにgiggle-terminal-view-pluginを使って端末を組み込むこともできるので、履歴の表示などはgiggleで、細かい操作は端末でといった切り分けも可能です。

図7 表示→端末の作成から端末を内蔵することができる
図7 表示→端末の作成から端末を内蔵することができる

RabbitVCS

RabbitVCSは、NautilusやGeditに組み込むタイプのGitクライアントです。いわゆるTortoiseSVNのGit/Nautilus版だと考えていただければイメージしやすいと思います。

$ sudo add-apt-repository ppa:rabbitvcs/ppa
$ sudo apt-get update
$ sudo apt-get install rabbitvcs-nautilus3 rabbitvcs-gedit rabbitvcs-cli

インストール後は、一度ログインしなおしてください。また、Geditについては現状Gedit 2にしか対応していないようですので、11.10以降では使用できません。

NautilusでGitリポジトリのあるディレクトリを閲覧すると、マークがつき右クリックメニューで各gitコマンドが実行できるようになっているはずです。

図8 Nautilusから一通りの操作ができるようになっている
図8 Nautilusから一通りの操作ができるようになっている

すべて右クリックによる操作からメニューをたどる必要があるため、ショートカットが充実している他のクライアントに比べるとまどろっこしさがありますが、ファイルをコピーする感覚でgitコマンドを操作できるので、特定のファイル・ディレクトリ単位での操作を多用する場合に便利でしょう。

RabbitVCSはSubversionにも対応しています。

tig

tigは、端末内部で実行できるGitクライアントです。これまで紹介したクライアントとは異なり、すべてキーボードによる操作となります。

$ sudo apt-get install tig

リポジトリのあるディレクトリでtigコマンドを入力すると起動します。

vimライクな操作で、視覚的に履歴や差分の閲覧、ブランチの切り替え、コミットが行えるので、SSH越しにGitリポジトリをグラフィカルに操作したい場合に真価を発揮します。

まずはhキーを入力してヘルプを読むと良いでしょう。終了はqキーです。

図9 --allオプションをつけると、ブランチグラフも表示できる
図9 --allオプションをつけると、ブランチグラフも表示できる

Bazaarクライアント

BazaarはCanonicalが開発している分散バージョン管理システムです。Launchpadでコードを公開する場合や、Ubuntuのパッケージを編集する場合によく使われます。

Bazaar Explorer

Bazaar ExplorerはQtベースのBazaarクライアントです。Bazaarを使った一通りの操作が、このクライアントから行え、しかもインターフェースもまとまっているため、ほとんどこれ一つでまかなえるほどです。

$ sudo apt-get install bzr-explorer
図10 ブランチグラフはノードをクリックするだけで開いたり閉じたりできる
図10 ブランチグラフはノードをクリックするだけで開いたり閉じたりできる

Bazaar Explorerの特徴の一つは、何か操作を行ったときに次に行うであろう操作のショートカットを用意してくれるところです。例えばファイルを編集したら、⁠差分を表示」「新しいリビジョンとしてコミット」といった操作のボタンを一覧にして表示してくれるのです。

図11 ファイルを変更すると、このように次の手順を教えてくれる
図11 ファイルを変更すると、このように次の手順を教えてくれる

また、差分ビューワーもmeldライクの強力なものを備えているため、行単位だけではなく単語単位での違いも表示してくれます。

図12 差分ビューワーは色わけでどの単語が変わっているかまでわかる
図12 差分ビューワーは色わけでどの単語が変わっているかまでわかる

Gedit Bazaar plugin

Geditには、Bazaarのコマンドを発行するプラグインが存在します。

$ sudo apt-get install gedit-developer-plugins

上記を導入した上でGeditを起動し、設定から「GDP Bazaar integration」にチェックをいれると、以降メニューにProjectがあらわれて、開いているファイルに対してBazaarを使った操作を行えるようになります。

図13 Geditを起動したまま、Bazaarの操作ができる
図13 Geditを起動したまま、Bazaarの操作ができる

おすすめ記事

記事・ニュース一覧