CVS관리지침-V0_1

Document Sample
CVS관리지침-V0_1 Powered By Docstoc
					HANDAN




         CVS 관리지침

               V0.1
          S/W 5 팀 양승민
Handan

     Table of Contents

    사전지식
    디렉토리 구조
    CVS 명령
    개발규칙
    DEMO




                         CVS관리지침-V0_1.ppt
Handan




  사전 지식




          CVS관리지침-V0_1.ppt
Handan
  Preparation Guide
   CVS 서버/클라이언트 이해 및 사용법
    – Update Special
    – Branch
    – Merge
    – Revision Graph
   CVS 관련 용어
    – Export
    – Module
    – Release / Revision
    – Tag / Branch
                       CVS관리지침-V0_1.ppt
Handan




  디렉토리 구조




            CVS관리지침-V0_1.ppt
Handan
  Directory Definition
     D:/work/ (Working Directory)
       – /ipstb/ : (Module Name)
          •   /data/
          •   /db/
          •   /doc/
          •   /output/
          •   /src/
          •   /util/
          •   /vendor/
          •   /vendorsrc/
          •   BUILDING
          •   GLOSSARY
          •   README


                                     CVS관리지침-V0_1.ppt
Handan
  Directory - FILES
     BUILDING (Text File)
       – 프로젝트 소스 재빌드에 필요한 간단한 지침
         • Platform Builder 5.0 (CE 바이너리 이미지 빌드)
         • EVC++ 4.0 (CE용 소스코드 컴파일)
         • 더 자세한 사항은 /doc/build.html 파일 참조
       – 빌드는 최대한 자동화!!!
     GLOSSARY (Text File)
       – 프로젝트에 사용되는 용어들 정리
       – 클래스나 메서드, 변수 등의 이름짓는 지침
     README (Text File)
       – 프로젝트에 대한 설명글
         • 프로젝트가 해결하려는 비즈니스 문제
         • 프로젝트에서 사용한 기반 기술


                                           CVS관리지침-V0_1.ppt
Handan
  Directory - Data
     /Data
       – 프로젝트에 정해져서 사용되는 자료
       – 이미 정해져서 만들어진 데이터 묶음
       – 우편번호 DB 정보 등




                         CVS관리지침-V0_1.ppt
Handan
  Directory - Doc
     /Doc
       – 포함해야 할 문서
         •   메모, 전자우편, 공개문서
         •   특정 사이트 캡쳐
         •   알고리즘 문서
         •   자동화툴에 의해 생성된 문서일지라도 생성하기 쉽지 않거나 제
             작툴에 라이센스가 경우
      – 포함하지 말아야 할 문서
         • 자신에게 질문하라. “나중에 이 문서를 다시 만들어 내기 쉬운가?”
         • 자동화툴에 의해 생성된 문서
      – 필요한 경우 디렉토리로 구분하여 관리
         • /doc/release/t-com/ (ReleaseNote 관리)
      – BIBLIOGRAPHY (Text File)
         • 자료를 복사해 올 수 없는 경우 문서의 링크 주소와 설명을 명시



                                                  CVS관리지침-V0_1.ppt
Handan
  Directory - Output
     /Output
       – 프로젝트 수행 결과물
       – Release된 소프트웨어
       – Release된 바이너리 파일
       – /output/고객사/제품명/ReleaseNote.doc
         • /output/t-com/s100/RelaseNote-V1310.doc
         • 향후 자동화를 위해 버전 관리 중요




                                          CVS관리지침-V0_1.ppt
Handan
  Directory - Src
     /Src
       – /library (Platform/OS 비의존적 Library)
       – /include (Platform/OS 비의존적 Includes)
       – /ce (OS 의존적)
         • /samples
      – /ce5.0 (OS Version 의존적)
      – /intel830-ce (Platform/OS 의존적)
      – /x86-xp (Platform/OS 의존적)
         • /samples (각종 샘플/테스트 코드)

                                     CVS관리지침-V0_1.ppt
Handan
  Directory - Util
     /Util
       – /ce (CE 툴)
         • regeditce.exe (CE용 레지스트리 편집기)
      – /x86-dos (도스 툴)
         • /AMIDIAG
         • /GHOST (백업 툴)
      – /x86-xp (XP 툴)
         •   /pkzipc (자동화 툴 관련)
         •   /token2 (RS232 툴)
         •   /tortoiseCVS
         •   /pack-rel (Release를 자동화하는 툴)
              – t-com-s100-V1310-v3_0_12-060214.bat


                                                      CVS관리지침-V0_1.ppt
Handan
  Directory - Vendor
     /Vendor
       – /lib
         • /z-com (무선랜 모듈 드라이버)
         • /microsoft (DRM 등)
         • /ami (바이오스 파일 등)
      – /include
         • /z-com
         • /microsoft




                                  CVS관리지침-V0_1.ppt
Handan
  Directory - Vendorsrc
     Vendorsrc
      – 벤더에서 제공해주는 소스 코드
      – 해당 릴리즈 번호를 이용하여 Branch를 만들
        고, 수정되는 사항은 Mainline으로 관리
      – 다음번 업데이트되는 릴리즈는 일단 해당 소
        스 코드를 “Commit”후 Branch를 생성하고,
        Mainline과의 “Merge”를 통하여 관리.
      – /t-online-offlinemenu
      – /t-online-api

                            CVS관리지침-V0_1.ppt
Handan




  CVS 명령




           CVS관리지침-V0_1.ppt
