Nautilus Git GUI for nautilus git-gui
/gitk
extension
GNOMEデスクトップ環境の標準ファイルマネージャーNautilusで使えるgit-gui
/gitk
の拡張機能を作ったので紹介する。
senooken/nautilus-git-gui: Extension for Nautilus more easily accessing git-gui and gitk
Introduction
今後ソフトウェアや文書を作成していくうえで,バージョン管理をちゃんとした方がいいだろうと考えていた。世の中の主流になりつつあるバージョン管理ソフトのGitに慣れたいと思った。
Gitは基本的にはコマンドラインから実行することを念頭に作られている。しかし,Gitには詳しくなく,さらにいちいち端末を開いて作業するのが面倒であり,このことがバージョン管理への障害となっていた。つまり,ファイルマネージャーから使えるGitのGUIクライアントを用意する必要があると考えた。
Windowsであれば,TortoiseGitなどユーザーに優しいGUI環境が用意されているが,自分がメインで使っているLinux(Ubuntu)にはピンとくるものがない。
RabbitVCSやGit Colaなど近いことができるものがあるのだが,インストールに管理者権限が必要だったり,RabbitVCSについては自分の環境でうまく動作しなかった。
GitのGUIクライアントに何を使うのかというのは一つ議論のテーマである。種々のGUIクライアントの開発状況やライセンス,対応環境を調べた所,Gitに標準付属のgit-gui
とgitk
を使うのがよいだろうと判断した。
理由は以下3点だ。
- Gitに付属されているのでGitが使えるならどこでも使える
- ライセンスがゆるい
- クロスプラットフォーム
gitk
はGitのコミットログや履歴を閲覧するだけのもので,git-gui
は実際にコミットしたりマージできる。git-gui
を起動するとわかるが,見た目はやや古臭く,標準で使える機能は簡単なものに限られる。しかし,メニューの[Tools]から自分でコマンドを追加できる(.gitconfig
でカスタマイズ可能)ので,自分のGitの知識の増加に合わせてできることが増える。面白くてよいGUIクライアントだと思った。
git-gui
を使うことにしたとして,問題が起きる。LinuxでのGUIの起動をどう簡単にするかだ。git-gui
は端末からgit gui
コマンドを実行することで,実行したディレクトリでリポジトリブラウザが開かれる。常に端末で作業しているわけではなく,複数のディレクトリを開いたり,表計算ソフトや文書を書いたりするのに,ファイルマネージャーのNautilusを多用している。いちいち端末を開いてコマンドを手入力するのは面倒なので,Nautilus上でマウス操作でできるようにしたい。
WindowsのGitのインストーラーであるGit for
Windowsでは,インストールするだけで以下のようにExplorer上で右クリックしたときのメニューに[Git GUI
Here]が追加される。この項目を選択することで,ファイルマネージャー上から直接git-gui
を起動できるため,とても使いやすい。
LinuxのNautilusでも同じ機能がほしい。これがこの拡張機能を作った動機だ。幸いなことにNautilusにはPythonで拡張機能を作る仕組みが備わっているので,これを利用して作った。
Installation
以下のリポジトリにアクセスしてファイルをダウンロードする。
senooken/nautilus-git-gui: Extension for Nautilus more easily accessing git-gui and gitk
extensions
ディレクトリに配置されているnautilus-git-gui.py
を~/.local/share/nautilus-python/extensions/
に配置する(シンボリックリンクにしてもよい)。ディレクトリが存在しなければ作成しておく。システム全体にインストールしたければ,/usr/share/nautilus-python/extensions/
に配置する。
その後,以下のコマンドでnautilusを終了させて,再起動すれば有効になる。
nautilus -q
nautilus &
アンインストールは,配置したnautilus-git-gui.py
とnautilusの起動時に生成されるnautilus-git-gui.pyc
を削除するだけでよい。
Usage
Nautilusを開いて空の部分を右クリックする。すると,以下の2項目がメニューに追加されている。
[Git GUI Here]
:git guiコマンドを実行[Gitk Here]
:gitkコマンドを実行
それぞれ,現在のディレクトリでgit gui
とgitk
コマンドを実行する。Gitリポジトリのあるディレクトリで実行すれば以下のような画面が表示される。
Summary
Nautilusでgit-gui
とgitk
を簡単に使うための拡張機能Nautilus Git GUIを作成した。右クリックメニューにgit gui
とgitk
コマンドを追加するためのメニューを追加するとてもシンプルな拡張機能だ。シンプルだが,Gitを常用していくうえでGUIは自分にとって必要なので作ってよかった。
作成にあたってはnautilus-admin
を参考にした。
brunonova/nautilus-admin: Extension for Nautilus to do administrative operations