前々から欲しいと思ってたのでrubyで作ったら案外と簡単に出来ました。
コミットみたいに一度実行してしまうと簡単には元に戻せなかったり人に迷惑をかけてしまう処理は、一度GUIの画面を挟み込むと視覚的に状況が把握しやすくなってミスが減るような気がしてます。
path = ARGV.collect{|f| File.expand_path(f)}.join('*') path = "." if (path == "") system("TortoiseProc.exe /command:commit /path:\"#{path}\" /closeonend:0")
以下、使用例。
# 指定ファイルをコミット <~/work/ruby/sandbox>c:/bin/tortoise_commit.rb tortoise_commit.rb # 複数ファイルも渡せる <~>c:/bin/tortoise_commit.rb .emacs .emacs.d # 引数無しだとそのディレクトリ以下をコミット <~/work/ruby/sandbox>c:/bin/tortoise_commit.rb
ちなみにc:/bin っていうのは、windowsと、windows版のrubyと、cygwinのパス相性問題によりrubyスクリプト等にPATHを貼れないため、極力絶対パス指定を短くするための苦肉の策です・・・。人によっては起動用のbatファイルを作ったり、exe化したりしていると思いますが、もう少しエレガントな方法は無いものでしょうか・・。(こういう時UNIXはいいなーって思う)
スクリプト自体は置き場所に依存しないので好きな場所に置いてもらって大丈夫です。