최근 리눅스의 거장 리누스 토발즈가 디자인 및 개발한 git(깃)가 대세가 되면서 한동안 소스 형상 관리의 최강자로 여겨졌던 subversion의 시대가 저물어 가고 있는 것 같습니다. 리누스 토발즈가 개발을 하다보니 git는 리눅스에만 있고 윈도우에 없는 라이브러리나 시스템콜등을 사용하여 윈도우에 포팅이 어려워서 제대로된 GUI가 없는 이유로 한동안 크게 부각되지 못했습니다. 하지만 지금은 상당히 괜찮은 tool들이 나와서 사용이 더욱더 편해졌습니다.


Subversion GUI tool의 대명사인 tortoise svn과 비슷한 UX를 가진 tortoise git가 나왔으나, tortoise svn의 UX를 그대로 유지하려고 하다보니 svn과는 철학이 다른 git의 GUI로는 부족함이 많았습니다. (제가 경험했던 것은 오래전이라 지금은 업데이트가 좀 있을지도 모르겠습니다.)


이번에 소개해드릴 GUI tool은 SmartGit/Hg라는 제품으로 http://www.syntevo.com/smartgit/ 에서 다운로드 받으실 수 있습니다. 이름에서 알 수 있다시피 git뿐만 아니라 hg(mercurial)도 지원하는 smart한 tool입니다. Java로 만든 tool이기 때문에 OS와 무관하게 사용할 수 있고 jre가 포함되어있어서 별도로 설치해야하는 프로그램이 없습니다.


설치는 간단하니 생략하고 설정하는 법을 보도록 하겠습니다. 설치가 끝난 후 실행을 하면 다음과 같이 설정 마법사를 통해서 여러가지 설정사항들을 입력하게 됩니다. 그림 밑에 코멘트를 달도록 하겠습니다.


setting01.png

라이센스에 동의하시면 됩니다.


setting02.png

이 프로그램의 라이센스는 두가지로 나누어집니다.

  1. 맨 위에는 30일간 평가판으로 사용하겠다는 것입니다.
  2. 중간에는 상업적 용도로 사용하기 위해 라이센스를 구매한 사람들을 위한 옵션입니다.
  3. 마지막은 비상업적 용도로 사용할 경우 무료 라이센스로 사용할 수 있는 옵션입니다. 기능에는 어떤 제약사항도 없습니다.

setting03.png
비상업적 용도로 사용하겠다고 선택하면 다시 한번 확인합니다.

setting04.png
SSH를 어떤 것을 사용할 것인지 선택하는 항목입니다. 
  1. 리눅스에서 사용하시는 분들은 system SSH client를 사용하시면 해당 user의 ssh key를 사용해서 git repository에 접근할 수 있습니다. 윈도우에서 이 옵션을 사용할 때 설정하는 법에 대해서는 뒤에 설명하겠습니다.
  2. 두번째 옵션인 SmartGit/Hg가 관리하는 SSH client를 선택하면 ssh key뿐만 아니라 http로 접근하는 repository의 비밀번호도 관리해줍니다. 자기가 고급사용자가 아니라고 생각하시면 두번째 옵션을 선택하시는 것이 더 편합니다.
이 설정은 설정마법사가 끝난 이후에도 수정할 수 있습니다. 

setting05.png
호스팅 서비스를 받는 경우 설정할 수 있습니다. 인지도가 있는 서비스 업체들인 GitHub, Assembla, Bitbucket등을 등록할 수 있습니다.
이 설정도 마찬가지로 마법사가 끝난 후에 별도로 추가할 수 있습니다.

setting06.png
기존에 로컬에 있는 repository를 미리 등록하여 관리할 수 있습니다.

setting07.png
많은 프로그램에서 설정을 강요하는 할 수 있는 crash report를 보내는 옵션입니다.

이것으로 설정마법사가 끝이나고 사용할 준비가 되었습니다.

Finish를 누르면 다음과 같은 화면이 나오면서 repository를 등록할 수 있도록 도와줍니다.
clone01.png
요즘 매우 핫한 node.js의 repository를 clone해보겠습니다. 우선 두번째 있는 Clone existing repository를 선택합니다.

clone02.png
github에 있는 node.js의 repository주소를 입력합니다.

clone03.png
Submodule을 포함할 것인지, clone하면서 모든 head들과 tag들을 fetch할 것인지 설정하는 화면입니다.

clone04.png
저장될 로컬 경로를 입력하면 됩니다.

이것으로 SmartGit/Hg를 사용할 준비가 끝났습니다.