일반
2009.11.26 20:00

ClearCase 팁

조회 수 38793 댓글 1
?

단축키

Prev이전 문서

Next다음 문서

+ - Up Down Comment Print
?

단축키

Prev이전 문서

Next다음 문서

+ - Up Down Comment Print

강력한 소스 관리툴 - ClearCase

clearcase - IBM사의 제품. Rational에서 개발

            여러사람들이 공동으로 소스를 수정하면서 발생하는 문제들을 관리


                        1. 각 사용자에게 최신 소스 제공
                        2. 베이스 소스 보호
                        3. 각 개인이 수정한 내용이 다른 사람들의 것과 섞이지 않게 관리
                        4. 동시에 수정된 파일 관리
                        5. 사용자들이 변경한 이력 보여주기
                        6. 변경 내용 추적하기
                        7. 이전 버전과 비교하기
                        8. 개인이 수정한 내용을 베이스 소스에 적용하기


가장 기본적인 개념 check in, check out
    check out: 파일에 쓰기 권한 주기 (처음에는 모두 읽기 권한만 있음).                    이것을 먼저 해주어야 파일 관리가 됨.(임의로 변경하면 hijacked파일로 처리됨)
    check in:  베이스 소스에 바꾼 내용 적용시키기 (다른 사람도 변경 내용을 볼 수 있게 됨)


   자신의 디렉토리에 소스를 복사해 놓고 싶으면 스냅샷 뷰로,
   자신의 디렉토리에 복사하지 않고 네트웍 드라이브에 연결하여 사용하고 싶으면 다이나믹 뷰로.


   (다이나믹 뷰로 하면 소스를 다가지고 있을 필요가 없고 접근 하고 싶을 때만 연결.
   여러 버전의 소스를 개인 디렉토리에 모두 다 가지고 있으려면 복잡해지고 용량도
   커지므로 가볍게 관리하고 싶을때 다이나믹 뷰 사용.  대신 setview를 하여 어느
   뷰를 로드 할지를 정해주고 그 소스가 가상으로 연결됨. 주로 /vobs/... 아래 정해진
    디렉토리에 가상으로 소스가 연결됨. 그 디렉토리에 접근하여 ftp로 소스를 받을 수도
   있고 자신의 디렉토리에 복사되어 있는 것과 다르지 안다. 자신의 디렉토리에 소스가
   있지 안고 네트웍 드라이버에 저장되어 있음)


- clearcase로 소스 접근 하는 순서
1. snapshot view: 처음 뷰를 만들때 서버의 소스를 개인의 디렉토리로 다운받음
       소스 다운로드 -> check out 파일: 쓰기 모드 주기 -> 소스 수정 -> check in 파일: 서버에 적용


2. dynamic view: 접속 할때 마다 cleartool setview "뷰이름" 를 해주어 자신의 소스를
                           로드 시킴. setview를 안해 주면 소스가 보이지 안음.


    setview -> check out 파일: 쓰기 모드 주기 -> 소스 수정 -> check in 파일: 서버에 적용


3. view 없애기
     rmview 명령어 사용


4. 최신 소스 업데이트
    snapshot: update 명령어 사용
    dynamic: 자동으로 업데이트 됨


- 최신 소스 받기
1. snapshot view 만들기
   cleartool mkview -tag 뷰이름 -snapshot  -vws 뷰저장위치  자신의디렉토리
   자신의 디렉토리에 최신 소스가 복사됨. 개인 디렉토리에 소스가 계속 남아 있음.
   최신 소스 적용이 안됨( update 명령어 필요)


   예. cleartool mkview -tag inkim -snapshot -vws inkim.vws  ~/project


2. dynamic view 만들기: clearcase에서는 다이니믹 뷰가 디폴트이다.
   cleartool mkview -tag 뷰이름   뷰저장위치
   setview를 한후에 동적으로 최신 소스가 로드 됨. 접속을 끊으면 소스가 언로드 됨.
   접속 할때 마다 최신 소스가 자동으로 업데이트 됨.


    예. cleartool mkview -tag inkim inkim.vws


