unite で vcs の操作を行えるソース書いた

導入

unite で vcs を扱えるソースというと kmnk さんの

などが有名。

本題

上記のプラグインはすごく便利だったんだけど、diff が unified 形式だったりするのが個人的に合わなかったので新しく書いた。

※ 作成に際して、協力してもらってる人がいたりします。

特徴
  • git, svn を透過的に扱える(vcscommand 的な位置づけ)
  • unite を使うことを想定しているが、vcs#... な関数を使うことで他のプラグインからも扱える

使い方

概要

何らかの vcs で管理されたファイルを開いた状態で、

  • ログを見る
    • :Unite vcs/log
  • 作業コピーの変更を一覧する
    • :Unite vcs/status
  • リポジトリのファイル一覧を見る
    • :Unite vcs/file_rec

などができます。

vcs/log
  • ログの一覧が出力される
  • 2つのログを選択して、diff を取ることができる
  • 1つのログを選択して、作業コピーとの diff を取ることができる
  • 特定のログで行われた変更を見ることができる(diff_prev)
vcs/status
  • ステータスの一覧が出力される
    • 変更のあったファイル、管理されていないファイル、削除されたファイル、等
  • add, delete, commit, revert ができる
vcs/file_rec
  • リポジトリのファイル一覧が出力される
  • ステータスも一緒に表示される。変更があるファイルだったら M など。
  • ファイルを選択して vcs/log を起動できる

などです。

困り事

git がよくわからない

仕事では svn を使っているので、git を使っていて欲しい機能なんかがよくわからない。
そのため、git メインで使ってる方には違和感があるかもしれない。(意見があったらガンガン言ってください。)

svn, git で違うコマンドをうまく扱えない

svn と git だとコマンド名が違ったり、そもそも git にしかないコマンドがあったりして難しい。
これはある程度しょうがないこととして割り切ろうかと思っている。