wiki:EclipseCvs

서버 설치 및 셋팅

CVS 저장소 설정

제어판 > CVSNT Server 선택 Repository Configuration 탭에서 저장소 추가 Server Setting 탭에서 Run as를 OS 계정으로 설정

사용자 추가

CVSROOT 환경변수를 설정

도스창에서

set CVSROOT=:pserver:127.0.0.1:/Java_0125/CVS/repo
cvs login
cvs passwd -r OS계정 -a CVS 계정

프로젝트 공유

프로젝트를 CVS 서버에 올리는 작업

프로젝트 선택 후 컨텍스트 메뉴 > Team > Share Project

  • Location : CVS 서버가 위치한 호스트와 저장소 패스를 입력
  • Authentication : 사용자 이름과 패스워드 입력
  • Connection : 연결타입과 포트 입력

Share Porject Resource 다이얼로그

리소스 중 버전관리에서 제외하려면 컨텍스트 메뉴에서 Add to .cvsignore 선택

마지막으로 comment 입력 다이얼로그에서 Finish

레이블 데코레이션

공유한 프로젝트는 모양이 틀림, 이 모양을 지정하는 것

Preferences > Team > CVS > Label Decorations

Text Decorations, Icon Decorations에서 표시 변경 가능

Preferences > General > Appearance > Colors and Fonts > CVS 항목에서

사용할 글꼴과 색상을 지정

체크 아웃

다른 사용자가 프로젝트를 가져오는 것

프로젝트 임포트

File > Import > CVS > Project from CVS

  • Create a new repository location : 새로운 레포지터리를 생성한다.
  • Use existing repository location : 이미 존재하는 레포지터리를 사용한다.

Select Module 다이얼로그

Use an existing module 사용

Check Out As 다이얼로그

  • Check out as a project configured using the New Project Wizard : 저장소에 .project 파일이 없는 경우에만 가능
  • Check out as a project in the workspace : 현재 워크스페이스에 프로젝트를 생성하고 체크아웃한다.
  • Check out into an existing project : 이미 존재하는 프로젝트 내부로 체크아웃하고 싶은 경우 사용

커밋과 업데이트

커밋

수정한 리소스를 CVS에 반영

리소스를 수정하면 해당 리소스는 수정됐다는 표시 > 가 나타남

파일이나 패키지 프로젝트에서 컨텍스트 메뉴 > Team > Commit 선택

커밋시 commit 다이얼로그에서 리소스에 대한 주석 추가

업데이트

CVS로부터 최신의 리소스를 로컬로 가져온다.

파일, 패키지, 프로젝트 컨텍스트 메뉴 > Team > Update 선택

충돌과 병합

충돌(conflict)

서로 다른 개발자가 동일한 리소스의 동일한 부분을 서로 다르게 수정할 경우 충돌 발생

개발자 1이 먼저 커밋한 경우

  • 개발자 2는 커밋에 실패 (에러메시지-최신버전이 아님)
  • 해당 파일을 업데이트(Team > Update) 후 코드 확인

코드내용

  • 충돌이 발생한 부분 <<<<<<<<<<< 충돌이 발생한 코드 >>>>>>>>>>
  • 본인 코드가 위쪽에 CVS 코드가 아래쪽에 나온다.
  • 개발자 2가 코드중 맞는 부분을 남기고 나머지 삭제 후 커밋한다.

병합(merge)

같은 리소스의 다른 부분을 수정한 경우 병합 가능

  • 개발자 1 이 먼저 커밋
  • 개발자 2가 커밋시 에러 발생
  • 개발자 2가 업데이트 하면 병합되어 있슴

동기화

개발자 1이 커밋

개발자 2가 커밋시 에러 발생

Team > Synchronize with Repository 선택