- snapshot view와 dynamic view
   snapshot: view를 처음 생성하는 순간의 서버의 소스를 자신의 개인 디렉토리로 복사해옴.
                   그 후에 다른 사람이 변경한 (check in)한 내용은 바로 적용이 안됨. 만약 최신의 변경
                   내용을 적용하려면 update명령을 사용. update를 하면 check out한 파일 이외의
                   파일들이 최신버전으로 변경됨.


    dynamic: check out한 파일 이외의 파일들은 다른 사람들이 변경한(check in)한 내용이
                 바로 바로 적용됨. 자신이 check out한 파일에 대해서도 업데이트 해주려면


                  cleartool findmerge . -flatest -print
                   최신 버전과 변경 내용 보기


                   cleartool findmerge . -flatest -merge -q
                   최신 버전의 변경 내용을 바로 merge
                   -q: merge 하기전에 물어보기

- 주요 명령어
1. check out 파일
  clearcase에서 서버로 부터 기본 소스를 다운받고 나면 모든 파일은 읽기만 가능하다. 수정하려고
  하는 파일은 check out 해주어야 쓰기가 가능해진다.  chmod로 강제로 쓰기 권한을 주면 그 파일은
  hijacked 되었다고 메세지가 뜬다. 꼭 먼저 수정할 파일은 check out 할 것!


  예.  src/hello.c 파일을 수정하고 한다면 먼저 check out 해줌


         cleartool co -c "inkim co: modifying hello.c" -unres src/hello.c


           -c : comment  설명
           -unres: unreserved  다른 사람도 수정할 수 있게 함


2. check out 한 파일 보기
    예. clearcase lsco  src/hello.c
        hello.c를 check out한 사람들을 보여줌


    clearcase lsco -r
     -r: 하위 디렉토리까지 모두 검색하여 check out 파일을 모두 보여줌


    많이 사용하는 조합
    clearcae lsco -r -me -cview
     me: 내가 check out 한 파일만 보여줌
     cview: 현재 뷰에서 만


3. uncheck out
    check out 한 파일 취소. 수정한 내용은 없어지고 베이스 소스로 변경됨.
    베이스 소스로 원복 하고 싶을 때 사용.


   예. cleartool unco src/hello.c


4. check in 하기
   수정한 파일을 최종적으로 서버에 업데이트 시키기. check in을 하고 나서야 다른 사람도 내가
   수정한 내용을 볼 수 있음.


  예. clearcase ci -c "inkim ci: modified hello.c" src/hello.c
      -c: comment 설명


5. 변경 history 보기
   cleartool lshist


6. 이전 버전과 비교
   xclearcase &
   그래픽 툴


    탐색기 창에서 파일 선택. 메뉴에서 diff 아래 다른 버전과 비교 메뉴 선택


    파일 변경 history 창이 뜸. 자신이 비교해 보고 싶은 버전의 파일 클릭.


    두 파일의 차이를 보여주는 창이 뜸.


7. view 리스트 보기
   cleartool lsview


8. 버전 정보 보기
    cleartool lsvtree


9. config spec 내용 수정
   cleartool edcs


10. config spec 내용만 보기
    cleartool catcs


11. comment 바꾸기: chevent 사용
 cleartool chevent -c "new comment" -replace
 replace: 코멘트 새로교체
 insert: 기존 코멘트 뒤에 추가


12. 다른 버전과 내용 비교
  - 이전 버전과 내용 비교
      cleartool diff -pred  file.c
      predecessor: 이전버전과 비교


   - 최신소스와 비교: @@/..../LATEST를 붙여준다.
      cleartool diff file.c  file.c@@/main/project/LATEST


   - 윈도우상에서 버전 비교
      cleartool diff -graphical  file.c  file.c@@/main/project/LATEST


  13. 현재 뷰이름 보기
    cleartool pwv


- 유용한 팁들
1. 소스 전체를 과거 시점으로 돌아가 작업하고자 할 때
    : edcs에 원하는 과거 시간의 time추가.
      config spec에 이전 버전으로 돌아가기를 원하는 날짜의 time을 추가해준다.
      time지정이 없으면 LATEST는 최신의 소스로 업데이트 한다.


     cleartool edcs
     #LATEST의 기준 시간을 Aug-22 19:00로 변경 (#은 코멘트)
     time Aug-22.19:00  <--- 원하는 과거시간 새로추가
      ...
     element * / .../LATEST <---- LATEST시점이 time에서 정한 시간대로 변함
      ...
     end time <---- 새로추가


