GUI 툴을 사용하지 않고 Git만 설치해서 사용할 수 있습니다. 하지만 Git은 기본적으로 명령어를 입력하여 사용하므로 텍스트 명령을 입력받을 프롬프트가 필요합니다. 이 프롬프트에 대한 설정인데 위에 설명에 따라 시스템에 대한 안정화 정도가 걱정된다면 Git Bash를 사용하면 됩니다.
위 옵션은 Git을 이용하여 파일 등을 내려받거나 올릴 때 (정확하게는 다운로드 업로드의 개념이 아니지만) 텍스트의 개행문자. 즉, 줄바꿈 문자에 대한 설정입니다. 이에 대해 잘 모른다면 반드시 가장 위의 옵션을 선택하는 것을 권합니다.
설치 Finish
다음 Git의 GUI 툴을 설치해 보겠습니다.
GUI 툴들은 여러가지가 있으며 홈페이지의 다운로드에서 몇 가지들을 보여주고 있습니다.
자신의 OS에 맞는 것 중에 무료인 것과 유료인 것이 있으니 마음에 드는 것을 설치하여 사용하면 됩니다.
이 글에서는 TortoiseGit과 GitHub 두 가지를 툴 설치하여 사용해 보겠습니다. rAthena 팀과 Hercules 팀은 GitHub를 이용하고 있고, 이 전에 TortoiseSVN을 이용하였으므로 이 두가지를 선택하였습니다. 이 외에도 여러가지가 있으니 사용해보는 것도 좋을 것 같습니다.
먼저 GitHub에서 사용할 계정을 생성합니다. (GitHub에서 계정없이 다운받을 수도 있지만 Git을 통해서 버전관리를 받기위해서는 계정을 생성해야 합니다. 그냥 소스의 업데이트 없이 필요한 리비전만 다운받아 사용한다면 계정생성도 Git 설치도 하지 않아도 됩니다.)
먼저 몇몇의 Athena 개발팀의 Athena 소스를 내려 받기위해 SVN이나 Git를 이용합니다.
단순히 웹저장소에 업로드된 특정 버전의 Athena 소스를 내려받아서 이용해도 되지만, 계속 개발되고 있는 Athena를 업데이트하고 이전 버전과 어떤 점이 달라졌는지 그리고 여러 명의 개발자가 하나의 작업을 협업하여 개발할 때 프로젝트 관리에 편의성을 보태기위해 SVN 또는 Git을 이용합니다. 물론 개발자가 아니더라도 공개되어 있는 소스는 SVN과 Git을 통해 다운받을 수 있습니다.
[Athena 개발 그룹 중 rAthena와 Hercules 팀은 Git을 사용하는 것을 권장하고 있습니다.(물론 SVN도 사용하고 있지만)]
따라서 SVN이나 Git을 편리하게 사용할 수 있는 툴을 먼저 설치해보겠습니다.
SVN의 간략한 설명
먼저 SVN은 자유 소프트웨어 버전 관리 시스템으로 원래의 이름은 Subversion입니다. SVN은 시간에 따라 파일과 파일경로를 관리합니다. 파일 트리는 한 곳에 저장되어있는 Repository/. 즉, 레포지토리라는 저장소에 저장되어 있습니다. 개념적으로는 일반 파일 서버와 비슷하지만 파일과 파일경로 등에 적용된 모든 변경사항을 기록하여 관리합니다. 즉, 시간 1에 저장된 정보에 시간 2에 파일 경로와 저장된 정보에 변경 사항이 있을 경우 그 변경 사항만을 저장합니다. 이 변경사항을 시간에 따라 기록하여 관리하므로 이전 시간. 즉, 이전의 버전으로 돌아가기가 쉽고 이전의 버전과 어떠한 점이 달라졌는지 비교하기 쉬워서 소스 코드 관리에 많이 사용합니다.
하지만 Subversion은 명령행 인터페이스(CLI)로 텍스트 터미널을 통해 사용자와 컴퓨터가 상호작용 합니다. 이러한 인터페이스는 초보자들에게 다소 생소하고 어려운 부분이 있기 때문에 운영체재와 사용자가 사용하기 쉽도록 그래픽 사용자 인터페이스(GUI)를 제공해 주는 툴을 사용하는 것이 좋습니다.
SVN에 대한 자세한 정보와 사용법은 직접 찾아보시기 바랍니다.
Git의 간략한 설명
Git 또한 SVN과 비슷한 버전 관리 프로그램입니다. 하지만 SVN과 달리 속도에 중점을 둔 분산형 버전 관리 시스템(DVCS) 입니다. SVN의 경우에는 Repository라는 하나의 저장소를 가지고 있지만 Git의 경우에는 중간에 Local Repository가 존재하여 대체로 Local에서 작업이 이루어지기 때문에 인터넷을 통한 서버 조회 없이 Local에서 조회하므로 속도면에서 굉장히 빠릅니다. 이외에도 Git만 가지고 있는 강력한 장점이 있습니다.
이러한 장점들로 인해 Athena의 여러 개발팀들도 Git과 SVN을 동시에 사용하거나 SVN에서 Git으로 옮겨가는 추세입니다.
(앞에서 언급한 점 외에도 Git의 중요하고 특별한 점이 있지만 자세한 것은 직접 찾아보시기 바랍니다.)
같이 페이지에서 아래로 내려가면 여러나라 언어로 번역된 Language Pack이 있습니다.
한국어 사용이나 다른 나라 언어로 사용하고 싶다면 자신의 OS에 맞는 Language Pack 설치 파일을 같이 다운받습니다.
Language Pack은 TortoiseSVN이 모두 설치된 다음에 설치해야 하므로 먼저 받은 TortoiseSVN 인스톨러를 먼저 실행합니다.
라이센스 동의 후 Next
기본 설치경로 확인 후 Next
Install 클릭
설치 중에는 실행되고 있는 프로그램을 종료해야하는 부분이 있습니다. 첫번째 옵션은 실행중인 프로그램을 종료하고 필요한 설치를 진행하고 종료했던 프로그램을 다시 시작합니다. 두번째 옵션은 실행중인 프로그램을 종료하지는 않지만 컴퓨터의 재부팅이 필요합니다. 필요한 옵션을 설정하여 설치를 마무리 합니다.
기본적인 설치가 끝난 후에는 필요할 시 Language Pack을 다운 받아 설치합니다.
TortoiseSVN 설치 때와 같이 원하는 옵션을 선택하여 설치를 마무리 합니다.
설치가 제대로 되었다면 마우스 우클릭으로 나타나는 메뉴에 다음과 같이 TortoiseSVN 관련 메뉴가 추가된 것을 알 수 있습니다.
Git을 설치하기에 앞서 SVN을 이용하여 Athena를 다운받아 보겠습니다.
먼저 Athena가 저장될 폴더를 미리 생성합니다.
본인에게 맞게 Athena가 저장될 폴더를 생성한 뒤
폴더를 우클릭하여 나오는 메뉴 중 SVN 체크아웃을 선택합니다.
위와 같이 체크아웃에 대한 창이 뜹니다.
이 때 표시된 곳과 같이 저장소 URL을 넣어야 하는데 이 URL이 Athena가 저장되어 있는 곳입니다. 이 저장소 URL은 여러 Athena팀들이 각자의 홈페이지에 게시하고 있으므로 필요한 Athena를 확인하여 받으면 됩니다.
위와 같은 URL을 사용하면 사용한 URL 하위에 있는 모든 파일을 내려받게 됩니다. 위와 같은 경우에는 3개의 폴더를 내려받게 되는데
.svn의 폴더에는 SVN에 관련된 정보가 들어있는 폴더이고 초록색 바탕의 흰색 체크가 되어있는 폴더가 Hercules팀에서 올려놓은 Athena 프로젝트 입니다. 여기서 branches는 원래의 프로젝트에서 소스코드나 구조, 버전 등이 다르거나 테스트 중인 프로젝트 입니다. 폴더의 이름에서도 알 수 있듯이 Trunk(나무 등의 몸통)에서 Branches(가지들)로 파생되어 나온 것입니다.
다시 말해 크게 필요하지 않거나 원하지 않는 폴더까지 다운 받을 수 있게 됩니다. 이 때에는 TortoiseSVN의 저장소 브라우저를 이용하여 원하는 리비전과 저장소를 탐색할 수 있습니다.
원하는 저장소 URL을 적은뒤 확인을 눌러줍니다.
저장소 브라우저의 초기화가 끝난 후 윈도우 탐색기의 형태로 파일을 조회할 수 있습니다.
즉, 다음과 같은 브라우저에서 원하는 파일 또는 폴더를 선택하여 우클릭으로 바로 체크아웃을 받을 수 있습니다.
또한 우측 상단의 리비전:HEAD를 클릭하여 원하는 리비전(일종의 버전)을 선택하여 파일을 조회하고 체크아웃 받을 수 있습니다.
원하는 리비전을 직접 적어넣어 파일을 볼 수도 있지만
아래의 사진처럼 로그보기를 선택하여 각 리비전 별로 업데이트 또는 달라진 점에 대한 코멘트 등에 대해서 자세히 볼수도 있고 여러 키워드를 이용하여 그 동안의 변경된 점들을 알아볼 수도 있습니다.
마지막으로 Athena의 업데이트가 이루어졌을 때 체크아웃 받은 파일도 업데이트하기 위해서는 체크아웃 받은 폴더를 우클릭하여 SVN업데이트를 해주면 간단하게 업데이트를 할 수 있습니다.
-기타
TortoiseSVN을 통해 체크아웃 받은 모든 파일 및 폴더들은 초록색 원에 흰색 체크가 표시됩니다. 하지만 체크아웃이 아닌 개인적으로 추가한 파일이나 폴더는 이러한 표시가 없고 체크아웃이나 SVN업데이트로 소스나 내용이 변경된 파일이 아닌 개인적으로 변경한 파일이나 폴도는 붉은색 원으로 표시가 됩니다. 또한 체크아웃 받은 폴더의 최상위에 있는 .svn 폴더를 삭제하면 TortoiseSVN의 관리를 받지않는 일반적인 파일 및 폴더로 사용할 수 있습니다.