최근에 합류한 게임프로젝트는 VCS로 Perforce를 사용하고 있다.

개인적으로는 Perforce를 처음사용해보는데, 클라이언트의 UI구성등이 익숙하지 않을뿐, Subversion과 크게 다르지 않아서 금방 적응 할 수 있었다.

적응을 하면 할 수록 git이 계속 아쉬웠고, Perforce에 git을 연동해서 사용 할 수 있는 방법이 있다는 것은 알고 있었기 때문에 사용해보기로 했다.

Perforce에서 git을 사용 할 수 있는 방법은 2가지가 있는데…

  1. Git Fusion
  2. git-p4

Git Fusion은 서버를 건드려야 하니, 클라이언트만으로 해결 할 수 있는 p4를 사용해 보았다.

정말 잘 된다!!

git은 굉장히 유연하게 잘 설계되어 있는 것 같다.

Perforce 뿐만이 아니라, Subversion과 Mercurial도 사용 하는 방법이 있다.

https://git-scm.com/book/en/v2/Git-and-Other-Systems-Git-as-a-Client

 

윈도우에서 git-p4를 사용할 수 있는 기본 셋팅은 이곳을 참조하자.

http://ericlathrop.com/2012/12/how-to-set-up-git-p4-in-windows/

 

하지만! 인코딩과 관련된 문제를 겪게 되었는데….

내가 사용하고 있는 Perforce는 cp949 한글 인코딩을 사용하고 있다.

git의 기본 인코딩은 utf-8이지만, 이것을 바꿀 수 있는 방법이 있다.

git config –global i18n.commitEncoding cp949

git config –global i18n.logOutputEncoding cp949

그리고 git의 기본 gui client에서 잘 보이게 하려면 이렇게 하면 된다.

git config –global gui.encoding cp949

이렇게 세팅해서 사용하면, git bash와 git gui, gitk만 사용한다면 아무 문제없이 잘 사용 할 수 있다.

하지만… 저것들로만 불편해서 보통 별도의 GUI Client를 사용하는데…

이 GUI Client중에 인코딩을 해결 할 수 있는 것을 못찾았다….

아…. 도저히 못 찾겠다. 혹시 방법을 아는 분은 알려주길….

 

그렇다고 이대로, 기본툴로만 개발 할 수는 없는일…

용감하게(?) git-p4.py를 수정해보기로 했고, 의외로 쉽게 해결 할 수 있었다.

원리는 git p4 sync로 가지고 올때는 cp949를 utf-8로 변경, git p4 submit을 할 때는 utf-8을 cp949로 변경

이렇게 하기 위해서 git config에 perforce의 인코딩이 무엇인지 알려주어야 한다.

git config –global git-p4.charset cp949

(위에 하던 설정들은 하지말고, 이것만!!)

https://github.com/yonmy/git/blob/git-p4-charset/git-p4.py

공식 git에 이 수정사항을 pull request한 상태인데,

반영해 줄라나? 이슈로 만든다음에 요청해야 하는 것인가?

영어가 약해서… 모르겠다… 안해주면 말고…