2. 다른 버전 파일 가져오기
    다이나믹 뷰에서는 다른 버전의 파일들을 보통의 파일처럼 바로 접근할 수 있다.
    다만 파일이름 뒤에 버전 정보를
         파일이름 @@/..../버전
    형태로 붙여준다. 버전 정보는 cleartool lsvtree를 이용하여 볼수 있다.


    예제. 다이나믹 뷰에서 file.c의 다른 버전 가져오기
    - vi 에디터에서 file.c의 버전 5가져오기


       vi file.c@@/main/project/5


    - vi 에디터에서 file.c의 최신 소스 가져오기
       버전을 LATEST로 적어주면 된다. clearcase에서는 LATEST가 최신 버전 소스를 의미한다.


      vi file.c@@/main/project/LATEST


     주의: cp  file.c@@/main/project/LATEST 를 하면 제대로 copy되지안는 현상이 있다.
             이럴 경우는 cat file.c@@/main/project/LATEST > file.c 의 트릭을 이용할 수 있다.


    예제. 스냅샷 뷰에서 최신 소스 가져오기
            cleartool get -to file.c file.c@@/main/project/LATEST


3. 새로운 파일 추가
    해당 디렉토리 check out ----> 해당 디렉토리로 이동 ---->  파일 만들기 mkelem 사용
     cleartool co -unres src               cd src                           cleartool mkelem file.c
    후에 check in 할 경우 디렉토리까지 check in 해주어야 한다

  • Dreamy 2009.11.26 20:02

    Source Insight용 명령어

    1. Clear Case Explorer : clearexplorer
    2. Find Checkouts : clearfindco
    3. Check Out : cleardlg /checkout %f
    4. Check In : cleardlg /checkin %f
    5. Undo Check Out : cleardlg /unchechout %f
    6. History : clearhistory %f
    7. Version Tree : clearvtree %f
    8. Compare with Previous Version : cleardlg /diffpred $d
    9. Properties of Version : cleardescribe %f
    10. Properties of Element : cleardescribe %f@@
    11. (*)Sync to Source Control Project : clearviewupdate -pname %j
    12. (*)Sync File to Source Control Project : clearviewupdate -pname %r1

Dreamy의 코드 스크랩

내가 모으고 내가 보는

List of Articles
번호 분류 제목 날짜 조회 수 추천 수
86 개념 DLNA(Digital Living Network Alliance) file 2012.01.27 17119 0
85 개념 CFM(Content Forward Management) 2012.01.27 17930 0
84 C# c# file i/o 샘플 2012.01.04 16942 0
83 C# 문자열 검색 / 조작 2012.01.03 23410 0
82 C# XML 간단 예제 2012.01.03 23243 0
81 LINUX [Shell Script] bash에서 source 명령 2012.01.02 61983 0
80 Android [GIT 사용법] 초보자가 알아두면 좋을 명령어 정리 1 2011.12.26 66477 0
79 Android [GIT 사용법] Git Tutorial 2011.12.26 96466 0
78 MFC 레지스트리 쓰기, 읽기 함수 정리 2011.07.26 31051 0
77 일반 가변 인수를 가지는 함수 및 매크로 만들기 2011.02.09 35232 0
76 일반 시스템 환경변수 세팅 2011.02.08 28280 0
75 MFC MFC에서 커맨드 인자(cmd argument) 사용하기 2010.12.13 61532 0
74 MFC CString 에서 형변환 함수들 총정리 2010.11.29 102709 0
73 MFC _CrtDumpMemoryLeaks() 을 이용한 메모리 누수 탐지법 2 2010.11.02 44165 0
72 MFC 프로젝트 Resource에서 파일로 저장하는 방법 2010.11.01 34684 0
목록
Board Pagination ‹ Prev 1 ... 24 25 26 27 28 29 30 31 32 33 34 Next ›
/ 34

나눔글꼴 설치 안내


이 PC에는 나눔글꼴이 설치되어 있지 않습니다.

이 사이트를 나눔글꼴로 보기 위해서는
나눔글꼴을 설치해야 합니다.

설치 취소

Designed by sketchbooks.co.kr / sketchbook5 board skin

Sketchbook5, 스케치북5

Sketchbook5, 스케치북5

Sketchbook5, 스케치북5

Sketchbook5, 스케치북5