Lectures/NP/2012/Source Version Control

From MCLab
Jump to: navigation, search

Subversion(SVN)은 CVS보다 편리한 tool로서 Eclipse를 사용할 때 Subclipse라는 pluggin을 설치하면 팀으로 개발할 때 뿐 아니라 혼자 개발할 때도 매우 유용합니다. - jphong

Subclipse 설치

  • 건국대 학생이 작성한 자료를 참고하여 설치하고 이용해 보세요.
  • SVN repository (모든 버전의 소스 저장소)로 Google Code를 누구나 이용할 수 있습니다. 공짜로 이용할 수 있지만 등록된 source는 누구에게나 open됩니다. 이를 이용해서 우선 test해 보고 추후에 NP 강좌용 SVN repository를 제공할 것입니다.

Subclipse 사용법

참고: Eclipse>Help Contents>Subclipse, Subversion Manual

  • 저장소(SVN Repository)를 지정한다. (Google code나 Apach Web Server가 있는 서버에서 지정받음)
    1. SVN Repository Exploring Perspective를 띄운다
      Windows>OPen Perspectives>Others>SVN Repository Exploring
    2. SVN Repository location 지정
      왼쪽 view에서 우클릭>New>Repository Location... 하여 SVN repository의 URL을 입력한다. SVN repository의 password도 입력한다.
  • 새로운 project를 repository에 만들어 source 등록하기
    1. Import - 저장소(SVN Repository)에 project directory 만들기
      등록하려는 project를 선택하여 우클릭>Team>Share Project>SVN>Use existing repository location>Use project name as folder name
    2. Commit - 내가 작업한 project source file들을 최초로 저장소에 등록하기
      등록하려는 project를 선택하여 우클릭>Team>Commit
  • Source code 편집과 등록
    1. Editing... (file 추가/삭제 포함)
    2. Update - 내가 checkout한 후 다른 팀원이 저장소에 등록한(즉, 최근에 update한) 것이 있다면 가져와서 update하기
      Team>Update to HEAD
      팀 프로젝트시에 commit하기 전에 반드시 update해야 함. 왜냐 하면 다른 팀원이 동시에 작업한 결과가 저장소에 등록되었다면, 이것도 반영해서 등록해야 하기 때문.
      다른 팀원이 수정한 사항을 반영하지 않고, commit하면 타인에 수정한 것은 없어진 채 등록되게 된다. 다른 사람이 수정함과 동시에 나도 수정하게 되면 conflict가 발생할 수 있음. 이를 해결하기 위해 재수정해야 할 책임은 나에게 있다.
    3. Commit - 내가 작업한 project source file들을 저장소에 등록하기 (Revision 번호가 증가함)
  • 등록된 Source를 가져오기 (다른 컴퓨터를 사용하거나, 새로운 팀원이 프로젝트에 참가해서 등록된 source를 가져올 때 이용)
    1. SVN Repository Exploring Perspective를 띄운다
    2. Repository가 없으면 SVN Repository Location을 위와 같이 하여 지정한다.
    3. Checkout - 저장소에 있는 project source file들을 가져오기
      Project를 선택하여 우클릭>Checkout

참고: SVN 사용시 이용하는 Perspectives

  • SVN Repository Exploring Perspective - SVN repository 내의 directory와 file을 보여준다.
  • Team Synchronizing Perspective - working copy(Eclipse 내의 project)가 변경돼서 등록할 것이 있는지(Outgoing mode), 다른 팀원이 변경한 것이 있는지(nIcoming mode)를 보여준다.
  • 우클릭>Team>Synchronizing with SVN repository - working copy와 repository의 파일의 차이를 비교하여 보여준다.