문서의 선택한 두 판 사이의 차이를 보여줍니다.
양쪽 이전 판 이전 판 다음 판 | 이전 판 | ||
develop:vcs:subversion:mytips [2008/09/16 14:05] starlits |
develop:vcs:subversion:mytips [2016/04/28 15:06] (현재) starlits [서버와 버젼확인] |
||
---|---|---|---|
줄 1: | 줄 1: | ||
- | ====== Subversion | + | ====== |
===== 목적 ===== | ===== 목적 ===== | ||
- | |||
- 개인적으로 자주 이용하는 Subversion 명령을 모아두었다. | - 개인적으로 자주 이용하는 Subversion 명령을 모아두었다. | ||
- | ===== 명령 | + | ===== 관리(Administration) |
- | - 현재까지 Repository에 올라간 로그기록을 보여준다. < | + | ==== 준비 ==== |
+ | - apache2 + subversion 을 사용하는 것을 기준으로 설명합니다. | ||
+ | - Debian 서버 기준이며, | ||
+ | - 경로와 파일은 아래와 같다고 가정한다. | ||
+ | == == | ||
+ | ^ Subversion URL | http:// | ||
+ | ^ 기본디렉토리 | / | ||
+ | ^ 아파치설정 | / | ||
+ | ^ 계정정보 | / | ||
+ | |||
+ | ==== 사용자계정 ==== | ||
+ | - Subversion 계정관리는 / | ||
+ | - **계정추가**(htpasswd 명령을 이용한다.) < | ||
+ | # htpasswd / | ||
+ | </ | ||
+ | - **계정삭제**(vi로 / | ||
+ | - **계정암호변경** | ||
+ | - 추가와 명령이 동일하다. | ||
+ | - 아이디가 존재하면 암호만 변경된다. < | ||
+ | # htpasswd / | ||
+ | </ | ||
+ | |||
+ | |||
+ | ==== 프로젝트 생성 ==== | ||
+ | - beflyt 라는 프로젝트 디렉토리를 만든다. < | ||
+ | # svnadmin create / | ||
+ | </ | ||
+ | - apache2에서 사용할 수 있도록 권한을 부여한다. < | ||
+ | # cd / | ||
+ | # chown -R www-data.www-data beflyt/ | ||
+ | </ | ||
+ | - 웹브라우저를 열어서 확인해 본다. < | ||
+ | http:// | ||
+ | </ | ||
+ | |||
+ | ==== 프로젝트 삭제 ==== | ||
+ | - / | ||
+ | # cd / | ||
+ | # rm -rf beflyt | ||
+ | </ | ||
+ | |||
+ | ===== 개발(Development) ===== | ||
+ | ==== Import Project ==== | ||
+ | - 버젼관리할 소스 디렉토리로 이동한다. | ||
+ | - **New Project**라는 이름으로 새로운 프로젝트를 최초 등록(Import) 시킨다. < | ||
+ | # cd / | ||
+ | # svn import -m "New Project" | ||
+ | or | ||
+ | # svn import -m "New Project" | ||
+ | </ | ||
+ | |||
+ | ==== Create tag, branch directory ==== | ||
+ | - 테그(tag) 디렉토리를 생성한다. < | ||
+ | # svn mkdir -m " | ||
+ | or | ||
+ | # svn mkdir -m " | ||
+ | </ | ||
+ | - 브런치(branches) 디렉토리를 생성한다. < | ||
+ | # svn mkdir -m " | ||
+ | or | ||
+ | # svn mkdir -m " | ||
+ | </ | ||
+ | |||
+ | |||
+ | ==== Checkout Project ==== | ||
+ | - svn 서버를 이용할 경우 < | ||
+ | - http를 이용하는 경우 < | ||
+ | - OS 계정과 다른 계정으로 가져올때 < | ||
+ | |||
+ | ==== Update ==== | ||
+ | - Subversion Server에 변경된 파일이 있는지 확인하고, | ||
+ | |||
+ | ==== commit ==== | ||
+ | - 변경된 파일 반영하기 < | ||
+ | |||
+ | ==== checkout/ | ||
+ | == == | ||
+ | ^ Checkout | Repository로부터 내용을 꺼내오는 작업 (co 라고 줄여쓸 수 있다.) | | ||
+ | ^ Commit | ||
+ | ^ Update | ||
+ | |||
+ | ==== add ==== | ||
+ | - 파일/ | ||
+ | |||
+ | ==== Diff ==== | ||
+ | - 현재 revision이 5 일 경우, revision 4와 차이를 출력한다. < | ||
+ | $svn diff --revision 4 sample.c | ||
+ | Index: sample.c | ||
+ | =================================================================== | ||
+ | --- sample.c | ||
+ | +++ sample.c | ||
+ | @@ -2,7 +2,8 @@ | ||
+ | |||
+ | int main() | ||
+ | { | ||
+ | - printf(" | ||
+ | + printf(" | ||
+ | + printf(" | ||
+ | |||
+ | | ||
+ | } | ||
+ | </ | ||
+ | - revision 4와 5를 비교 하고 싶으면 **'' | ||
+ | $ svn diff --revision 4:5 sample.c | ||
+ | Index: sample.c | ||
+ | =================================================================== | ||
+ | --- sample.c | ||
+ | +++ sample.c | ||
+ | @@ -2,7 +2,8 @@ | ||
+ | |||
+ | int main() | ||
+ | { | ||
+ | - printf(" | ||
+ | + printf(" | ||
+ | + printf(" | ||
+ | |||
+ | | ||
+ | } | ||
+ | </ | ||
+ | |||
+ | ==== History View ==== | ||
+ | | ||
- 현재소스와 Repository의 소스상의 차이를 보여준다. < | - 현재소스와 Repository의 소스상의 차이를 보여준다. < | ||
- 로그기록을 ChangeLog 파일로 만들어 준다. < | - 로그기록을 ChangeLog 파일로 만들어 준다. < | ||
+ | |||
+ | ==== 과거소스 가져오기 ==== | ||
- 현재 최신 소스를 받아온다. < | - 현재 최신 소스를 받아온다. < | ||
- 2008년 1월 1일 소스를 받아온다. < | - 2008년 1월 1일 소스를 받아온다. < | ||
+ | - **Revision 3** 소스를 받아온다. < | ||
+ | ==== 서버와 버젼확인 ==== | ||
+ | - SVN 서버에 로컬에 있는 파일보다 최신버젼이 있는지 확인한다. < | ||
+ | svn status -u | ||
+ | </ | ||
+ | ==== tags 사용법 ==== | ||
+ | - http:// |