기본 CVS 명령

12876 단어 cvs
http://fedora.gro.clinux.org/docs/documentation-guide-zh_CN/sn-cvs-cvscommands.html
10.4. 기본 CVS 명령
시스템 의 CVS 접근 을 설정 한 후 처리 할 모듈 이 검출 되 었 습 니 다.
기교.
환경 변 수 를 설정 해 야 하 는 지, 명령 행 옵션 $CVSROOT -m 을 설정 해 야 하 는 지 에 대해 서 는 현재 작업 디 렉 터 리 에 하위 디 렉 터 리 가 있 는 지 확인 해 야 합 니 다.하위 디 렉 터 리 repository 가 있 으 면 CVS 는 명령 행 옵션 설정 을 무시 합 니 다.
10.4.1. 검출 모듈
모듈 을 한 번 만 검출 하 십시오.모듈 이 로 컬 에 검출 된 후, 그것 은 줄곧 거기에 있 었 다.
모듈 을 찾 으 려 면 다음 명령 을 실행 하 십시오:
$ cvs co  <module-name>

例如,要检出 example-tutorial 模块,先进入工作目录,然后执行下面的命令:

$ cvs co example-tutorial 

当前目录下将新建一个名字是 example-tutorial/ 的子目录。

如果检出模块时没有指定分支名称,默认就是 CVS 中模块的 HEAD 分支。

10.4.1.1. 检出模块的分支

可以将 CVS 分支视为一篇手册的某个版本,或是一个文件的不同版本。

要检出模块的分支,运行下面的命令:

$ cvs co -d  <directory> -r  <branchname> <module-name>

将创建名为 <directory> 的目录, 模块 <module-name><branchname> 分支的文件将被复制到这个目录中。

例如,要检出 mymodule 模块的 BRANCH-VERSION-1.2 分支,运行命令:

$ cvs co -d mymodule-1.2 -r BRANCH-VERSION-1.2 mymodule 

模块的 BRANCH-VERSION-1.2 分支将被检出到 mymodule-1.2 目录中。

要查看文件有哪些分支和标记,运行命令:

$ cvs status -v <filename>

例如,文件 foo.sgml 的状态如下:

          
===================================================================
File: foo.sgml    Status: Up-to-date
Working revision:    1.47
Repository revision: 1.47    /cvs/docs/custom-guide/rhl-cg-en.sgml,v
Sticky Tag:          (none)
Sticky Date:         (none)
Sticky Options:      (none)
Existing Tags:
BRANCH-VERSION-1.2              (branch: 1.25.2)

CVS/ (기 존 태그) 에 '분기' 로 표 시 된 태그 만 분기 로 검출 할 수 있 습 니 다.
10.4.2. 파일 업데이트
모듈 에 있 는 파일 의 최신 버 전 을 가 져 오 려 면 모듈 파일 을 포함 하 는 디 렉 터 리 로 전환 하고 명령 을 실행 하 십시오.
$ cvs update 

模块所有文件的最新版本将下载到本地。如果您看到了文件冲突提示,请参考 제. 10.4.8 충돌 해결

10.4.3. 提交文件

在本地修改模块的文件之后,将它们提交,以在 CVS 服务器上保存更改:

$ cvs commit -m "some log message" filename
注意

如果您想用喜欢的文本编辑器来撰写日志信息,并且已经定义了 $VISUAL 或 $EDITOR 环境变量,就可以忽略 -m "some log message"。编辑缓冲区中会包含一些描述修改的注释,您在添加自己的文字时,不必删掉它们。

日志信息应当尽可能有描述性,这样您和共同作者都可以了解做过了哪些修改。如果日志消息是 updated some files(更新了一些文件),那它无法描述修改了什么,将来对您毫无用处。如果您修正了一个错误,应当包含 Bugzilla 引用。

<filename> 可以是一个文件名,一系列以空格分隔的文件名,或者一组以通配符指定的文件名,类似 *.pngfoo-*.sgml

如果在 commit 命令中没有给出文件名或通配符,所有修改都会被提交到服务器。这个命令是递归的,模块中任何子目录的修改也都会被提交。不带文件名执行 commit 命令时要小心,因为您可能不记得改过了什么。

如果您看到了文件冲突,请参考 제. 10.4.8 충돌 해결

10.4.4. 添加文件

要向模块添加文件,在本地目录中创建这个文件,然后执行下面的命令:

$ cvs add  file-to-add

添加文件之后,必须 commit(提交)添加的文件到服务器:

$ cvs commit -m "some log message" file-to-add

10.4.5. 管理二进制文件

通常存档的文件是简单的文本文件,但是有时也会存档二进制文件。CVS 程序可以识别大多数文件扩展名,类似 .png.jpg,这样就不会做坏事。

当文件被检出时,cvs 扫描它,查找特殊的关键字,类似 "$id:$",然后替换为相应的值, 例如版本号。

关键字替换通常会损坏二进制文件,因此如果 CVS 无法正确识别文件为二进制文件,必须关闭替换。标识文件为二进制就关闭了关键字替换,输入命令:

 $ cvs admin -kk filename
