2011/06/09

Cygwin+Windowsのエディタで歴史改変(git rebase -i)

僕は、現状でCygwinをつかってgitをいじってます。
んで、コミットログとかの入力はWindowsアプリでやってます(terapad)

んで、最近自動コミットを試してみてたんですが、どーにもgit rebase -i を実行すると、
エディタが開いて何も表示されないことが続いてました。

ついったで、なんでじゃーってつぶやいてたら、

@riskrisk cygpathで変換してあげないとだめな気がしますless than a minute ago via TwitVim Favorite Retweet Reply

おお、なるほど、Windowsのエディタに、Cygwinのパス /homeとかああいうやつがそのままわたるのか・・・

ためしに、/lib/git-core/git-rebase--interactive の最初でパスを設定してるので、そこでechoを突っ込んでみたら
見事に、homeから始まるアドレスが出てきた!

で、解決方法も、cygpath -w でWindowsのパスに変換してくれるよ ということなので、
さっそく、スクリプトをいじって試すと動くようになったんだけど・・・

そこで、もう一通

@riskrisk 自分は引数をcygpathで変換してから渡すシェルスクリプト書いて、それをGIT_EDITORに指定してますless than a minute ago via TwitVim Favorite Retweet Reply

そりゃそうですね・・・ その方法が一番正攻法だと思います

というわけで、下記にサンプルです。

$ git config --global core.editor ~/.git-editor

これで、自分のhomeディレクトリの直下にある .git-editor を実行してくれるので、
このスクリプトを書きます。

#!/bin/sh
# editor setting
"/cygdrive/c/Program Files/TeraPad/TeraPad.exe" /cu8 `cygpath -w $1`

僕のやつはこんな感じ。

これで、git rebase -i の編集に、terapadが使えました。

ほんとありがとうございました。

0 件のコメント:

コメントを投稿