Difftool

툴/개발 2012.12.17 17:43

1. 리눅스용 diff tool 소개 및 비교 

리눅스 개발환경에서 가장 아쉬운 것은 늘 UI인 것 같다. 손도 느리고 기억력도 좋지 않아, 그 수많은 명령어를 외우는 것이 버거운 나로서는 될 수 있으면 GUI 환경을 세팅하는 것은 선호하는 편이다. 

  다른 기능들은 차지하고서라도, diff할 때 GUI의 중요성을 제일 느끼곤 하는데, 오늘은 작심하고 리눅스용 diff tool에 대해서 조사해봤고, 괜찮은 리뷰를 찾았다. 

결론은  아래와 같다. 

1. Beyond Compare
스택오버플로우에서 가장 좋은 diff 툴로 꼽혔다. 이번 리뷰를 통해 알게됐지만 정말 좋다. 이걸 쓴다면 머지도 신날 것 같다.
2. Ultra Compare
울트라 에디트에서 이런것도 만드는 줄은 처음 알았다. 내 생각엔 그냥 울트라 에디트에 올인하는게 좋을 것 같은데...
3. WinMerge
오픈소스에 사용하기도 편리해서 내가 주로 쓰던 프로그램. 하지만 이번 비교를 통해 알게됐는데 안좋은 거였구나...
4. SourceGear Diff Merge
무료지만 Beyond Compare에 맞먹는 성능을 보여준다. Beyond Compare를 안사주는 회사에서 사용하기엔 안성맞춤일 듯.
5. Araxis Merge
해외에선 별 인기가 없는 것 같지 않지만 국내에서는 유명한 상용 diff 툴. 하지만 라인별로 보여주지 않고 화살표 그어서 보여주는게 불편해서 싫어한다.

무료 버전으로 쓰기에는 결국 SourceGear Diff Merge가 최적인 것 같은데, 문제는 suse 버전을 찾을 수가 없다. 무료이지만 GPL 버전이 아닌지라 소스 수정도 불가하고, 매우 아쉬움이 크다. ㅜㅜ 
한참 끙끙대다 찾은 것이 meld. 
가장 인기 있는 diff tool이 kdiff와 meld가 있다는데, kdiff보다는 meld의 UI가 좀 더 나에게는 맞는 듯 하다. suse용 diff merge를 찾기 전까지는 주력으로 쓸 듯하다. 
간략한 소개는 다음과 같다.
  • 2-way, 3-way 파일 비교
  • 2개, 3개 폴더 비교 

  • 각종 Version Control System과의 통합(Git, Mercurial, SVN) - 그러나 history 비교 등 고급 기능은 지원하지 않으니 큰 기대는 말자 
# difftool 리뷰 - http://ljh131.tistory.com/143
# meld - http://meldmerge.org/

2. Git에 외부 diff tool 사용하기  

  이러한 difftool은 git에서도 활용할 수 있다. 간략한 설정은 아래와 같다. 

  •   mergetool 

 git config --global merge.tool <tool name> git config --global mergetool.<tool name>.cmd "cmd --merge --result=\$MERGED \$LOCAL \$BASE $REMOTE" git config --global mergetool.diffmerge.trustExitCode true


위와 같이 설정 후, git mergetool <commit1> [<commit2>]과 같이 실행하면 지정한 tool이 수행된다.

  •   difftool - mergetool과 거의 동일하다. 


     git config --global diff.tool <tool name> git config --global difftool.<tool name>.cmd "/Applications/DiffMerge.app/Contents/MacOS/DiffMerge \$LOCAL \$REMOTE"

    참고로 특정 tool들은 따로 cmd를 지정하지 않아도 자동으로 설정되니 굳이 설정할 필요는 없다. 

    참고 - http://dogfeet.github.com/articles/2011/git-mergediff.html


3. Eclipse에 외부 diff tool 연결 

플러그인을 통해 Eclipse에서도 외부 diff tool을 쓸 수 있다!! 

 참고 - https://www.icts.uiowa.edu/confluence/display/ICTSit/Using+kdiff3+as+External+Diff-Merge+Tool+in+Eclipse



' > 개발' 카테고리의 다른 글

GDB에서 특정 쓰레드만 멈추게 하는 법  (0) 2013.03.27
vi 설정  (0) 2013.02.22
Difftool  (0) 2012.12.17
No repository found in Eclipse  (0) 2012.11.27
[util] Makefile 에서 파일 존재 여부 체크하기  (0) 2012.07.05
unable to execute dex java heap space 에러  (0) 2012.01.04
Posted by 라판