Updated: 2012년 11월 27일
Eclipse
용 Subversion
플러그인인 Subversive
로 파일을 비교하고 병합하려니 토할 것 같아서 미친 듯이 웹을 뒤졌다. 그 와중에 Integrating Git with a Visual Merge Tool라는 글 덕분에 삽질을 덜었다. 땡큐~
이 글에서는 오픈소스, 상업용 소프트웨어이나 무료인 것, 유료 소프트웨어로 나누어 9가지나 되는 툴을 소개한다. 하지만 다 필요 없고 상업용이지만 무료인 소프트웨어만 보면 된다. 대체로 오픈소스는 편의성이나 완성도가 떨어지니 패스! 상업용은 돈이 들어가니 결제 받는 과정이 귀찮아 일단 보류!
그래서 세 개의 툴을 비교하기 시작했다. 물론 이 중에 Xcode
에 포함된 \’\’\’FileMerge\’\’\’는 이미 별로라는 걸 알기에 다음 두 가지만 살펴봤다.
- SourceGear DiffMerge
- Perforce Visual Merge Tool (P4Merge)
결론적으로 둘 다 느렸는데 장단점이 명확하다. 다른 블로거의 말을 빌리자면,
WinMerge에서는 안되는 파일 3개를 다룰 수 있는 Merge 기능과 Perforce 의 P4Merge에서는 안되는 폴더 비교 기능이 있습니다.
사실 폴더 비교는 WinMerge가 좋구, 파일 비교랑 3-Way Merge는 P4Merge가 좋습니다. 두 개 쓰기 귀찮으신 분들은 그 중간 즈음하는 DiffMerge 도 괜찮을 거 같구요.
여기에 한 가지만 덧붙이자면 Mac OS X에서 DiffMerge의 구동시간이 상당히 거슬리더라.
자, 이제 어떻게 구성하면 되는지 살펴보자. 나도 Mac OS X에선 초보니까 정답이라 생각하면 곤란하고 그냥 이렇게 한 놈도 있다 생각하면 된다.
나의 구성
SourceTree부터
Mac OS X에서 쓸 무료 Git 클라이언트 중에 이만한 게 있나? 무려 Atlassian
사가 개발했다. 이 녀석의 Diff는 일상 용도로는 상당히 좋다. 그런데 병합을 하려고 들면 머리가 아프다. 그래서 P4Merge나 DiffMerge가 필요하다.
우선 SourceTree를 설치한 후,
P4Merge
를 쓰려면
Perforce 홈페이지에서 P4V: Visual Client를 찾아서 다운로드 받는다. 그리고 설치하는데 이때,
설치 파일에 포함된 여러 도구 중 p4merge만 골라서 설치하면 된다.
DiffMerge
를 사용하려면
Source Gear 홈페이지에서 DiffMerge를 내려 받아서 설치한다. DiffMerge는 P4Merge보다 파일 인코딩을 유추하는 능력이 떨어진다. 그래서 한글이 깨져서 보이곤 한다. 만약 소스코드의 인코딩이 UTF-8이라면 우선 환경 설정으로 가서,
기본 규칙(Default Ruleset]을 편집하면 된다. 이렇게!
다시 SourceTree
로
이제 거의 끝나간다. 마지막으로 할 일은 Git의 기본 Diff/Merge 툴을 바꾸는 것이다. 원래는 ~/.gifconfig
파일을 수정해야 하는데 SourceTree를 사용 중이라면 그럴 필요 없다. SourceTree의 \’\’\’외부 Diff/Merge 툴\’\’\’을 바꿔주면 .gitconfig
도 바뀌기 때문이다. 이제 환경 설정에 가서,
이렇게 바꿔주면 ~/.gitconfig
파일도 이렇게 예쁘게 바뀐다.
[user]
name = CHOI, Jaehoon
email = 이메일 주소
[credential]
helper = osxkeychain
[core]
excludesfile = /Users/사용자이름/.gitignore_global
[difftool sourcetree]
cmd = /Applications/DiffMerge.app/Contents/MacOS/DiffMerge –nosplash $LOCAL $REMOTE
path =
[mergetool sourcetree]
cmd = /Applications/DiffMerge.app/Contents/MacOS/DiffMerge –merge –result=$MERGED $LOCAL $BASE $REMOTE
trustExitCode = true
Subversion 사용자라면
Cornerstone 같은 상용 도구도 외부 Diff/Merge 툴로써 DiffMerge
와 P4Merge
를 지원한다.
마무리
마무리로 남길 말은 없고 참고 문헌만 적는다.
- Integrating Git with a Visual Merge Tool
- Using p4merge as a git mergetool
Seongkyu Lim liked this on Facebook.
Joey Joe liked this on Facebook.
[…] Mac OS X용 Merge 툴 […]