CVS/ 명령 을 사용 하기 전에 파일 이 CVS 창고 에 검색 되 어야 합 니 다.이 경우 오류 가 발생 하지 않 습 니 다. 키워드 확장 은 파일 이 검출 되 고 로 컬 디 렉 터 리 로 복사 되 었 을 때 진행 되 는 것 이지 창고 에 제출 되 었 을 때 가 아 닙 니 다.
바 이 너 리 파일 복구
바 이 너 리 파일 을 창고 에 검사 하면 검출 할 때 손상 되 었 으 니 조급해 하지 마 십시오.위의 $CVSROOT 명령 을 실행 하고 로 컬 파일 을 삭제 한 다음 에 다시 검출 하면 됩 니 다.
10.4.6. 파일 삭제
모듈 에 파일 이 더 이상 필요 하지 않 으 면 -m 명령 을 사용 하여 삭제 한 다음 Existing Tags 명령 으로 서버 에 제출 하 는 것 을 삭제 합 니 다.모듈 의 현재 버 전이 파일 을 삭제 하 더 라 도 이 파일 의 사본 은 서버 에 남아 있 으 며 언제든지 admin 명령 으로 복구 할 수 있 습 니 다.
$ cvs rm -f  file-to-remove

删除文件后,必须 commit(提交)删除:

$ cvs commit -m"some log message" file-to-remove

在用 commit 命令提交删除时不能使用通配符。必须明确地指定文件名。

如果需要重命名某个文件,最好在 CVS 服务器上重命名它,这样文件的历史可以保留下来。如果需要重命名文件,就向 [email protected] 发送一封邮件,写明要重命名的文件。

10.4.7. 文件的状态

有时需要查看模块中文件的 status(状态)。执行命令:

$ cvs status  filename

仓库文件的状态报告如下所示:

Up-to-date

您的文件版本正是 CVS 服务器上的最新版本。

Locally Modified

您已从服务器上更新了最新的版本,并且做了修改。

Locally Added

您使用 cvs add 命令添加了文件,但是尚未提交文件的添加。

Locally Removed

您使用 cvs remove 命令删除了文件,但是尚未提交文件的删除。

Needs Checkout

服务器上有新版本的文件,您需要更新。尽管状态中说,需要检出,实际的意思是,您需要用 cvs update 命令更新文件。

Needs Patch

本地文件需要打补丁以更新到服务器的最新版。执行 cvs update 命令来解决。

Needs Merge

服务器上有更新的版本,您的本地版本却做了未提交的修改。这种情况可能经常发生,如果您没有获取最新版本就进行修改的话。

File had conflicts on merge

类似 Needs Merge,但是当您执行 cvs update 命令时,将无法自动解决冲突。关于如何解决冲突请参考 제. 10.4.8 충돌 해결

Unknown

CVS 服务器不知道文件的任何信息。它没有被本地添加或删除,也从未提交到服务器上。这种情况通常发生在不应被提交到 CVS 服务器的文件上,例如 generated-index.sgml,或者是想添加到仓库但尚未执行 cvs add 命令的文件。

10.4.8. 解决冲突

如果您修改了一个文件,而另一个人修改了同样的区域并且先提交了,您在提交文件或更新本地目录时就会看到类似下面的消息:

        
RCS file: /cvs/docs/module-name/filename.sgml,v
retrieving revision 1.12
retrieving revision 1.13
Merging differences between 1.12 and 1.13 into filename.sgml
rcsmerge: warning: conflicts during merge
cvs server: conflicts found in filename.sgml
C filename.sgml


충돌 을 해결 하려 면 파일 을 열 고 검색 admin 한 다음 에 어떤 버 전이 정확 한 지 판단 해 야 합 니 다.예 를 들 면:
        
<para>
Some sentence.
<<<<<<< filename.sgml
A sentence that was changed in the working copy.
=======
A same sentence that was changed differently and committed.
>>>>>>> 1.13
</para>

removecommit 사이 의 내용 은 업무 목록 에 있 는 것 이다.add<<<<<<< 사 이 는 서버 의 내용 이다.
파일 을 수정 하고 충돌 을 해결 한 후에 제출 합 니 다.
10.4.9. 작은 매듭
모든 명령 은 현재 디 렉 터 리 가 정확 하 다 고 가정 합 니 다.
명령 하 다.
묘사 하 다.<<<<<<< 또는 =======모듈 내용 을 디 렉 터 리 에 저장 하기 위해 ======= 라 는 디 렉 터 리 를 만 듭 니 다.>>>>>>> -r cvs checkout <module-name> cvs co <module-name>
디 렉 터 리 를 만 들 고 <module-name> 모듈 의 cvs co -d <directory> 가 지 를 디 렉 터 리 에 놓 습 니 다.<branchname> 또는 <module-name>서버 에서 파일 을 최신 버 전 으로 업데이트 합 니 다.<directory>
파일 "filename" 을 CVS 서버 에 추가 합 니 다.<module-name>
로 컬 컴퓨터 의 파일 <branchname> 을 최신 버 전 으로 제출 합 니 다.cvs update
파일 보기 cvs up 의 제출 정보cvs add <filename>
파일 의 상태 보기, 유사 cvs commit -m "My message" <filename><filename>
파일 에 있 는 태그 와 분기 보기cvs log <filename>
파일 의 작업 버 전과 분기 의 최신 버 전의 차이 점 을 봅 니 다.<filename>
파일 1.1 과 1.2 버 전의 차이 점 보기
시계. 10.1. 기본 CVS 명령
시스템 의 CVS 매 뉴 얼 을 읽 고 더 많은 정 보 를 얻 으 십시오. 위 치 는 cvs status <filename> / cvs. ps (CVS 버 전이 다 를 수 있 습 니 다) 입 니 다.CVS 홈 페이지 도 방문 할 수 있 으 며 위 치 는 http://www.cvshome.org/ 입 니 다.

좋은 웹페이지 즐겨찾기