[CVS]대체를 위해 설계된 SourceCodeControlSystem
관련정보
[http://www.onlamp.com/pub/a/onlamp/2004/08/19/subversiontips.html The Top Ten Subversion Tips for CVS Users]
관리자측 사용법
서버측 저장소 만들기. (저장소는 프로젝트마다 하나씩)
# mkdir /home/svn # cd /home/svn/ # svnadmin create --fs-type bdb sample # chmod -R g+w sample
subversion 1.2 부터 fsfs 를 기본으로 합니다. bdb 에 문제가 많아서, fsfs 를 권장하는 분위기더라고요. --neosphere
서버프로그램실행 (기본 3690포트)
# svnserve -d -r /home/svn/
각 저장소별 svnserve.conf 설정파일이 존재하며, 이 파일내에 접근 사용자를 정할 수 있다. 또한 [Apache]에 dav-svn으로 설정하여, 쓰는 방법이 있고, 이 경우에는 아파치설정에 의하며, 80포트를 그대로 이용한다는 장점이 있다.
사용자측 사용법
Properity
[http://svnbook.red-bean.com/en/1.0/ch07s02.html SVN Properity] 참고.
Keyword substitution 사용법.
$ svn propset svn:keywords "Id Rev" *.py
이렇게 하면, 소스코드내에 $Id$, $Rev$ 부분이 해당 버젼의 내용으로 치환된다.
Subversion에서는 원하지 않는 파일을 무시(ignore)하려면, cvs처럼 파일에 기록하는것이 아니라, property를 설정해 주어야 한다. 그 프로퍼티가 svn:ignore 이다. 일단 .cvsignore 처럼 무시할리스트를 만들어 준다. 그리고, 만일 그 파일이 .ignore라고 한다면,
$ svn propset svn:ignore -F .ignore .
이렇게 해준다. 그러면 svn이 무시하고, svn status에서도 ?를 보이며 나타나지 않는다. 다만 나중에 다른 파일을 또 무시하려 할때 전에 있던것도 다시 무시를 해주어야 한다. 즉, property가 누적되지 않는다는거.. 그래서 무시할 파일이 있어야 할 듯...