2012年2月20日月曜日

[vim] unite.vimを使って、バージョン管理ツールbazaarをvimから操作する。

bzrをvimから操作するuniteソースを書いた。
探してみると、svnで似たようなことしてる人がいた。
vimスクリプトのuniteでsvn statusとsvn diffするsource書いた
しかし、差分の確認にvimdiffを使いたいという気持ちがあったので、
ゼロから書いてみることにした。

背景


bzrを操作するとき、ほぼ決まりきったコマンドの流れがある。
特に、他の人の変更を確認するとき。

① bzr log --line --forward
② bzr diff -c [リビジョン番号]
③ bzr diff -c [リビジョン番号] [ファイル名]
④ vi [ファイル名]

他の人のコミットした内容を確認したいとき、
まず、bzr logでリビジョン番号を特定し、
bzr diffで変更されたファイルや、その変更内容を確認する。
そのあと、viで開いたりする。

これらの操作をするとき、
一回一回コマンドたたくのは慣れれば特に何も感じないけど、
この流れに沿った操作ができるインターフェースがあれば、
もっと楽になるんじゃないかと考えた。
で、uniteのソースにしようと思った。

ソース

結構長くなってしまったので、githubに置く。

kokukuma / vim-unite-bzr

以下、インストール方法。
ちなみにこれを使うには、unite.vim, vimprocが必要。
また、このインストールは、pathogen.vimを使ったやり方。

$ cd ~/.vim/bundle
$ git clone git://github.com/kokukuma/vim-unite-bzr.git

これだけ。

使い方


主な使い方は2つ。
過去のコミット内容の確認と現在修正した内容の確認。

① 過去のコミット内容を確認

1, Unite bzr_logを実行すると、bzr logを実行した結果が表示される。

2, リビジョンを選択すると、コミットされたファイル一覧が表示される。

3, ファイルを選択すると、vimdiffが起動し、差分を表示する。


② 現在修正した内容の確認

1, Unite bzr_statusを実行すると、修正されたファイルの一覧が表示される。
2, ファイルを選択すると、vimdiffが起動し、差分を表示する。
雰囲気は①と同じ。

なかなか良い感じに仕上がった気がする。


ToDo

① 複数のリビジョンを選択して、修正箇所を確認できるようにしたい。
② commit、mergeは現状、コマンドラインからやったほうが楽だけど、いずれ統合したい。

0 件のコメント:

コメントを投稿