2013년 7월 22일 월요일

Windows용 Git Server 설치 (bonobo + TortoiseGit)

Git Server 설치

  1. UI를 제공하는 Windows용 Git서버
무료인것만 보면 Bonobo Git Server와 Git Web Access가 있다.
그러나 Git Web Access는 MS SQL Server Express를 추가로 설치해야 한다.
그래서 본 문서에서는 윈도우7 기준으로 Bonobo를 설치 한다.
라이선스는 MIT Liscence를 따르며, 설명은 아래 참조
MIT 허가서는 미국의 매사추세츠 공과대학교에서 자기 학교의 소프트웨어 공학도들을 돕기 위해 개발한 허가서이다. MIT 허가서를 따르는 소프트웨어를 개조한 제품을 반드시 오픈 소스로 배포해야 한다는 규정이 없으며, GNU 일반 공중 허가서의 엄격함을 피하려는 사용자들에게 인기가 있다.
이하 http://ko.wikipedia.org/wiki/MIT_허가서 참조


참고로 패키지는 아니지만 git 서버호스팅을 해주는 업체인 gitorius가 있다.
(사이트링크: https://gitorious.org)



  1. 프로그램 설치
Bonobo는 .NET기반으로 동작하며, 프로그램 설치 전에 아래의 윈도우 패키지가 필요하다.
설치 해야 하는 패키지는 아래와 같다.
Bonobo (git 서버관리 웹)
msysgit (git for windows)
tortoisegit (윈도우용 git클라이언트)
ASP.NET MVC 4
%windir%\Microsoft.NET\Framework\v4.0.30319\aspnet_regiis.exe -ir
IIS (윈도우 웹서버)
  • 3번 메뉴 참조



  1. IIS설치 및 설정
Bonobo를 사용하기 위해서는 IIS가 설치되어 있어야 한다.
IIS 설치를 위해서 제어판>프로그램 및 기능>Windows 기능사용/사용 안 함 메뉴에 들어간다.
Figure 1 IIS 설치
위의 그림과 같이 인터넷 정보 서비스>World Wide Web 서비스와 인터넷 정보 서비스 >웹 관리도구>IIS 관리 콘솔를 선택 후, 확인 버튼 눌러 IIS를 설치한다.
웹 서버의 시작/종료는 제어판 > 관리도구 > IIS(인터넷 정보 서비스)관리자를 선택 후,
아래 그림과 같이 다시 시작/시작/중지 버튼을 통하여 제어할 수 있다.
Figure 2 IIS 관리자


  1. Bonobo 설정
다운로드 받은 bonobo 파일의 압축을 풀고, iis의 root디렉토리로 옮긴다.
IIS의 기본 root 디렉토리는 C:\inetpub\wwwroot 이다.
그리고 bonobo\Repositories 디렉토리에서 속성>보안탭>IIS_IUSRS 사용자 속성 > IIS_IUSRS의 권한에 수정과 쓰기 권한이 있는지 확인하고, 없으면 가능하도록 설정 한다.
git에서 commit한 파일들이 이 디렉토리에 저장된다.
Figure 3 디렉토리 속성 변경



Figure 4 응용프로그램으로 변환
Bonobo 디렉토리 오른 클릭 후, 응용 프로그램을 변환을 선택하면, 그 다음부터 웹사이트에 접속이 가능해진다.
사이트는 로컬에 bonobo를 설치했으므로 http://localhost/Bonobo.Git.Server 로 접속한다.
초기 접속 계정은 admin/ admin 이다.
Figure 5 bonobo 메인화면


프로젝트의 추가는 아래와 같이 로그인 후, Create new repository를 선택하여 생성 가능하며,
리파지토리 description 과 접근 가능한 사용자를 설정하면, 생성이 완료 된다.
Figure 6 로그인 후, 리파지토리 목록


  1. msysgit 설정
msisgit은 다른 설정이 필요 없이, 압축만 풀어주면 된다.


  1. Tortoise GIT의 사용
Tortoise git도 별다른 설정은 필요없고, 설치 후, 프로젝트 디렉토리에 소스를 push/pull을 하면 된다.
Tortoise git의 메뉴는 아래와 같고, 주로 사용하는 매뉴는 pull/fetch/push/diff 정도 일 것이다.
Figure 7 tortoise git 메뉴
A) 로컬 저장소 생성
이제 작성된 소스를 git에 업로드 하기위해 로컬 저장소를 생성해야 한다.
빈 디렉토리를 생성하고, 오른 클릭 후, Git Create repository here를 선택한다.
Figure 8 로컬 저장소 생성 메뉴


