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-guigitkを使うのがよいだろうと判断した。

理由は以下3点だ。

  1. Gitに付属されているのでGitが使えるならどこでも使える
  2. ライセンスがゆるい
  3. クロスプラットフォーム

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コマンドを実行
Application menu [Git GUI Here] and [Gitk Here]

それぞれ,現在のディレクトリでgit guigitkコマンドを実行する。Gitリポジトリのあるディレクトリで実行すれば以下のような画面が表示される。

git gui window
gitk window

Summary

Nautilusでgit-guigitkを簡単に使うための拡張機能Nautilus Git GUIを作成した。右クリックメニューにgit guigitkコマンドを追加するためのメニューを追加するとてもシンプルな拡張機能だ。シンプルだが,Gitを常用していくうえでGUIは自分にとって必要なので作ってよかった。

作成にあたってはnautilus-adminを参考にした。

brunonova/nautilus-admin: Extension for Nautilus to do administrative operations

コメントを残す

メールアドレスが公開されることはありません。 が付いている欄は必須項目です