처음으로 댓글달기 무료구독 트위터
   

우분투에 Eclipse를 설치하고 CDT(C/C++ Development Tool) 플러그인을 설치하는 것을 지난글에서 간단히 살펴보았다.
이번에는 SVN(Subversion)이라는 버전관리시스템을 설치하고 설정하는 것을 해보겠다.

SVN(Subversion) 은 무엇?


Subversion은 공개된 오프소스 버전관리 시스템이다. 리파지토리라고 하는 중앙 저장소에 파일과 디렉토리에 적용된 모든 변경사항을 시간의 흐름에 따라 기록하는 타임머신이라고 할 수 있다. 따라서 사용자들은 SVN을 통해서 과거의 데이터를 열람하거나 특정 시점으로 복구하는 것이 가능하다. 또한 다른 사람들과의 협업을 지원하기 때문에 다수의 사람의 동일한 데이터를 각자의 머신에서 작업하고 관리하고 남이 작업한 내용을 병합(Merge)하여 SVN에 체크인 할 수 있다.

SVN은 개발자들만이 사용하는 버전관리 시스템이 아닌 범용적인 파일관리 시스템이라고 할 수 있다. 즉, 미디어 파일과 같은 종류에도 적용할 수 있다.

SVN 이전에도 CVS(Concurrent Version System)라는 버전관리 도구가 있었다. 하지만 CVS는 등록된 디렉토리나 파일의 변경 및 이동이 불가능했고 파일단위의 버전만 관리되는 것과 같은 한계가 있었다.

SVN은 CVS에 비해 다음과 같은 장점이 있다.

  1. 앞서 이야기한 바와 같이 범용적인 파일관리 시스템으로서 소스파일 뿐만아니라 바이너리(문서/미디어)도 지원한다.
  2. 커밋의 단위가 파일이 아닌 체인지셋 단위이다. 즉 한번 커밋할때 하나의 리비젼[각주:1]이 올라간다.
  3. 빠른 브랜칭 및 태깅시간. SVN은 각 리비젼의 차이(Difference)만을 저장한다. 따라서 브랜치와 태그 시에는 차이(Diff~)가 없이 이루어지므로 빠르게 동작한다.
  4. 파일 및 디렉토리의 이름 변경 및 이동을 지원한다.
  5. CVS와 개념 및 사용법이 유사하기때문에 CVS에서 SVN으로 쉽게 옮겨올 수 있다.
  6. 원자적 커밋을 지원한다. 즉, 커밋중에 에러 발생시에는 커밋 발생 이전의 상태로 완벽히 롤백된다.

SVN 설치 및 설정


  • $sudo apt-get install subversion                                     // SVN 설치
  • #mkdir ~/repository                                                    // 리파지토리 위치가 될 디렉토리를 생성
  • #svnadmin create -fs-type fsfs ~/repository/SampleProject  // 일반 파일시스템 타입으로 repository 생성
  • #svnserv -d -r ~/repository                                           // SVN 데몬 기동
  • #netstat -na | grep 3690                                             // SVN 데몬 기동 확인

SVN 데몬이 성공적으로 기동이 되었다면 ~/repository/project/conf/svnserve.conf 파일의 [general] 섹션에서 #password-db = passwd 항목을 찾아 주석을 제거하여 패스워드 파일을 관리하도록 한다. 그런다음 ~/repository/project/conf/passwd 파일을 열어 feelnet = 1234 형태로 아이디와 패스워드를 등록한다.

이제 마지막으로 아래와 같이 SVN Repository에서 사용할 trunk[각주:2], branch[각주:3], tag[각주:4]를 생성하면 subversion을 사용할 준비가 끝난다.

  • #svn mkdir svn://localhost/SampleProject/trunk --username feelnet
  • #svn mkdir svn://localhost/SampleProject/branches --username feelnet
  • #svn mkdir svn://localhost/SampleProject/tags --username feelnet

다음글에서는 Eclipse에서 SVN과 연동하는 subclipse를 살펴보고 SVN에 Check-In/Out 하는 과정을 보도록 하겠다.

 

이 글은 스프링노트에서 작성되었습니다.


  1. SVN에서는 커밋할때마다 저장소의 리비젼이 하나씩 증가한다. 즉 최종 리비젼이 100이라면 현재 저장소에 등록된 프로젝트가 100번 커밋이 이루어졌음을 의미한다. [본문으로]
  2. 프로젝트에서 가장 중심이 되는 디렉토리로 모든 프로그램의 개발 작업은 trunk 디렉토리에서 이루어진다. [본문으로]
  3. 프로젝트안의 작은 프로젝트로 trunk에서 파생되어 별도로 개발되는 경우에 branch를 생성하여 개발하게 된다. [본문으로]
  4. 프로젝트의 정기적으로 릴리즈할때 1.0, 2.0 과 같은 방식으로 꼬리표를 붙여서 보관하는 장소이다. [본문으로]

