사용자 도구

사이트 도구


develop:vcs:subversion:mytips

차이

문서의 선택한 두 판 사이의 차이를 보여줍니다.

차이 보기로 링크

다음 판
이전 판
develop:vcs:subversion:mytips [2008/09/16 14:05]
starlits 새로 만듬
develop:vcs:subversion:mytips [2016/04/28 15:06] (현재)
starlits [서버와 버젼확인]
줄 1: 줄 1:
-====== Subversion Command ====== +====== 서브버젼(Subversion) 명령어 ======
-  - 개인적으로 자주 이용하는 명령을 모아두었다.+
  
-  - 현재까지 Repository에 올라간 로그기록을 보여준다. <code> $ svn log </code> +===== 목적 ===== 
 +  - 개인적으로 자주 이용하는 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 명령을 이용한다.) <code> 
 +# htpasswd /etc/apache2/dav_svn.passwd starlits 
 +</code> 
 +  - **계정삭제**(vi로 /etc/apache2/dav_svn.passwd 파일을 열어 계정이 있는 라인 삭제) 
 +  - **계정암호변경** 
 +    - 추가와 명령이 동일하다. 
 +    - 아이디가 존재하면 암호만 변경된다. <code> 
 +# htpasswd /etc/apache2/dav_svn.passwd starlits 
 +</code> 
 + 
 + 
 +==== 프로젝트 생성 ==== 
 +  - beflyt 라는 프로젝트 디렉토리를 만든다. <code> 
 +# svnadmin create /data/vcs/svn/beflyt 
 +</code> 
 +  - apache2에서 사용할 수 있도록 권한을 부여한다. <code> 
 +# cd /data/vcs/svn 
 +# chown -R www-data.www-data beflyt/ 
 +</code> 
 +  - 웹브라우저를 열어서 확인해 본다. <code> 
 +http://subversion.adminschool.net/svn/beflyt 
 +</code> 
 + 
 +==== 프로젝트 삭제 ==== 
 +  - /data/vcs/svn 아래의 프로젝트(예 beflyt)를 삭제하면 된다. <code> 
 +# cd /data/vcs/svn 
 +# rm -rf beflyt 
 +</code> 
 + 
 +===== 개발(Development) ===== 
 +==== Import Project ==== 
 +  - 버젼관리할 소스 디렉토리로 이동한다. 
 +  - **New Project**라는 이름으로 새로운 프로젝트를 최초 등록(Import) 시킨다. <code> 
 +# cd /path/to/projectname 
 +# svn import -m "New Project" . svn://HostName/projectname/trunk 
 +or 
 +# svn import -m "New Project" . http://HostName/svn/projectname/trunk 
 +</code> 
 + 
 +==== Create tag, branch directory ==== 
 +  - 테그(tag) 디렉토리를 생성한다. <code> 
 +# svn mkdir -m "Create tags directory" svn://HostName/projectname/tags 
 +or 
 +# svn mkdir -m "Create tags directory" http://HostName/svn/projectname/tags 
 +</code> 
 +  - 브런치(branches) 디렉토리를 생성한다. <code> 
 +# svn mkdir -m "Create branches directory" svn://HostName/projectname/branches 
 +or 
 +# svn mkdir -m "Create branches directory" http://HostName/svn/projectname/branches 
 +</code> 
 + 
 + 
 +==== Checkout Project ==== 
 +  - svn 서버를 이용할 경우 <code> $ svn co svn://subversion.adminschool.net/projectname/trunk projectname </code> 
 +  - http를 이용하는 경우 <code> $ svn co http://subversion.adminschool.net/svn/projectname/trunk projectname </code> 
 +  - OS 계정과 다른 계정으로 가져올때 <code> $ svn --username=starlits co http://subversion.adminschool.net/svn/projectname/trunk projectname </code> 
 + 
 +==== Update ==== 
 +  - Subversion Server에 변경된 파일이 있는지 확인하고, 최신정보를 반영한다. <code> $ svn update </code> 
 + 
 +==== commit ==== 
 +  - 변경된 파일 반영하기 <code> $ svn commit </code> 
 + 
 +==== checkout/update/commit 차이 ==== 
 +== == 
 +^ Checkout | Repository로부터 내용을 꺼내오는 작업 (co 라고 줄여쓸 수 있다.) | 
 +^ Commit   | Checkout된 내용을 수정한 뒤에 다시 Repository로 보내는 작업 | 
 +^ Update   | Checkout 한 뒤로 다른 사람들이 commit한 내용을 추가적으로 checkout 하는 작업 | 
 + 
 +==== add ==== 
 +  - 파일/디렉토리 추가하기 <code> $ svn add {filename|directory} </code> 
 + 
 +==== Diff ==== 
 +  - 현재 revision이 5 일 경우, revision 4와 차이를 출력한다. <code> 
 +$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; 
 + } 
 +</code> 
 +  - revision 4와 5를 비교 하고 싶으면 **''-''-revision 4:5 (-r 4:5)**로 하면 된다. \\ **''-''-revision 8:10** 도 가능하다. <code> 
 +$ 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; 
 + } 
 +</code> 
 + 
 +==== History View ==== 
 +  - 현재까지 Repository에 올라간 로그기록을 보여준다. <code> $ svn log </code>
   - 현재소스와 Repository의 소스상의 차이를 보여준다. <code> $ svn diff </code>   - 현재소스와 Repository의 소스상의 차이를 보여준다. <code> $ svn diff </code>
   - 로그기록을 ChangeLog 파일로 만들어 준다. <code> $ svn2cl </code>   - 로그기록을 ChangeLog 파일로 만들어 준다. <code> $ svn2cl </code>
 +
 +==== 과거소스 가져오기 ====
   - 현재 최신 소스를 받아온다. <code> $ svn co http://svn.adminschool.net/svn/beflyt/trunk beflyt </code>   - 현재 최신 소스를 받아온다. <code> $ svn co http://svn.adminschool.net/svn/beflyt/trunk beflyt </code>
   - 2008년 1월 1일 소스를 받아온다. <code> $ svn co -r {20080101} http://svn.adminschool.net/svn/beflyt/trunk beflyt </code>   - 2008년 1월 1일 소스를 받아온다. <code> $ svn co -r {20080101} http://svn.adminschool.net/svn/beflyt/trunk beflyt </code>
 +  - **Revision 3** 소스를 받아온다. <code> $ svn co -r 3 http://svn.adminschool.net/svn/beflyt/trunk beflyt </code>
  
 +==== 서버와 버젼확인 ====
 +  - SVN 서버에 로컬에 있는 파일보다 최신버젼이 있는지 확인한다. <code>
 +svn status -u
 +</code>
  
 +==== tags 사용법 ==== 
 +  - http://blog.naver.com/joycestudy/100097622001
develop/vcs/subversion/mytips.1221541516.txt.gz · 마지막으로 수정됨: 2008/09/16 14:05 저자 starlits