Mac OS X에서 git의 한글 호환 오류 문제 해결하기

맥(Mac OS X)에서 git을 이용할 때 크게 혼란을 겪는 상황이 있습니다. 바로 윈도우나 리눅스에서 작성한 한글 파일이나 폴더를 맥에서 내려 받을 때 입니다. 보통 이런 한글 파일들은 자음과 모음이 분리된 형태로 인식된다거나 아무것도 변경하지 않았는데 수정 된 상태로 보여지는 등 git 프로젝트의 유지 관리에 큰 지장을 줍니다.

이런 문제는 윈도우/리눅스와 맥이 유니코드 문자를 다루는 방식이 다르기 때문에 발생합니다. 윈도우/리눅스는 Normal-Form-Composed(NFC) 방식을 이용하는 반면에 맥은 Normal-Form-Decomposed(NFD) 방식을 이용합니다. 물론 이기종 간의 문제이기 때문에 맥에서 작성한 한글 파일을 맥에서 내려 받을 때는 아무런 문제도 발생하지 않습니다. 즉, git을 이용하고 다른 운영체제에서 맥으로 저장소를 공유하며, 한글 파일을 이용하는 세 가지 조건이 일치하는 경우에 상황이 재현됩니다.

사실 이 문제는 git 문제가 아니고 맥 운영체제의 유니코드 처리 문제이기 때문에 다른 프로그램을 이용할 때에도 종종 말썽을 일으킵니다. svn을 이용할 때에도 어김없이 문제가 되는데, 이 경우에는 기본 svn 프로그램이 아닌 macport에서 +unicode_path 옵션을 추가하여 설치하는 방법으로 해결을 합니다.

git은 다행히 1.7.12 버전부터 이 문제를 해결해주는 옵션을 제공하고 있습니다. 윈도우/리눅스와 저장소를 공유해야 하는 맥의 터미널에서 다음 명령을 입력합니다.

git config --global core.precomposeunicode true 

이 명령은 맥 운영체제에서 decomposition으로 만들어진 한글 파일들을 변환시켜줍니다. 윈도우즈 용 git도 1.7.10 이상 버전이 필요하다는 설명입니다.

core.precomposeunicode 
    This option is only used by Mac OS implementation of git. When core.precomposeunicode=true, git reverts the unicode decomposition of filenames done by Mac OS. This is useful when sharing a repository between Mac OS and Linux or Windows. (Git for Windows 1.7.10 or higher is needed, or git under cygwin 1.7). When false, file names are handled fully transparent by git, which is backward compatible with older versions of git.


위에서 언급한 대로 이 옵션이 실행되려면 맥의 git 버전이 1.7.12 이상이어야 하는데, 제가 사용하던 git GUI 프로그램인 SourceTree의 최신 버전은 내장 git 버전이 1.7.11.1이었습니다. 따라서 최신의 git을 내려받고 해당 git에 옵션을 설정 한 후, SourceTree에서 외장 git을 이용하도록 설정해주어야 합니다. 참고로 맥용 다른 GUI 프로그램인 Tower는 1.8.1.3을, Xcode가 사용하는 맥 자체 git은 1.7.12.4를 이용합니다.


0 comments:

댓글 쓰기

Powered by Blogger.

Popular Posts