Team Synchronizing 퍼스펙티브로 전환

  • Synchronize 뷰 : 로컬과 CVS 저장소 리소스의 다른 부분을 보여준다.
  • 오른쪽 화살표 : 서버에 반영해야 하는 리소스
  • 왼쪽 화살표 : 서버에서 로컬로 반영해야 하는 리소스
  • 빨간색 양쪽 화살표 : 충돌이 발생한 리소스
  • +표시의 화살표 : 파일을 새로 추가하여야 하는 리소스

각 파일을 선택해 컨텍스트 메뉴에서 Update나 Commit를 해준다.

충돌난 파일은 컨텍스트 메뉴에서 Open in Compare Editor을 선택 또는 파일 더블클릭으로 비교 에디터

  • 소스코드 구조와 소스코드 내용을 확인하여 병합
  • 병합한 리소스는 Mark as Merged를 선택
  • 이제 커밋하면 끝
  • Override and Update 항목 : 로컬의 변경사항을 무시하고 CVS에서 새로 받아와 적ls 용 (수정내용을 모두 버리고 싶을때)

히스토리 보기

프로젝트 컨텍스트 메뉴 > Team > Show History 선택

뷰에서 각 버전을 더블클릭시 내용이 에디터로 열림

두 버전 선택 후 컨텍스트 메뉴에서 Compare with Each Other 선택시 비교 에디터로 비교 가능

뷰툴바의 Local and Remote Revisions, Local Revisions, Remote Revisions 버튼으로 뷰 내용 확인

태그와 브랜치

태그(tag)

프로젝트 릴리즈시 태그 기능

프로젝트 컨텍스트 메뉴 > Team > Tag as Version 선택

No image "그림추가" attached to EclipseCvs

태그 이름 입력

  • 태그 내용확인
    • CVS Repository Exploring 퍼스펙티브로 전환 : Window > Open > Perspective >Other에서 선택
    • CVS Repositories 뷰에서 Versions > 프로젝트명 >프로젝트 태깅명 노드가 보이면 정상

  • 별도 체크 아웃
    • 상기 노드를 선택해 별도로 체크아웃한다.
    • 참고-그냥 체크아웃하면 기존 프로젝트를 삭제하고 체크아웃 할지 묻는다
    • 컨텍스트 메뉴 > Check Out As 선택
    • 프로젝트 이름 지정하고 체크아웃

브랜치(branch)

별도의 프로젝트로 체크아웃하고 수정 후 커밋 시도하면 실패 (브렌치가 아니어서 커밋 못함)

브랜치를 만들어 커밋해야 한다.

프로젝트 컨텍스트 메뉴 > Team > Branch 선택

No image "그림추가" attached to EclipseCvs

  • 브랜치 이름 추가 : CVS 저장소에 브랜치가 생긴다.
  • CVS Repositories 뷰에서 확인가능

패치

CVS에 커밋하지 않고 변경한 내용을 다른 사람과 공유 가능

프로젝트 컨텍스트 메뉴 > Team > Create Patch 선택

패치를 생성해서 결과를 파일이나 클립보드에 저장 가능

패치 적용시에는 컨텍스트 메뉴의 Team > Apply Patch 사용

삭제한 파일 복구

로컬에서 삭제한 파일을 CVS에서 복구 가능

컨텍스트 메뉴의 Team > Restore from Repository 선택

No image "그림추가" attached to EclipseCvs

외쪽상단에 살릴수 있는 리소스 표시 오른쪽 테이블에 히스토리 표시

로컬에서 파일 복구 후 커밋

CVS Annotation

소스 코드의 특정부분을 수정한 사람을 알고 싶다면

파일 컨텍스트 메뉴의 Team > Show Annotation 선택

No image "그림추가" attached to EclipseCvs

  • 히스토리 뷰에 파일에 대한 히스토리 표시
  • 에디터의 Quick diff ruler 부분에 여러색으로 변경 내용 표시
  • 색깔 부분 클릭시 해당 코드가 변경된 리비전이 히스토리뷰에 하이라이트

버전 트리 보기

Attachments