본문 바로가기

Engineering Tools/Develop IDE

Eclipse와 SVNSubversion 사용하기

Subversion (SVN)


● SVN 또한, CVS와 같이 동일한 역할을 하는 버전관리시스템입니다. 다만, CVS에서의 단점을 좀더 보완한

CVS를 대체하는 새로운 CVS라고 보시면 됩니다.

● 본 문서를 작성하면서 다음의 사이트를 참고하였습니다.

[http://www.infopub.co.kr/ebook/pdf/5674-299.pdf ]의 HTML 버전 문서

http://209.85.173.132/search?q=cache:8irZkeHUK3cJ:www.infopub.co.kr/ebook/pdf/5674-299.pdf+%EC%9B%90%EC%9E%90%EC%A0%81+commit&hl=ko&ct=clnk&cd=9&gl=kr

[Visual SVN 홈페이지]

http://www.visualsvn.com/

http://www.visualsvn.com/server/doc/server-config/

SVN의 장점


  • 커밋 단위가 파일이 아닌 체인지셋입니다. CVS에서라면 여러 개의 파일을 한꺼번에 커밋하더라도 각각의 파일마다 리비전이 별도로 붙습니다. 반면 Subversion에서는 파일별 리비전이 없고 한번 커밋할 때마다 전체 변경 사항에 대해 리비전이 하나씩 증가합니다. 
  • CVS에 비해 엄청나게 빠른 업데이트/브랜칭/태깅 시간. 한 예로 같은 100MB 트리를 업데이트했더니 CVS보다 21배 빨랐습니다. 
  • CVS와 매우 유사한 사용법. CVS 사용자라면 누구나 어려움없이 금방 배울 수 있습니다. 
  • 파일 이름 변경, 이동, 디렉토리 버전 관리도 지원. CVS는 이것을 지원하지 않습니다. 
  • 원자적 커밋. CVS에서는 여럿이 동시 커밋할 때 종종 충돌이 발생하는데 Subversion에서는 더 이상 그런 일이 없어졌습니다.
  • 원자적 Commit :
    변경이 완수된 후의 저장소만 보게 된다. 이를
    기 때문이다.
  • 사용자가 변경을 저장소에 커밋하는 경우, 서브버전은 데이터베이스의 트랜잭션과 같은 개념을적용한다. 간단히말해서, 서브버전은변경전체가성공적으로커밋되지않으면전체가완전히취소되어원래상태로 되돌아감을보장한다. 즉, 전부 아니면전무인 것이다. 따라서 변경들을 커밋했을때그중반만적용되고마는일은생기지않는다. 사용자는오직변경이전의저장소아니면변경이 완수된 후의 저장소만 보게 된다. 이를원자적 커밋(atomic commit)이라고 부르는데, 이러한 원자적 커밋은 모든 개발자들이 항상 일관된 상태의 저장소를 볼 수 있도록 보장한다. 어떤변경을커밋하는도중에네트웍연결이끊어진다고해도저장소에변경의반만남게되는상황은일어나지않는다. 서브버전은반만진행된변경을 완전히취소시키고커밋이전상태로되돌려주기 때문이다.
  • 이러한 원자적 커밋은 모든 개발자들이 항상 일관된 상태의 저장소를 볼 수 있도록 보장한다. 어떤 변경을 커밋하는 도중에 네트웍연결이 끊어진다고해도 저장소에 변경의 반만 남게되는 상황은 일어나지 않는다. 서브버전은 반만 진행된 변경을 완전히 취소시키고 커밋 이전상태로 되돌려주기 때문이다.
    --------------------------------------------------------------------------------
  • 양방향 데이터 전송으로 네트워크 소통량 최소화. 
  • 트리별, 파일별 접근 제어 리스트. 저장소 쓰기 접근을 가진 개발자라도 아무 소스나 수정하지 못하게 조절할 수 있습니다. 
  • 저장소/프로젝트별 환경 설정 가능 
  • 확장성을 염두에 둔 구조, 깔끔한 소스 
  • 커밋 통지 메일 스크립트 기본 제공. CVS에서라면 스크립트를 따로 구해서 써야 하는 번거로움이 있었지만, Subversion은 기본 제공 스크립트를 이용해서 훨씬 손쉽게 설정이 가능합니다.

SVN을 설치해보자. (Windows NT, XP) - 다운 및 설치


● Subversion 개발을 하는 홈페이지(http://www.subversion.org)를 찾아가면, 다양한 플랫폼(OS)을 지원하는

설치파일을 다운받을 수 있습니다.

_페이지 주소 변경 : http://subversion.tigris.org/



● 저는 VisualSVN을 다운받아서 설치하고, 이클립스에 연동하는 방법으로 해보겠습니다. 물론, 다른 방법도 많이 있으며

이 방법이 가장 쉬운 방법이라 해봅니다 ~ ^^

● 클릭하여, VisualSVN을 다운받습니다.

[설치사양은 다음과 같이, 현재 출시된 다양한 윈도우를 지원합니다.]

Operating Systems

  • Windows?? XP
  • Windows 2003 Server
  • Microsoft?? Windows Vista??
  • Windows 2008 Server

Minimum hardware

  • Pentium 500MHz or greater
  • 128 MB RAM or greater
  • 30 MB hard drive space

SVN을 설치해보자. (Windows NT, XP) -설치 및 이클립스 연동


▶참 쉽죠잉~~~~~~~~~~♬ 설치하기 쉽습니다. 따라하세요! ^^






▶Location : VisualSVN 프로그램이 저장될 폴더를 지정합니다.

▶Repositories : 저장소 즉, 소스파일이 저장될 폴더를 지정합니다.

▶Server Port : 서버의 포트를 설정합니다. ORACLE이나, 기타 포트를 사용하는 프로그램들과의 충돌을 방지하기 위해

사용하지 않는 포트로 접근해야 합니다.

▶Authentication 계정 : 윈도우 사용자 계정을 사용할지, 내부 VisualSVN 의 계정을 만들어 사용할지 선택합니다.






▶설치가 종료되었네요 +_+ 유후!!!



▶설치가 끝나면 위와같은 화면이 자동으로 실행됩니다. 마우스포인터가 가르키고 있는 곳을 보세요 !

그렇습니다. 사용자 계정을 생성합니다. Create new user 를 클릭하세요



▶새로운 사용자를 만듭니다. 사용자의 이름과 비밀번호를 입력합니다.



▶다음 이클립스를 실행하여 Help -> Software updates 를 클릭합니다.




▶위의 주소를 참고하여, 다운을 받습니다. 이클립스 버전에 따라 다르며, 1.4.x 버전은 이클립스 3.2 이후 버전에서 사용합니다.

★위의 주소는 이전버전입니다. 최신버전은 http://subclipse.tigris.org/update_1.6.x 으로 변경되었습니다.




▶모든 것을 선택하고 Finish 를 누릅니다.







▶이클립스의 Window -> Show View-> Other 로 들어갑니다.



▶성공적으로 SVN이 설치되었다면 나오겠지요~? OK를 클릭합니다.



▶다시 VisualSVN Server를 확인합니다.

▶이미 repositories 를 지정했는데, 또해야 하는군요. (어쩌면 설치중에 안됐을 수도 있습니다)

- Create new repository...를 클릭하여 새로운 저장소를 만듭니다.



▶저장소의 이름은 마음대로 하세요~! ^^



▶성공적으로 생성하면 위와 같은 화면을 볼 수 있습니다.



▶다시 VisualSVN으로 돌아갑니다. 상위의 Server URL is : 의 주소를 클릭합니다.



▶놀라진 마세요! ㅋ 웹사이트를 계속 탐색합니다.



▶이전에 만들었던 VisualSVN 사용자의 아이디와 비밀번호를 입력하고 확인 합니다.



▶위와 같은 화면이 나오면 성공적으로 SVN이 설치되었고, 성공했다는 뜻이 됩니다. 마우스 포인터가 가르키는

저장소를 클릭합니다.



▶그렇다면 위와같은 3개의 폴더가 보입니다. 익스플로러의 주소창을 확인해보세요. 그리고 모두 복사를 한 뒤에

이클립스로 갑니다.



▶하단의 SVN Repositores 의New -> Repository Location 을 클릭합니다.



▶익스플로러에서 복사한 주소를 이곳에 붙여놓고 Finish 를 누릅니다.



▶인증에 문제가 있다고 하지만 무시하시고, Accept Permanently 를 클릭합니다.



▶이전에 만들었던 사용자 이름과 패스워드를 입력하고 OK를 클릭합니다.



▶등록된 화면입니다.



▶이제부터는 CVS와 마찬가지로 동일하게 사용하시면 됩니다.

▶SVN 서버와 공유하고자 하는 프로젝트에서 마우스 오른쪽 버튼을 클릭 -> Team -> Share Project 로 들어갑니다.



▶다음 저장소 형식을 선택합니다. 이전에 CVS도 설치한 저로서는 두개가 보이는 군요. SVN을 선택하고 NEXT



▶공유영역을 지정하고 Next 버튼을 누릅니다.



▶따로 수정할 필요 없습니다. Next



▶신나게 Comment 를 날리고 Finish





▶작업이 끝나고 다시 Team -> Commit 를 실행하여, 서버로 프로젝트의 내용을 다시 업데이트 합니다.



▶모두 선택하고 OK





▶CVS 보다 더욱 상세하게 업데이트 정보가 변경되는 것을 확인할 수 있습니다. 우측은 수정 중인 소스화면, 그리고

좌측은 수정중인 소스의 파일이 보입니다.



▶파일을 수정하고 Commit을 실행해볼까요?



▶왠지 Comment 는 업데이트 시마다, 써주는게 좋을 듯 싶습니다 :D



버전이 4로 상승하였네요! 이렇게 SVN을 사용하면 CVS보다 더욱 쉽고 편리하게 버전관리를 할 수 있습니다.