이미 개발된 프로젝트를 svn으로 관리하기
퍼가실때는 출처를 남겨주세요 donzbox.com donzbox.tistory.com
이미 개발한 프로젝트를 뒤늦게 svn으로 관리하기 위해 svn import 해봤자
다시 한번 checkout하지 않는 이상 svn으로 관리되지 않는다.
다음은
기존에 이미 개발된 프로젝트를 checkout 하지 않고 바로 svn으로 관리하는 방법을 소개한다.
-------
설명 시작
-------
1. 서버에 svn이 설치되었다는 전재
svn개념 및 설정은 이전글 참조
2. 현 서비스 중인 소스는 192.168.0.1 서버에, svn은 192.168.0.2 서버에관리함을 전재
3. 이클립스에 svn플러그인 설치 후 확인 하면서 행함
-----------
svn 서버측 설정
-----------
1. 총괄관리 대상의 svn상의 톱 디렉토리 설정(192.168.0.2에서)
svnserve -d -r /home/project/svn/
2. svn상에 각각의 프로젝트의 디렉토리 설정(192.168.0.2에서)
svnadmin create --fs-type fsfs 프로젝트명
(1번에서 지정한 패스 이하에 프로젝트명과 같은 디렉토리가 생김)
3. 각 프로젝트의 svn접속시 권한 및 패스워드 설정(192.168.0.1에서)
vi 프로젝트1패스/conf/svnserve.conf
vi 프로젝트1패스/conf/passwd
4. svn상에 트렁크, 브런치, 태그 디렉토리 생성
svn mkdir svn://192.168.0.2/프로젝트명/trunk
svn mkdir svn://192.168.0.2/프로젝트명/branches
svn mkdir svn://192.168.0.2/프로젝트명/tags
-----------
기존 서버측 설정
-----------
1. 프로젝트 폴더로 이동
2. 기존에 남겨져 있을지도 모를 찌꺼기 .svn파일 삭제
find ./ -type d -name '.svn' | xargs rm -rf
3. svn상의 트렁크 디렉토리이하의 디렉토리 생성
svn으로 날짜별로 관리할 실질적인 디렉토리
svn mkdir svn://192.168.71.7/프로젝트명/trunk/20100128
svn mkdir svn://192.168.71.7/프로젝트명/trunk/20100128/프로젝트명
4. 프로젝트 최상단 폴더에서 체크아웃
svn checkout svn://192.168.71.7/프로젝트명/trunk/20100128/프로젝트명 ./
5. 관리가 필요없는 디렉토리는 제외시킴
꼭때기 부터 관리제외 대상 디렉토리 까지 svn mkdir 을 행함
ex)
svn mkdir svn://192.168.71.7/프로젝트명/trunk/20100128/프로젝트명/web
cd ./프로젝트명/web
svn checkout svn://192.168.71.7/프로젝트명/trunk/20100128/프로젝트명/web ./
svn mkdir svn://192.168.71.7/프로젝트명/trunk/20100128/프로젝트명/web/cache
cd ./프로젝트명/web/cache
svn checkout svn://192.168.71.7/프로젝트명/trunk/20100128/프로젝트명/web/cache ./
cd ..
svn propedit svn:ignore ./cache
$편집화면에서 모든것(*)지정 후
*(꼭 엔터로 한칸 내린 후)
(저장종료)
svn commit ./cache (반드시 commit 해야만 적용된다)
svn add ./* (web포함 이하의 디렉토리가 add됨, web위로는 포함제외)
svn commit
이후 web 상단은 commit만으로 svn에 등록됨
----------------------------------------------
기존에 있던 svn:ignore 속성을 수정하려면
$ svn propedit svn:ignore .
6. 현 디렉토리 이하를 전부 추가
7. 커밋
svn commit
8. 브런치에 복사
실제 프로젝트가 있는 위치로 이동 후
svn copy svn://192.168.71.7/프로잭트명/trunk svn://192.168.71.7/프로잭트명/branches
9. 태그에 복사
실제 프로젝트가 있는 위치로 이동 후
svn copy svn://192.168.71.7/프로잭트명/trunk/20100128 svn://192.168.71.7/프로잭트명/tags/0.1
10. svn으로부터 릴리즈 export
svn export svn://192.168.71.7/프로잭트명/tags/0.1/sfproject ./