[SVN][Serve-Client]간단한 사용법


=================================================================================
Ubuntu 9.04 대한 설치 방법입니다.
svn:// 프로토콜을 이용한 접근 방식입니다.

참고 사이트
http://www.joinc.co.kr/modules/moniwiki/wiki.php/Site/SVN/Tutorial 
http://www.pyrasis.com/main/Subversion-HOWTO#s-4.1
=================================================================================
1. svn 설치
sudo apt-get install subversion


2. svn-serve 설정
root 설정 및 svnserve 구동:
 svnserve -d -r /home/svn/ [ /home/svn/ -> 192.xxx.xxx.xxx/ ]
 netstat -na | grep 3690 으로 구동 확인 가능.

repository 생성 :
 svnadmin create --fs-type fsfs /home/svn/sample
 
repository 설정 : (접근 허용 계정 생성 및 패스워드 설정)
 sample/conf/svnserve.conf 파일 수정. [ password-db = passwd ]
 sample/conf/passwd 파일 수정. [ username = password 추가(guest 생성) ]
 
$ svn mkdir svn://localhost/sample/trunk --username passwd-user
$ svn mkdir svn://localhost/sample/branches --username passwd-user
$ svn mkdir svn://localhost/sample/tags --username passwd-user
(만든 list를 보고 싶다면, > svn list svn://localhost/sample/ )


3. svn-client 사용
 checkout : svn checkout svn://localhost/sample
 commit : svn commit --username guest
 update : svn update
 add new file : svn add new_file //add -> commit 필요.
list : svn list svn://localhost/sample

4. svn dump
$sudo svnadmin dump [svn-path] > [dump_file]
예 : sudo svnadmin dump /home/svn/test > test_svn.dump

5. svn load
$sudo svnadmin load [svn-path] < [dump_file]
예 : sudo svnadmin load /home/svn/test < test_svn.dump

나만의 tip
- eclipse plugin : svn 사용팁
( 업데이트 할 소스, 마우스 우측 클릭>Tearm>Synchronize with Repository )
- Mark as Merged
충돌 후 머지를 할 경우, 소스 비교 후 머지 할 때 사용

- Override and Update
로컬 내용을 무시하고, 서버 내용으로 update

- Revert (되돌리기)
로컬 작업을 버리고, 서버로 되돌아간다.(바로 전 리비젼)

- Override and Commit
로컬 내용으로 서버교체(응용으로 파일 삭제 후 History로 파일 복구 -> 해당 파일 강제 commit )

relocate ( 서버 주소 변경 )

switch ( 작업 위치 변경 )

- .svn 파일 전부 지우기(출처 : http://forum.falinux.com/zbxe/?document_srl=522345 )
find . -name .svn -print0 | xargs -0 rm -rf


- 커밋 실수 되돌리기
( 해당 커맨드 입력 후 다시 commit을 해야한다. 잘못한 커밋 내용은 기록에 남는다.)
svn merge -r COMMITTED:PREV .

( 다른 방법으로 특정 리비젼 export받고 로컬 소스 백업 후 override해서 소스를 엎는다. 그 후 svn 커밋을 강제로 한다.)