valid,invalid

関心を持てる事柄について

git commit, rebase -i でうっかり起動した vim をキャンセルする :cq と、Git コードちょい読み

うっかり git commitgit rebase -ivim 起動してしまったがキャンセルしたいときは

:cq

でエラーコードとともに vim を終了させる。

エラーコード 1 を受け取った Git は処理を進めず終了する。

Git のコード

ついでに Git のコードをちょっと読んでみる。

git rebase だと git-rebase.sh の run_specific_rebase でエラーコードのハンドリングをしているようだ。

git commit は… builtin/commit.c の cmd_commit の中にありそうだと思いつつC言語力が低いのでパッと読んでよくわからなかった。なので試しに失敗してみて、エラーメッセージから追ってみた。

$ g cm 
# vim で :cq する
error: There was a problem with the editor 'vim'.
Please supply the message using either -m or -F option.

There was a problem with the editorコード検索をかけると、このメッセージは editor.c の launch_editor から来ているとわかった。

commit.c の中でこのメソッドを呼んでいるのは… ここか。2行目のエラーメッセージから探したほうが早かったようだ。