Outsider's Dev Story

Stay Hungry. Stay Foolish. Don't Be Satisfied.
RetroTech 팟캐스트 44BITS 팟캐스트

Gollum에서 내용에 한글이 있을 경우 LooseObjectError - size mismatch 오류

Gollum은 전에 포스팅한대로 Github에서 만든 git 기반의 위키입니다. 개인적으로 이 위키를 쓰고 있는데 버전업을 한 다음에 문서에 한글이 들어가 있는 경우 저장을 하면 다음과 같은 오류가 발생했습니다.

사용자 삽입 이미지

저장을 완료하는 순간 위처럼 Grit::GitRuby::Internal::LooseObjectError 오류가 발생합니다. 오류의 내용은 size mismatch입니다. 이는 Gollum의 오류라기 보다는 Gollum이 내부에서 사용하는 Git을 다루는 Ruby 라이브러리인 grit의 오류인데 현재 2.5.0에서는 이미 해결된 문제이지만 Gollum은 grit 2.4.1을 사용하고 있어서 위 문제가 발생합니다. grit이 유니코드를 처리를 제대로 못해서 발생합니다.

이 수정에 대해서는 grit의 커밋내역을 보면 잘 나와 있습니다. gem 설치 디렉토리에서 grit이 설치된 grit-2.4.1/lib/grit/git-ruby/internal/loose.rb 파일에서 length를 모두 bytesize로 변경해 줍니다. 이렇게 변경하면 Gollum에서 한글을 정상적으로 사용할 수 있습니다. 이는 Gollum 2.0.0에서 발생하는 문제로 차후버전에서 grit 2.5를 사용하면 자연히 해결될 문제입니다.
2012/07/02 02:59 2012/07/02 02:59