제글이 마음에 드셨다면, 망설이지 말고 RSS로 무료구독하세요. ^^

올블로그추천버튼 블코추천버튼 구글리더기구독버튼 한RSS구독버튼
blog comments powered by Disqus
Related Posts Plugin for WordPress, Blogger...
  1. Favicon of http://mahjongg.oyunyolu.net/ mahjong oyunları 2011/08/19 08:10  address modify / delete reply

    좋은 텍스트가 감사합니다!

  2. Favicon of http://www.ayimpex.com/others/Towels.html Jacquard Face Towels 2011/11/08 14:58  address modify / delete reply

    좋 은 정보 머릿속 에 기억 했 다

  3. Favicon of http://bocadely.com/ 인형 2011/11/21 21:27  address modify / delete reply

    매도 먼저 맞는 게 낫다

  4. Favicon of http://inoline.com/ 유병수 2011/11/23 12:37  address modify / delete reply

    손바닥으로 하늘을 가리려한다

  5. Favicon of http://thefreakyfriends.com 김성환 2011/12/07 20:08  address modify / delete reply

    멋진 작품을 계속

  6. Favicon of http://solnebane.com 인형 2012/01/05 08:48  address modify / delete reply

    과부 사정 홀아비가 안다

  7. Favicon of http://thehamletnews.com 박기동 2012/01/07 03:29  address modify / delete reply

    손바닥으로 하늘을 가리려한다

  8. Favicon of http://almateutli.com 천사 2012/01/11 06:21  address modify / delete reply

    가는말이 고와야 오는말이 곱다

  9. Favicon of http://facebulgaria.com 고명진 2012/01/12 23:00  address modify / delete reply

    원숭이도 나무에서 떨어진다.

  10. Favicon of http://walltownshipchamber.com 켄달 2012/03/17 08:55  address modify / delete reply

    그것은 오해였습니다.

  11. Favicon of http://bart-simpson.podzone.net 스칼렛 2012/04/03 19:17  address modify / delete reply

    혼자 내버려 두십시오.

  12. Favicon of http://housemy.selfip.biz 페이지 2012/04/05 18:56  address modify / delete reply

    저는 채식주의자입니다.

  13. Favicon of http://henrik.is-a-anarchist.com Ashlyn 2012/04/06 07:52  address modify / delete reply

    좋은 아침입니다.

  14. Favicon of http://otto.dnsalias.net 한나 2012/04/19 02:01  address modify / delete reply

    좋습니다, 그것을 사겠습니다

  15. Favicon of http://colin.is-a-therapist.com 엠마 2012/04/19 20:17  address modify / delete reply

    저는 채식주의자입니다.

  16. Favicon of http://www.tisasnapbackshatsshop.com/obey-snapback-hats-c-69.html OBEY Snapback 2012/04/21 22:10  address modify / delete reply

    앞서 이야기한 바와 같이 범용적인 파일관리 시스템으로서 소스파일 뿐만아니라 바이너리(문서/미디어)도 지원한다.

  17. Favicon of http://www.sellsnapbackhats.com Snapback Hats 2012/04/28 21:12  address modify / delete reply

    또한 다른 사람들과의 협업을 지원하기 때문에 다수의 사람의 동일한 데이터를 각자의 머신에서 작업하고 관리하고 남이 작업한 내용을 병합

  18. Favicon of http://samaras.is-a-personaltrainer.com 스텔라 2012/05/08 18:19  address modify / delete reply

    무엇?

  19. Favicon of http://statichostname.servebbs.org 라일리 2012/05/08 22:44  address modify / delete reply

    누구?

  20. Favicon of http://gino.isa-geek.org 나탈리 2012/05/11 03:31  address modify / delete reply

    그것은 오해였습니다.

  21. Favicon of http://kelis.is-a-bruinsfan.org Nevaeh 2012/05/11 13:36  address modify / delete reply

    변호사에게 이야기하고 싶습니다

  22. Favicon of http://zeka.oyunyolu.net/ zeka oyunlari 2012/05/26 16:55  address modify / delete reply

    저는 채식주의자입니다.