develop:vcs:subversion:mytips
문서의 이전 판입니다!
목차
Subversion Command
목적
- 개인적으로 자주 이용하는 Subversion 명령을 모아두었다.
관리(Administration)
준비
- apache2 + subversion 을 사용하는 것을 기준으로 설명합니다.
- Debian 서버 기준이며, 패키지로 설치한 것입니다.
- 경로와 파일은 아래와 같다고 가정한다.
| Subversion URL | http://subversion.adminschool.net |
|---|---|
| 기본디렉토리 | /data/vcs/svn |
| 아파치설정 | /etc/apache2/mods-available/dav_svn.conf |
| 계정정보 | /etc/apache2/dav_svn.passwd |
사용자계정
- Subversion 계정관리는 /etc/apache2/dav_svn.passwd 에서 관리한다.
- 계정추가(htpasswd 명령을 이용한다.)
# htpasswd /etc/apache2/dav_svn.passwd starlits
- 계정삭제(vi로 /etc/apache2/dav_svn.passwd 파일을 열어 계정이 있는 라인 삭제)
- 계정암호변경
- 추가와 명령이 동일하다.
- 아이디가 존재하면 암호만 변경된다.
# htpasswd /etc/apache2/dav_svn.passwd starlits
프로젝트 생성
- beflyt 라는 프로젝트 디렉토리를 만든다.
# svnadmin create /data/vcs/svn/beflyt
- apache2에서 사용할 수 있도록 권한을 부여한다.
# cd /data/vcs/svn # chown -R www-data.www-data beflyt/
- 웹브라우저를 열어서 확인해 본다.
http://subversion.adminschool.net/svn/beflyt
프로젝트 삭제
- /data/vcs/svn 아래의 프로젝트(예 beflyt)를 삭제하면 된다.
# cd /data/vcs/svn # rm -rf beflyt
개발(Development)
Import Project
- 새로운 프로젝트를 New Project라는 이름으로 임포트 시킨다.
# cd /path/to/projectname # svn import -m "New Project" . svn://HostName/projectname/trunk or # svn import -m "New Project" . http://HostName/svn/projectname/trunk
Create tag, branch directory
- 테그(tag) 디렉토리를 생성한다.
# svn mkdir -m "Create tags directory" svn://HostName/projectname/tags or # svn mkdir -m "Create tags directory" http://HostName/svn/projectname/tags
- 브런치(branches) 디렉토리를 생성한다.
# svn mkdir -m "Create branches directory" svn://HostName/projectname/branches or # svn mkdir -m "Create branches directory" http://HostName/svn/projectname/branches
Checkout Project
- svn 서버를 이용할 경우
$ svn co svn://HostName/projectname/trunk projectname
- http를 이용하는 경우
$ svn co http://HostName/svn/projectname/trunk projectname
- OS 계정과 다른 계정으로 가져올때
$ svn --username=starlits co http://HostName/svn/projectname/trunk projectname
Diff
- 현재 revision이 5 일 경우, revision 4와 차이를 출력한다.
$svn diff --revision 4 sample.c Index: sample.c =================================================================== --- sample.c (revision 4) +++ sample.c (working copy) @@ -2,7 +2,8 @@ int main() { - printf("Sample Program Version 0.1\n"); + printf("Sample Program Version 0.2\n"); + printf("Hello Subversion\n"); return 0; } - revision 4와 5를 비교 하고 싶으면 –revision 4:5 (-r 4:5)로 하면 된다.
–revision 8:10 도 가능하다.$ svn diff --revision 4:5 sample.c Index: sample.c =================================================================== --- sample.c (revision 4) +++ sample.c (revision 5) @@ -2,7 +2,8 @@ int main() { - printf("Sample Program Version 0.1\n"); + printf("Sample Program Version 0.2\n"); + printf("Hello Subversion\n"); return 0; }
History View
- 현재까지 Repository에 올라간 로그기록을 보여준다.
$ svn log
- 현재소스와 Repository의 소스상의 차이를 보여준다.
$ svn diff
- 로그기록을 ChangeLog 파일로 만들어 준다.
$ svn2cl
과거소스 가져오기
- 현재 최신 소스를 받아온다.
$ svn co http://svn.adminschool.net/svn/beflyt/trunk beflyt
- 2008년 1월 1일 소스를 받아온다.
$ svn co -r {20080101} http://svn.adminschool.net/svn/beflyt/trunk beflyt - Revision 3 소스를 받아온다.
$ svn co -r 3 http://svn.adminschool.net/svn/beflyt/trunk beflyt
develop/vcs/subversion/mytips.1332994169.txt.gz · 마지막으로 수정됨: 저자 starlits
