Gitolite의 설정은 계정 관리 하나만의 문제가 아니다.
Repository 관리를 하기 위한 계정 관리 도구이므로 당연히 Repository 관리와도 밀접한 관계에 있다.


1. Repository

     - 제 포스팅을 따라서 Gitolite를 설치하신 분들은 아래와 같은 디렉토리 구조일 것이다.


     - 관심사항인 것만 표시한 것이다.

     - Gitolite에서 repository에 대해서 제약조건을 두는 것은 다음과 같다.

▷ 모든 repository는 Bare Repository여야 한다.
▷ 모든 repository의 접미사는 ".git"으로 끝나야 한다.




2. Path

     - 어떤 분의 문의로 인해서 알아보게 된 [ repositories ] 변경 방법이다.

     - 즉, 현재는 Gitolite 설치 時 정해진 경로대로 위 그림과 같이 자동으로 셋팅이 되어버린다.
     - 그런데, 다른 디렉토리로 설정하고 싶다거나 다른 디스크로 지정하고 싶을 경우에는 어떻게 해야할까?!

     - 여기저기 찾아본 결과 g3 버전의 Gitolite에서는 변경할 수 없었다.
     - [ $REPO_BASE ] 설정으로 변경할 수 있다고 하는데, 몇 번 테스트 결과 정상적으로 되지 않았다.

     - 그러면 어떻게 이 문제를 해결할 수 있을까?!

     - 뭐, 아시는 분들이라면 바로 알 수 있겠지만 '심볼릭 링크(ln)'를 이용하면 된다.

     - 중요한 것은 "권한 설정"이다.



오늘은 여기까지~ 헛! 또 날이 바뀌었네.... ㅠㅠ
반응형

'SCM > Git-GitHub' 카테고리의 다른 글

Gitolite - Personal Branches  (4) 2012.05.28
Gitolite - user, repo 추가하기  (14) 2012.05.26
Git 계정 관리 - Gitolite 설정하기  (3) 2012.05.19
Git 계정 관리 - Gitolite 설치하기  (23) 2012.05.15
GitWeb + Nginx  (0) 2012.05.09

이번에는 가장 많이 사용하는 프로토콜인 SSH !!!


1. clone


$ git clone ssh://chani@10.0.2.15:/srv/repository/BareRepo.git
$ git clone chani@10.0.2.15:/srv/repository/BareRepo.git

ssh 프로토콜을 사용하여 clone을 하는 방법은 2가지가 있다.

   - git clone ssh://계정@서버주소:리포지토리주소
   - git clone 계정@서버주소:리포지토리주소

하지만, 위의 스크린샷을 보면 에러가 발생한다!!!
그 이유는 ssh server가 없어서이다 ^^



2. install ssh server


$ sudo apt-get install openssh-server

Ubuntu의 경우에 가장 많이 사용하는 'openssh-server'를 설치하자.



3. clone


$ git clone chani@10.0.2.15:/srv/repository/BareRepo.git

실제로 해보면 "ssh://"를 명시하는 방법은 에러가 나곤 한다.
그냥 밑의 방법을 사용하는 것을 추천한다.






SSH를 사용하여 Git의 계정 관리를 하는 것이 가장 일반적이다.
앞에서 언급한 바와 같이 가장 대중적이며 안정적이며 유연한 프로토콜이다.

단점은 SSH를 사용할 경우, anonymous 접근을 허용하기가 난해하다.
그래서 open source project 에는 적용하지 않는다.

 

실제 계정 정책을 적용할 때 어떻게 해야하는지 등에 대한 부분은 다음에 별도로 다루겠다~

퇴근하고, 아가랑 놀고, 씻고....그리고 정리하려면 너무 졸려서리...... ㅠㅠ

반응형

'SCM > Git-GitHub' 카테고리의 다른 글

Git Server - push + 한글  (1) 2012.02.26
Git Server - Remote Connect  (0) 2012.02.25
Git Server - Local  (0) 2012.02.22
Protocol - Git Server  (0) 2012.02.20
Add last commit - git commit --amend  (0) 2012.02.16

작업을 위한 repository가 아닌 서버의 역할을 하기 위한 repository에 대해서 한동안 알아보도록 하겠다.

우선 가장 첫번째로 그냥 바로 사용할 수 있는 Local Protocol 이다!


1. git init --bare

 

$ mkdir  BareRepo.git
$ cd BareRepo.git/
$ git init --bare

Bare repository를 생성하는 것에 대해서 작성한 다음 글을 참조하기 바란다.
   - http://whatwant.tistory.com/328

전에 이야기한 적이 있는 것 같은데, 다시 한 번 말하면
Bare repository는 일반적으로 디렉토리명 꼬리에 '.git'을 붙이곤 한다.


그리고 생성 후에 원활한 테스트를 위해서는 파일 하나는 넣어놓는 것이 좋다.
빈 저장소(empty repository)인 경우에는 테스트할 때 이상 증세를 보일 수도 있다.

예를 들어서 Redmine에서 저장소 셋팅을 제대로 하여도 empty repository인 경우에는
마치 에러가 난 것과 같은 화면을 보여준다.



2. clone


$ cd clone /srv/repository/BareRepo.git
$ cd BareRepo/

Local Protocol을 사용하는 경우에는 repository 주소를 그냥 절대경로로 디렉토리를 적어주면 된다.

   - git clone [directory]

물론 해당 디렉토리에 대한 읽기 권한이 있어야 한다.

repository의 디렉토리명에 ".git"이 붙어 있음에도 생성된 repository를 보면
이름에서 ".git"이 제외되고 생성된 것을 볼 수 있을 것이다.


3. Usage

전에 간단히 언급은 했지만,
Local Protocol은 NFS로 공유 파일 시스템을 셋팅하여서 팀원들끼리 같이 사용하는 형태로 종종 사용은 된다.

권한 문제는 파일시스템의 계정 권한을 그대로 따른다.
물론 push 역시 계정 권한에 따라 허용된다.

혼자서 git을 구성해서 사용할 경우에는 간단히 Local Protocol을 사용하면 된다.

하지만, 일반적으로 사용할 경우 별 문제는 없지만,
만약 원격지에서 접근을 해야하는 경우에는 치명적으로 난감한 상황에 빠지게 된다.

반응형

'SCM > Git-GitHub' 카테고리의 다른 글

Git Server - Remote Connect  (0) 2012.02.25
Git Server - SSH  (2) 2012.02.23
Protocol - Git Server  (0) 2012.02.20
Add last commit - git commit --amend  (0) 2012.02.16
Log - gitk  (0) 2012.02.15

+ Recent posts