예전에 Emacs for OSX 관련 설치글에서 File Dired Mode 에서 한글이 깨지는 문제는

(require 'ucs-normalize)
(set-file-name-coding-system 'utf-8-hfs)

위 내용을 .emacs 에 써주면 된다고 했습니다. 그런데 shell-mode 에서 한글이 제대로 출력이 안되는 이슈가 존재합니다.

역시 .emacs 에

(setq default-process-coding-system '(utf-8-hfs . utf-8-hfs))

와 같은 내용을 써주면 해결됩니다.

연일 맥을 가지고 놀다 보니 발견하게 되는 개발 환경과 작업 환경 세팅시의 문제점들이 발견 되는 군요. 저는 Emacs 로 텍스트 파일들을 작성해서 svn repository 에 보관을 합니다. 그렇게 집 , 회사 , 노트북 세가지를 동기화 시켜왔는데 이제  osx 를 사용하다 보니 첨 쓰게 되는 환경에 당황하게 되는군요. 너무 쉽게 됐던 것들이 안되니 참으로 난감하기도 하고 -ㅅ-; 암튼 구글링 저헐라게 하다가 우연히 알게 되는 사실로 해결이 되는 군요.

.emacs 에서 한글을 쓰기 위해서 세팅하는 과정입니다.

(set-language-environment "Korean")

(set-terminal-coding-system 'utf-8)
(set-keyboard-coding-system 'utf-8)
(prefer-coding-system 'utf-8)
(set-default-coding-systems 'utf-8)


이렇게만 설정해 주면 기본적으로 osx 에서 emacs 사용시 별 문제 없이 utf-8 환경으로 작동하게 되는 군요.
여기에다가 svn 을 살짝 연결 시켜서 사용하게 되면 linux 나 window 와는 다르게 에러가 발생합니다. 이미 고쳐버려서 어떤 메시지 였는지 확실하지는 않지만

svn: Commit failed (details follow):
svn: Can't convert string from native encoding to 'UTF-8':


이러한 메시지 였습니다.
정말로 고쳐볼려고 별의 별 방법을 다 써봤습니다. 구글링도 얼마나 한지 모릅니다. 그러다가 우연히 발견한 팁을 적용시켰습니다. emacs + svn + utf-8 으로 검사하니까 절대로 안나오더군요..

.profile 에 다음과 같이 추가해 줍니다.

export LC_CTYPE=en_US.UTF-8
export LANG=en_US.UTF-8


왜 인지 모르지만 너무 잘 돌아갑니다. -ㅅ-;;
osx 를 사용할 때, svn 을 사용해서 소스나 레파지토리에서 파일을 check out 을 하게 되면 영문 파일들은 잘 내려받고 서버와 동기화도 잘 되는 반면 한글 파일명을 가진 파일들은 오동작을 일으킵니다. 쉽고도 간단하게 확인이 가능한데

svn st


라고 입력을 하면 분명히 방금 checkout 을 한 경우라도 같은 파일이 레파지토리에 추가가 안되어 있다고 나옵니다. 이 문제는 osx 에서 쓰이는 utf-8 방식이 svn 과 달라서 발생하는 문제라고 합니다. 계속해서 reporting 되고 있는 문제긴 하지만 subversion 측에서 적용을 안하고 있는 것 같습니다. 최초 발생과 패치를 일본 프로그래머가 내놓은 시점이 1.4.4 버젼이였는데 현 버젼인 1.6.5 까지 아무런 적용이 안되고 있는 것을 보면 쉽게 추측이 가능합니다.

그 발생한 문제에 대한 이슈는 원문보기 에서 잘 나타나 있습니다. 그 달려있는 내용중에 보면 힌트가 나와 있습니다. 그 내용을 조금 정리하자면
curl -O
 http://www.opensource.apple.com/darwinsource/tarballs/other/subversion-16.tar.gz
curl -O http://www.opensource.apple.com/darwinsource/tarballs/other/neon-8.tar.gz
curl -O
http://subversion.tigris.org/nonav/issues/showattachment.cgi/780/utf8precompose_macosx.path

tar xzf subversion-16.tar.gz
tar xzf neon-8.tar.gz
patch -p0 < utf8precompose_macosx.path
mv neon-8/neon subversion-16/subversion
cd subversion-16/subversion
./configure --with-ssl
make
sudo make install

# patched version of svn will be installed on /usr/local/bin,
# make sure you have /usr/local/bin in your PATH environment variable.

이렇게 하라고 되어 있는데 , 실제로 잘 구동하지가 않습니다. 그래서 curl 명령 뒤에 붙어 있는
링크들을 클릭해서 직접 파일을 받아서 패치를 적용해 보았는데 제대로 동작을 하지를 않더군요. 게다가
버젼이 1.4.4 라 너무 낮습니다. 그래서 이 내용을 참조해서 1.6.5 버젼용 패치를 만들어 보았습니다.
이 패치는 오로지 osx Leopard 를 기준으로 합니다.

subversion 1.6.5 를 여기 를 클릭해서 내려받습니다. 적절한 곳에다 옮겨주시고

tar xzf subversion-1.6.5.tar.gz

하시고 그리고 패치파일을 받습니다. 그리고 패치를 적용해 줍니다.

patch -p0 < utf8_mac.patch
cd subversion-1.6.5/subversion
./configure
make
sudo make install


이제 문제가 해결된 svn client 를 소유하게 되앴군요.




+ Recent posts