cvs 명령 소개

10828 단어

색인:

  • 권한 설정
  • cvs 구령 서버 설정
  • 서버 초기화
  • 사용기초
  • 상용 명령 줄임말
  • 라벨 관리
  • 버전 분기
  • cvs 출력 export
  • 작업 복사본 지우기
  • 로그 관리
  • 키워드 확장
  • 모듈 구성
  • 바이너리 파일 설정
  • 트리거 파일
  • 기타 구성 파일

  • 1. 권한 설정


    (1).규칙 설정
    cvs 사용자는 $CVSROOT/CVSROOT 디렉토리와 모든 파일에 대한 읽기 권한을 가져야 합니다.
    cvs 사용자는 $CVSROOT/CVSROOT 디렉토리에서history 파일에 대한 쓰기 권한을 가져야 합니다.
    cvs 사용자가 프로젝트(템플릿) 코드 등 자료를 수정할 권리가 있으면 이 디렉터리에 대한 쓰기 권한을 가져야 합니다.
    cvs시스템의 권한 제어는 운영체제에 의존하고 운영체제 자체의 권한 설정을 이용하여 cvs의 권한을 제어할 수 있다.
    (2).구령 문서
    pserver 인증 방식은 명문으로 네트워크에서 cvs 비밀번호를 전송합니다.암호 파일을 사용하면 cvs 사용자가 시스템 계정 비밀번호와 다른 암호를 사용할 수 있습니다.
    암호 파일은 서버의 $CVSROOT/CVSROOT/passwd 파일에 있습니다.형식:
    cvsuser:[passwd][:sysuser]

    암호passwd는/etc/passwd 또는/etc/shadow에서 얻을 수 있습니다.
    구령 파일의 안전성은 매우 중요합니다. 이 파일의 읽기와 쓰기 권한을 루트에만 한정해야 합니다.
    예:
    anonymous:
    ken:aWTrltv4Ae:pubcvs

    (3).읽기 전용 사용자 설정
    $CVSROOT/CVSROOT/readers 파일에서 줄마다 cvs 사용자 이름을 기록합니다.
    (4).쓰기 권한이 있는 사용자 설정
    $CVSROOT/CVSROOT/writers 파일에서 줄마다 cvs 사용자 이름을 기록합니다.
    readers와 writers에 있는 사용자는 읽기 권한만 가지고 있습니다.
     

    2. cvs 암호 서버 설정


    (1).inet 서버
    파일/etc/services:
    cvspserver 2401/tcp

    파일/etc/inet.conf:
    cvspserver stream tcp nowait root /usr/local/bin/cvs cvs -f /
    --allow-root=$CVSROOT pserver

    (2).xinet 서버
    cvspserver 파일 편집:
    service cvspserver
    {
    port = 2401
    socket_type = stream
    wait = no
    user = root
    server = /usr/bin/cvs
    server_args = -f --allow-root=$CVSROOT pserver
    }

    (3).클라이언트 구성
    환경 변수 CVSROOT 설정:
    CVSROOT=:pserver:username@hostname(ip):[port]path

    예:
    :pserver:[email protected]:2402/home/cvsroot
    :pserver:[email protected]:/home/cvsroot

    (4).고객 로그인/로그아웃
    cvs login
    cvs logout

     

    3. 서버 초기화


    환경 변수 CVSROOT가 설정된 경우 다음을 수행합니다.
    cvs init

    그렇지 않으면 다음을 수행합니다.
    cvs -d path init

    여기서 path는 $CVSROOT와 같습니다.
     

    4. 기초 사용


    (1).새 항목 만들기 (템플릿)
    항목이 있는 디렉토리에 들어가려면 다음과 같이 하십시오.
    cvs [ -d $CVSROOT] import [-m log] name VENDOR START

    VENDOR는 개발자의 ID를 나타내고 START는 시작 버전 레이블을 나타냅니다.
    예:
    cd eSWITCH
    cvs import eSWITCH v s

    (2).작업 복사본 꺼내기
    cvs checkout [ -d dir ] module

    로컬 옵션 - d는module 이름과 같은 디렉터리가 아닌 디렉터리dir에 복사합니다.
    cvs는 파일의 시간 스탬프를 사용하기 때문에 서버와 클라이언트의 시계를 동기화하는 것이 중요하다.
    (3).창고와 복사의 차이를 비교하다
    cvs diff filename
    cvs diff -c filename( )

    (4).작업 복사본 제출
    cvs commit [-m log] [filename]

    한 번에 여러 개의 파일을 제출할 때, 이 파일들은 같은 로그 정보를 공유합니다.
    (5).작업 복사본 업데이트
    cvs update [ filename ]

    (6).로그 정보 보기
    cvs log filename

    (7).버전 반환
    방법1: 이전 버전을 꺼내서 다시 제출합니다.예:
    cvs update
    cvs up -p -r1.2 test.c >test.c
    cvs ci test.c

    방법 2: 조인 옵션을 사용합니다.예:
    cvs up -j 1.3 -j 1.2 test.c
    cvs ci test.c

    1.3 버전과 1.2b 버전 간의 차이를 현재 1.3 버전에 보충하면 1.3 버전에서 1.2에서 1.3 사이의 변화를 또 뺀 셈이다.
    (8).디렉토리 또는 파일 추가
    디렉토리 또는 파일을 만든 후 다음을 수행합니다.
    cvs add newfile

    파일의 경우 다음과 같이 커밋해야 합니다.
    cvs ci newfile

    (9).파일 삭제
    rm newfile
    cvs remove newfile

    또는:
    cvs remove -f newfile

    마지막으로 제출:
    cvs ci newfile

    (10).디렉터리 삭제
    우선 이 디렉터리에 있는 모든 파일을 삭제하고 업데이트의 -P 옵션을 사용하여 디렉터리를 삭제합니다.
    cd newdir
    cvs remove -f new.c
    cd ...
    cvs update -P

    cvs 업데이트를 실행할 때, cvs는 작업 복사본이 만들어진 후에 창고에 새로 추가된 디렉터리를 자동으로 꺼내지 않습니다.해결 방법은 업데이트의 -d 옵션을 사용하는 것입니다.
    cvs update -d

    (11).파일 이름 바꾸기
    메서드 1, cvs에서 이전 파일을 삭제하고 새 파일을 추가합니다.
    mv old new
    cvs remove -f old
    cvs ci old
    cvs add new
    cvs ci new

    메서드 2, 서버에 있는 파일을 직접 수정하고 아무도 이 파일에 접근하지 않도록 해야 합니다. 그렇지 않으면 예측할 수 없는 결과를 초래할 수 있습니다.
    cd $CVSROOT/module
    mv old,v new,v

    (12).디렉토리 이름 바꾸기
    메서드 1, 새 디렉토리를 만들고, 이전 디렉토리의 파일을 새 디렉토리로 이동하고, 이전 파일을 삭제하고, 새 디렉토리를 추가하고, 새 파일을 추가합니다.
    mkdir newdir
    mv olddir/* newdir
    cvs remove olddir/*
    cvs ci
    cvs add newdir
    cvs ci newdir

    방법 2, cvs 서버 창고에서 디렉터리를 이동합니다.
    cd $CVSROOT/module
    mv olddir newdir

     

    5. 일반 명령 약어


    cvs checkout:cvs co;
    cvs commit:cvs ci;
    cvs update:cvs up;
    cvs status:cvs st;
     

    6. 레이블 관리


    (1).레이블 만들기
    cvs tag tagname

    (2).태그 이름 지정
    문자로 시작하여 중간에 문자, 숫자, 밑줄, 하이픈을 포함할 수 있습니다.
    (3).태그 삭제
    cvs tag -d tagname

    (4).레이블 이름 바꾸기
    새 레이블을 부착한 다음 이전 레이블을 제거합니다.
    cvs tag -r tag1 tag2
    cvs tag -d tag1

    (5).파일의 레이블이 다른 버전으로 지정되도록 수정하기
    cvs tag -r new-version -F tag1 filename

    예:
    cvs tag -r 1.6 -F tag1 test.c

    (6).레이블 보기
    cvs status -v filename

    (7).특정 구속 레이블
    날짜에 따라 태그 붙이기:
    cvs rtag -D date tagname module

    버전/레이블에 레이블을 붙이려면 다음과 같이 하십시오.
    cvs rtag -r revision/tag newtag module

    (8).특정 버전 가져오기
    cvs update -r revison/tag module
    cvs update -D date module

    (9).최신 버전으로 복원
    cvs update -A

     

    7. 버전 분기


    (1).분기 버전 번호
    x.y 버전의 지점 번호는 x.y.2, x.y.4, x.y.6 등이다.
    (2).작업 복사본에 분기 생성
    버전 코드를 체크 아웃하려면 다음과 같이 하십시오.
    cvs checkout -r tag module

    생성:
    cvs tag -b branch-tag module

    (3).창고에 직접 분기 만들기
    cvs rtag -b -r tag branch-tag module

    (4).버전 분기 액세스
    방법 1. 줍기:
    cvs checkout -r branch-tag module

    메서드 2, 버전 전환:
    cvs update -r branch-tag

    (5).브랜치 결합
    마스터 디렉토리에서 다음을 수행합니다.
    cvs update -j branch-tag [ filename ]

    매번 합병할 때마다 지점 기부에서 지점의 최신 버전 사이의 모든 수정을 주간에 합병한다.
    병합된 버전 범위를 지정할 수 있습니다.예:
    cvs up -j 1.1.1.1.6.1 -j rel-20021010-brach test.c

    분기rel-20021010-brach를 1.1.1.1.1.6.1에서 최신 버전 사이의 수정을 주간에 통합합니다.
    여러 번 반복적으로 합병하는 기교 중 하나는 합병할 때마다 지점을 라벨에 붙이는 것이다. 이렇게 하면 합병할 때마다 지점의 버전에 라벨이 표시되어 있다.
    (6).브랜치에 마스터 결합
    분기 디렉토리에서 다음을 수행합니다.
    cvs update -j HEAD

    그 중에서 HEAD는 키워드로 메인 코드 트리의 머리, 즉 모든 최신 메인 코드 버전을 나타낸다.
     

    8.cvs 출력 export


    cvs 흔적이 없는 원본 코드를 꺼내기:
    cvs exprot -r tag [ -d dir ] module

     

    9. 작업 복사본 지우기

    cvs release -d module

     

    10. 로그 관리


    (1).세부 수정 기록 보기
    cvs annotate [ -r revision/tag | -D date ] [ filename ]

    (2).기록 보기
    cvs history

    (3).로그 정보 수정
    cvs admin -m revsion: “messages” filename

    공유 로그의 경우 각 파일에 대해 상기 작업을 단독으로 수행해야 합니다.
     

    11. 키워드 확장


    cvs의 키워드는 두 개의 "$"기호를 사용하며, 중간은 rcs의 특정 키워드입니다.자주 사용하는 목록은 다음과 같습니다.
    $Revision$
    버전 번호로 자동 확장됩니다.
    $Log$
    로그 정보가 누적됩니다.
    업데이트할 때마다 누적됩니다. 너무 길면 낡은 주석을 수동으로 삭제할 수 있습니다.
    $Author$
    버전을 제출한 사용자의 사용자 이름으로 확장됩니다.
    $Date$
    지난번에 제출한 날짜, 시간.
    $Id$
    파일 이름, 버전 번호, 날짜, 작성자, 상태로 확장되며 잠긴 사용자의 사용자 이름도 있습니다.
    $Source$
    전체 경로가 있는 원본 코드 파일 이름으로 확장합니다.
     

    12. 모듈 구성


    (1).모듈 단계 정의
    모듈 파일을 수정하려면 먼저 체크아웃해야 합니다.
    cvs checkout CVSROOT/modules

    수정 완료 제출:
    cvs ci CVSROOT/modules

    (2).문법
    module-name [ options ] dir [ files …]

    (3).사용 예
    프로젝트/acctmgmt로 구성된 모듈:
    acctmgmt  project/acctmgmt

    디렉토리에 있는 세 개의 파일로 구성된 모듈:
    acctmgmt  prject/acctmgmt readme install license

    지정된 디렉토리의 하위 디렉토리 doc가 없습니다.
    acctmgmt  !project/acctmgmt/doc project/acctmgmt

    별칭 정의(3개의 모듈로 구성):
    acctmgmt -a init mm file

    참조:
    lk & linux_kernle

    (4).모듈 옵션
    -dname: 모듈 이름 대신 작업 복사 이름을 매개 변수 값으로 만들기;
    -e prog: 파일이 출력(exprot)될 때 실행되는 프로그램;
    -i prog: 모듈을 제출할 때 실행하는 프로그램;
    -o prog: 모듈을 주울 때 실행하는 프로그램;
    -sstatus: 모듈에 상태 정의하기;
     

    13. 바이너리 파일 구성


    cvs에 바이너리 파일을 저장하려면 "-kb"옵션을 사용하여 cvs가 파일을 가공하는 것을 금지해야 합니다.이 옵션은 cvsadd에서만 사용할 수 있습니다."-kb"는 Sticky Option입니다.
    (1).cvswrappers
    $CVSROOT/CVSROOT/cvswrappers 파일을 설정하여 cvs가 파일 확장자에 따라 바이너리 파일을 구별합니다.
    (2).수정 방법
    모듈즈와 같은 방식.
    (3).문법
    wildcard [ option val ] [ option val ] …

    (4).옵션
    - m MERGE|COPY: 업데이트 방식, MERGE는 업데이트 시 버전 간 차이의 합병을 나타내고, COPY는 직접 복사를 나타내며 합병 처리를 하지 않습니다.
    -k'b'|'o'|'kkv': 키워드 확장,'b'는 2진법을 나타낸다.o'는 "off"를 나타내고 키워드 확장을 하지 않지만 서로 다른 플랫폼 간의 리턴, 줄 바꾸기 전환을 한다.kkv'는 확장 키워드의 값을 표시합니다.
    (5).사용 예
    *.gif -k ‘b’
    *.jpg -k ‘b’
    *.doc -k ‘b’
    *.bmp -k ‘b’
    *.mpp -k ‘b’
    *.xls -k ‘b’
    *.ppt -k ‘b’

     

    14. 트리거 파일


    (1).commitinfo
    제출이 발생할 때마다 실행되는 프로그램을 정의합니다.제출된 파일 이름은 프로그램의 매개 변수로 사용됩니다.
    (2).loginfo
    제출 작업이 완료되기 전에 트리거된 프로그램을 정의합니다. 사용자가 제출할 때 쓴 로그 정보가 프로그램에 전송되는 표준 입력입니다.
    (3).verifymsg
    제출할 때, 로그 정보는 정의된 프로그램의 표준 입력으로 보내지고, 프로그램이 0으로 돌아오면 제출되고, 0이 아니면 제출이 종료됩니다.
    (4).rcsinfo
    로그 파일의 템플릿 파일을 정의합니다.
    (5).taginfo
    탭 문자열, 탭 작업, 창고, 파일 버전이 프로그램에 매개 변수로 전달되는 탭을 정의합니다.
     

    15. 기타 구성 파일


    (1).checkoutlist
    cvs의 버전 관리 아래 놓을 사용자 정의 프로필을 지정합니다.
    (2).cvsignore
    cvs에서 무시된 파일 종류를 지정합니다.
    기본적으로 무시되는 파일 유형은 다음과 같습니다.
    RCS SCCS CVS CVS.adm
    RCSLOG cvslog.*
    Tags TAGS
    .make.state .nse_depinfo
    *~ #* .#* ,* _$* *.$
    *.old *.bak *.BAK *.orig *.rej *.del-*
    *.a *.olb *.o *.obj *.so *.exe
    *.Z *.elc *.ln
    core

    좋은 웹페이지 즐겨찾기