Handan
  Command – Checkout
     “CVS Checkout…” – “Fetch List”
     Mainline(개발중심축)에서 작업하기 위한 경우 (“HEAD”
      에 해당) 모듈 이름으로 받아옴
       – D:/work/ipstb
     특정 Tag나 Branch에서 받아올 경우에는 “Check out”
       – “Revision” 탭에서 “CheckOut”할 Tag, Branch 설정
       – “Options” 탭에서 생성할 디렉토리 명을 설정
       – D:/work/ipstb-REL-T-COM-S100-V1310
       – 여기서 작업하여 “Commit”을 수행하면 해당 Branch
         의 하위 버전으로 관리됨
       – “Commit”후에는 해당 폴더를 삭제!!!

                                      CVS관리지침-V0_1.ppt
Handan
  Command – Commit
     “Commit” 전에는 항상 “Update”를 수행하여 반드시 충
      돌 여부를 확인
     “Commit” 수행시에는 반드시 주석 처리
       – 어느 부분을 어떻게 고쳤는지 적지 마라!!!
       – 왜 고쳤는지, 왜 생성했는지 등의 내용을 주석 처리
       – 변경된 부분은 이미 CVS가 알고 있다.
     불필요한 파일이 포함되지 않았는지 검토
       – bak, aps, exe 등의 확장자 가진 파일
       – release, debug 등의 디렉토리
     포함되지 않은 파일이나 디렉토리가 없는지 검토


                                CVS관리지침-V0_1.ppt
Handan
  Command - Update
   “Update”는 특정 디렉토리 내에서 행하지 말고,
    항상 전체 모듈을 “Update”
   “Update”는 자주 수행하는 편이 좋다
   “Update”, “Commit”이 이루어지지 않고 몇 일
    이 흐르게 되면, 충돌로 인한 문제를 해결하기
    위해 시간을 할애해야 함.




                           CVS관리지침-V0_1.ppt
Handan
  Command – Tag, Branch
   Tag, Branch 관리는 지정 담당자가 일괄 처리
   Tag, Branch는 모든 소스 코드 및 관련 파일이
    모두 CVS에 적용된 상태인지 확인 후 생성




                          CVS관리지침-V0_1.ppt
Handan
  Command – Tag
     Tag는 버그 해결 직전, 버그 해결 직후 2가지 상
      황에서만 행한다.
       – 포인트를 잡아주는 역할
       – 버그 해결 직전
         • PRE-고객사-제품명-추적번호
         • PRE-T-COM-S100-CR100222 (T-Online QA)
         • PRE-T-COM-S100-BC0001 (Handan QA)
      – 버그 해결 직후
         • POST-고객사-제품명-추적번호
         • POST-T-COM-S100-CR100222

                                       CVS관리지침-V0_1.ppt
Handan
  Command – Branch
     Branch를 만드는 경우
       – Release를 준비하기 시작한 시점
       – Release를 완료한 시점
       – 개발자가 실험적으로 광범위한 변경을 가해야 하는 경우
     Release를 준비하기 시작한 시점
       – BR-고객사-제품명-릴리즈번호
       – BR-T-COM-S100-V1310
     Release를 완료한 시점
       – REL-고객사-제품명-릴리즈번호
       – REL-T-COM-S100-V1310
     개발자 실험용
       – TRY-고객사-제품명-개발자이메일ID-날짜
       – TRY-T-COM-S100-SMYANG-060309


                                CVS관리지침-V0_1.ppt
Handan




         BR   REL   PRE   POST




                          MainLine




                                 CVS관리지침-V0_1.ppt
Handan
  Command - Merge
   Tag, Branch 내에서 버그 등의 수정 사항을 해
    결한 버전이 있는 경우, Mainline에도 같은 버그
    를 가지고 있을 확률이 높다.
   해당 Tag나 Branch를 현재 Mainline과 병합하
    여 문제없는 소스 코드를 유지토록 함.




                           CVS관리지침-V0_1.ppt
Handan
  Command – ETC
     External Diff Application
       – Beyond Compare 2
       – WinMerge
       – Ultraedit Compare
     Overlay Icons
       – 직관적 이해가 가능한 아이콘을 사용
       – Mathias Hasselmann 아이콘 추천
     Conflict
       – 일단 같은 소스 파일을 같은 개발자가 수정하게 된
         것은 분명한 업무 분담이 잘못된 것.
       – 특별한 문제가 없는 충돌일 경우 병합하여 보관
       – 문제가 있는 충돌(같은 Line을 다른 개발자와 동시에
         수정)일 경우 해당 내용을 수정한 개발자와 대화

                              CVS관리지침-V0_1.ppt
Handan




  개발 규칙




          CVS관리지침-V0_1.ppt
Handan
  Generic Programming
     Bracing Style
       – K&R Style? Or         Allman Style?
       – function ()           function ()
       – {                     {
          • for () {           for ()
                – If () {      {
                      • A();            if ()
                – }                     {
                – else {                        A();
                      • B();            }
                – }                     else
          • }                           {
       – }                              …
     Identation
       – TAB? or Space?


                                                       CVS관리지침-V0_1.ppt
Handan




  DEMO




         CVS관리지침-V0_1.ppt
Handan




  감사합니다.




           CVS관리지침-V0_1.ppt

				
DOCUMENT INFO
Shared By:
Categories:
Tags:
Stats:
views:0
posted:9/30/2012
language:Unknown
pages:28