생성된 디렉토리 내에서 작업을 할 것이라면 박스에 체크하지 않고 확인을 한다.
생성이 완료되면 다음과 같이 출력된다.
Figure 9 로컬 저장소 생성 완료


B) 리모트 저장소에 파일 추가
생성된 로컬 저장소에 아무데이터나 넣은 파일을 생성하고, 디렉토리 밖에서, 해당 디렉토리를 선택하고, 오른클릭을 하면, commit할 수 있는 메뉴가 보인다.
Figure 10 Sync와 Commit 메뉴


Git Sync 와 Git Commit인데,
Git Sync는 로컬저장소에 commit된 내용을 리모트와 싱크를 맞추기 위해 사용한다.
Git Commit은 로컬에 commit후, remote에 push를 한다.
먼저 Git Commit을 하면 아래와 같은 화면이 나타나는데, Commit 메시지 입력 후, OK버튼을 누르면 로컬에 commit이 된다.
Figure 11 commit을 위한 메시지 설정화면
로컬 commit이 완료되면 아래와 같이 나타나는데 push버튼을 누르면 리모트 서버에 push작업을 수행하게 된다.
Figure 12 로컬 commit 성공


위에서 push버튼을 누르게 되면, 다시 아래의 창이 뜬다.
Figure 13 리모트 서버에 push
Remote의 브랜치와 bonobo에서 설정한 git URL을 작성 후, OK를 누르면 push작업을 수행한다. Git  URL은 bonobo의 UI에서 확인 할 수 있다.
Push 중 아래와 같은 에러나 나면, 주로 url을 잘못 설정하여 난 것이다.
정상적인 경우는 bonobo의 git계정을 물어보는 창이 뜬 후, push가 진행된다.
Figure 14 Commit 에러
이런 경우는 Close를 눌러 작업을 완료하고,
디렉토리 오른 클릭 후, Git sync를 선택하여 해결한다
리모트 URL과 브랜치를 입력 후, push버튼을 눌러주면 git계정을 물어본 후, 진행된다.
Figure 15 Git Sync 화면


Figure 16 Git Sync 진행 시, 계정을 물어본다
진행이 완료되면 아래와 같이 성공 메시지를 볼 수 있다.
Figure 17 Sync 성공
소스의 확인은 bonobo의 web UI에서 확인 할 수 있다.


C) 파일 diff
Commit을 여러 번 진행된 후, 이전버전과 diff 혹은 최신버전과 diff를 하는 경우, diff메뉴를 선택한다.




최신 버전을 수정 후, diff메뉴를 선택하면 아래와 같이 다른 내용이 표시되면 
Figure 18 두 소스간의 diff 항목


리스트 항목을 더블클릭하면 소스비교 화면을 볼 수 있다.
Figure 19 소스비교 화면


다른 버전과의 diff메뉴를 선택하면
지난 commit로그등을 확인하여, 이전 버전과 diff를 할 수 있다.



댓글 3개:

  1. You can try Git Candy, A Git platform based on ASP.NET MVC. Git Candy is better and faster than Bonobo. You are welcome to try Git Candy

    Source on: http://github.com/Aimeast/GitCandy
    Demo on: http://git.53wb.com/

    A database converter on: http://git.53wb.com/Repository/Tree/Bonobo2Candy/

    답글삭제
  2. 오, 좋은 정보 고맙습니다. 이거 원본출저 명시하고 제 카페에 퍼가도 될까요?

    답글삭제
  3. 작성자가 댓글을 삭제했습니다.

    답글삭제