コマンドラインでのコミット時に文字化け

業務では、

  1. CentOS上で。
  2. Poderosaを使って。
  3. コマンドで。

svn commit -m '任意のメッセージ'

…のようにしてコミットしていますが、メッセージに日本語を使うと文字化けが発生します。


サーバの設定によっては文字化けすることがあるようです。
参考URL


そこで。

# EDITOR=vim svn commit

とするとVimを使ってコメントを書くことが出来ます。
vimなら、vimrcで文字コードをサーバのそれと合わせれば文字化けすることなく日本語入力ができます。


ただ、大文字で「EDITOR」って打つのが面倒…(´・ω・`)

2010-03-06補足

上で「EDITOR」と打つのが面倒、と言いましたが、これを見てくれていたインフラエンジニアH氏が
解決策を提示してくれました!


svn commit」の時の「EDITOR」はShellの環境変数に書かれています。
「env」コマンドを叩くと、以下のように情報が得られます。

#env
USER=root
LOGNAME=root
HOME=/root
PATH=/usr/kerberos/sbin:/usr/kerberos/bin:/usr/local/php/bin:/usr/local/mysql/bin:/usr/local/apache/bin:/usr/local/sbin:/usr/local/bin:/sbin:/bin:/usr/sbin:/usr/bin:/root/bin
MAIL=/var/spool/mail/root
SHELL=/bin/zsh
SSH_CLIENT=XXX.XXX.XXX.XXX 1414 22
SSH_CONNECTION=XXX.XXX.XXX.XXX 1414 XXX.XXX.XXX.XXX 28 22
SSH_TTY=/dev/pts/9
TERM=xterm
SSH_AUTH_SOCK=/tmp/ssh-なんとかかんとか
SHLVL=1
PWD=/var/www/html/Choo/data/class/pages/frontparts/bloc
OLDPWD=/var/www/html/Choo/data/class/pages/frontparts
HOSTNAME=localhost.localdomain
HISTSIZE=10000
INPUTRC=/etc/inputrc
LS_COLORS=
CVS_RSH=ssh
G_BROKEN_FILENAMES=1
SSH_ASKPASS=/usr/libexec/openssh/gnome-ssh-askpass
LANG=ja_JP.UTF-8
LESSOPEN=|/usr/bin/lesspipe.sh %s
HISTFILE=/root/.zsh_history
SAVEHIST=10000
_=/bin/env

↑EDITORという項目が無いので、外部エディタの設定がされていないことが分かります。
なお、以下の方法でも確認は可能。

#echo $EDITOR

  ←空白

↑設定されていないと、このように空白が返されます。
もし、設定されていれば、

#echo $EDITOR
vim 

のような文字列が返されます(この場合はvimが設定されている)。


…ということで、エディタを指定するために、まず設定ファイルを開きます。
ちなみに、これはbash

vim ~/.bashrc

こちらはzshです。

vim ~/.zshrc

そして、以下の行を追加して保存し、閉じます。

export EDITOR=vim

その後、以下のコマンドを叩くと、設定が反映されます。
※先ほどと同じように、bashの場合とzshの場合とに分けて記述します。

#. ~/.bashrc

#. ~/.zshrc


この状態で、

svn commit

とするとvimが開くので、そこにコメントを書いてvimを閉じれば、無事にファイルがコミットされます。