1 / 16

Subversion in Linux

Subversion in Linux. 홍 일 선 2010. 8. 2. Subversion?!. 소프트웨어 버전 관리 툴 필요성 개발 버전과 릴리즈 버전이 섞이지 않고 쉽게 관리 할 수 있음 소스를 잘못 수정했을 때 되돌리기가 쉬움 수정 , 추가 , 삭제 등의 기록이 남아 변경사항을 추적하기 쉬움 따로 백업을 하지 않아도 됨. Vocabulary. 저장소 (Repository) 모든 프로젝트 소스들이 보관되는 곳 소스의 변경사항까지도 저장됨 체크아웃 (Check out)

posy
Download Presentation

Subversion in Linux

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. Subversion in Linux 홍 일 선 2010. 8. 2

  2. Subversion?! • 소프트웨어 버전 관리 툴 • 필요성 • 개발 버전과 릴리즈 버전이 섞이지 않고 쉽게 관리 할 수 있음 • 소스를 잘못 수정했을때 되돌리기가 쉬움 • 수정, 추가, 삭제 등의 기록이 남아 변경사항을 추적하기 쉬움 • 따로 백업을 하지 않아도 됨

  3. Vocabulary • 저장소(Repository) • 모든 프로젝트 소스들이 보관되는 곳 • 소스의 변경사항까지도 저장됨 • 체크아웃(Check out) • 저장소에서 소스를 받아오는 것 • 커밋(Commit) • 체크아웃 한 소스를 수정, 파일 추가, 삭제 등을 한 뒤 저장소에 갱신 하는 것 • CVS와 달리 SVN은 전체 리비전이1 증가함 • 리비전(Revision) • 프로젝트의 소스의 버전을 의미 • 소스 파일 등을 수정하여 커밋하게 되면 숫자가 증가함

  4. Vocabulary(cont.) • 임포트(Import) • 아무것도 들어있지 않은 저장소에 맨 처음 소스를 넣는 작업 • Add를 통하여도 가능하기 때문에 잘 쓰이지는 않음 • 익스포트(Export) • 체크아웃과 달리 버전 관리 파일들을 뺀 순수한 소스 파일만을 받음 • 소스를 압축하여 릴리즈 할 때 사용

  5. Directory of Repository • Trunk • 프로젝트에서 중심이 되는 디렉토리 • 모든 개발 작업은 여기에서 • Branches • 따로 개발할 프로젝트의 프로젝트 • 이 안에서만 개발 • Tags • 정기적으로 릴리즈 할 때 사용 • 발표한 소스를 따로 저장하는 공간

  6. SVN 관리자 명령 • svnadmin • svn관리자를 위한 명령어 • 저장소를 만들고 계정을 관리하는 등의 일에 쓰인다 • 저장소 만들기 • svnadmin create --fs-type fsfssample • sample이라는 프로젝트(디렉토리)를 만든다. • svn관리를 위한 여러파일들이디렉토리에 생성된다. • --fs-type 옵션은 저장소 관리 DB의 종류를 결정한다. • fsfs : 파일 시스템으로 관리 • bdb : Berkeley DB 형식으로 관리

  7. SVN 사용자 설정 • 리눅스 환경에서 svn의 로그 기록을 위한 디폴트 에디터를 설정 • 환경 변수를 설정 • .profile이나 .bash_profile등의 환경 변수 지정 파일을 수정 • vim 에디터를 이용할 시 • SVN_EDITOR=/usr/bin/vim • export SVN_EDITOR

  8. SVN 사용자 명령 • 저장소 확인 하기 • 저장소의 디렉토리나 파일을 확인 • svn list http://(서브버전 도메인)/svn/sample/trunk • 저장소에 디렉토리 추가하기 • 저장소에 디렉토리를 새로 만든다 • svnmkdir http://(서브버전 도메인)/svn/sample/trunk • sample프로젝트에 trunk 디렉토리를만든다 • 저장소에 Import 하기 • import는 디렉토리 단위로 가능 • svn import sampledir http://(서브버전 도메인)/svn/sample/trunk • sampledir안에 있는 파일을 trunk에 복사 • sampledir은 올라가지 않음

  9. SVN 사용자 명령(cont.) • 체크아웃하기 • svn checkout http://(서브버전 도메인)/svn/sample/trunk sample • checkout은 co로 줄일 수 있음 • sample 디렉토리에trunk안의 내용(하위폴더 포함) 소스파일 다운받음 • .svn이라는 숨겨진 디렉토리는 지우면 안됨 • 업데이트하기 • 체크아웃해서 받은 소스를 저장소의 최근 내용으로 업데이트 하는 명령 • svn update • .svn이 있는 경우에 자동으로 최근 소스로 업데이트하여 다운받음 • 커밋하기 • svn commit • commit는 ci로 줄일 수 있음 • 수정한 소스를 저장소에 올림

  10. SVN 사용자 명령(cont.) • 로그 확인하기 • svn log • 각 리비전의 로그를 확인한다 • svn log --revision 5:19 • 리비전5부터 18까지의 로그를 출력 • svn log -r 19:5 • 리비전19부터 5까지 역으로 출력 • svn log -r 8 • 리비전8의 로그를 출력 • svn log filename • 개별 파일의 리비전을 출력 • svn log -r 5 -v • v 옵션은 좀 더 자세한 정보 출력

  11. SVN 사용자 명령(cont.) • 소스 비교하기 • svn diff -r 4 filename • 예전 소스와 지금 소스 파일을 비교한다 • svn diff -r 5:6 filename • 리비전5와 6의 파일을 비교

  12. SVN 사용자 명령(cont.) • 수정한 사람 찾아내기 • svn blame filename • 수정한 사람을 찾아내기 • svn blame -r 4 filename • 특정 리비전을 대상으로 찾아내기

  13. SVN 사용자 명령(cont.) • 파일 잠그기/풀기 • 파일을 다른 사람이 수정하지 못하도록 잠금 • 파일을 잠글 때 잠근 이유를 로그로 기록할 수 있음 • svn lock filename • 파일을 잠금 • svn unlock filename • 파일 잠금 해제 • 파일 추가 • 새 파일을 추가 • svn add filename • 파일을 svn관리에 추가함 • 커밋을 해야만 저장소에 추가됨

  14. SVN 사용자 명령(cont.) • 파일이나 디렉토리 이름 바꾸기 • svn rename oldfilenamenewfilename • 커밋을 해야 완전히 바뀜 • 배포하기 • 릴리즈 버전을 배포한다 • svn export http://(서브버전 도메인)/svn/sample/trunk newdir • 서브버전 관리 .svn디렉토리를 제외하고 가져온다

  15. SVN 사용자 명령(cont.) • branch, tag, copy • 필요한 경우 찾아 보시길~ • 대부분의 사람들은 필요 없음 • 프로젝트 관리자가 주로 사용 • http://www.pyrasis.com/main/Subversion-HOWTO

  16. 마무리 • 버전 관리는 필요하다 • 소스코드의 백업은 필수적이다 • 혼자 프로젝트를 진행할 경우에도 소스코드 관리는 필요하다 • 윈도우 환경에서는 GUI 툴을 이용할 수 있지만, 리눅스 환경에서 개발할 경우에는 svn사용법을 익혀야 한다

More Related