生活随笔
收集整理的這篇文章主要介紹了
cvs update 的输出标志/update常用几个参
小編覺(jué)得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.
http://hithoper.blog.hexun.com/19367152_d.html
http://man.chinaunix.net/develop/cvsdoc_zh/
update 和 checkout 在執(zhí)行中,會(huì)為每個(gè)文件打印一行提示信息,文件的狀態(tài)通過(guò)前面的單個(gè)字符指明:
U file
文件按要求從倉(cāng)庫(kù)得到更新。用在那些倉(cāng)庫(kù)里面有但你的工作目錄沒(méi)有的文件,以及工作目錄里面沒(méi)有修改過(guò),但舊于倉(cāng)庫(kù)的文件。 P file
類似 `U ',但是 cvs 服務(wù)器發(fā)送的是補(bǔ)丁而不是整個(gè)文件。完成與 `U ' 同樣的工作,但降低帶寬的使用。 A file
添加到你的私人副本中,當(dāng)你使用 commit 后會(huì)加到倉(cāng)庫(kù)。這可以提醒你需要提交文件。 R file
從你的私人副本中刪除,當(dāng)你執(zhí)行 commit 命令后會(huì)從倉(cāng)庫(kù)清除。這可以提醒你文件需要提交。 M file
在你的工作目錄中,文件已經(jīng)修改。 `M ' 可以標(biāo)明你工作的文件的兩種狀態(tài): 同樣的文件倉(cāng)庫(kù)里面沒(méi)有修改,你的文件仍保持原樣; 或者倉(cāng)庫(kù)里面的文件也有修改,但在工作目錄里成功合并,沒(méi)有沖突發(fā)生。
如果合并,cvs 將打印一些信息,并建立工作文件的備份(與 update 執(zhí)行前相同)。update 運(yùn)行時(shí)會(huì)打印相應(yīng)的名字。
C file
合并你與倉(cāng)庫(kù)中修改到 file 時(shí)檢測(cè)到?jīng)_突。file (你工作目錄里面的副本) 是合并兩個(gè)修訂版的結(jié)果; 工作目錄里面還有未修改文件的副本,名為 .# file. revision ,其中 revision 是你修改的文件所基于的修訂版。解決沖突見(jiàn) Conflicts example 說(shuō)明。 (注意,在有些系統(tǒng)里面,如果一段日子沒(méi)有訪問(wèn) .# 起頭的文件,系統(tǒng)會(huì)自動(dòng)清除。如果你需要保留這些原始的文件副本,最好將其改名) vms 系統(tǒng)中,文件名以 __ 開(kāi)始,而不是 .# 。 ? file
file 處于工作目錄,但是倉(cāng)庫(kù)里面沒(méi)有對(duì)應(yīng)的文件,它們也不是 cvs 忽略的文件(參見(jiàn) `-I ' 選項(xiàng)的說(shuō)明,以及 參閱 cvsignore )。
?
?
update的幾個(gè)常用參數(shù):
-D date 使用不遲于 date 的最新修訂版。這是一個(gè)粘性的選項(xiàng),含有 `-P '。見(jiàn) Sticky tags ,了解更多粘性標(biāo)簽/日期的信息。 -f 只與 `-D ' 或 `-r ' 標(biāo)識(shí)一起使用。如果沒(méi)有匹配的修訂版,獲取最新的修訂版(而不是忽略這些文件)。 -k kflag
根據(jù) kflag 處理關(guān)鍵字。參閱 Keyword substitution 。此選項(xiàng)是粘性的; 以后在這個(gè)工作目錄里面更新,還是使用相同的 kflag。status 命令可以看到粘性的選項(xiàng)。參閱 Invoking CVS ,了解 status 命令的信息。 -l 只在當(dāng)前工作目錄里面執(zhí)行。 參閱 Recursive behavior . -P 清除空目錄。參閱 Moving directories . -p 管道方式輸出到標(biāo)準(zhǔn)輸出。 -R 遞歸方式檢出(默認(rèn))。 參閱 Recursive behavior . -r tag
[: date
] 獲得 rev 修訂版/標(biāo)簽,或者當(dāng) date 指定,并且 tag 是分支標(biāo)簽,分支 tag 上的版本可以當(dāng)作是在 date 上。此選項(xiàng)是粘性的,含`-P '。參閱 Sticky tags 和 Common options 了解更多粘性標(biāo)簽/日期的信息。
update 還有一些特殊的選項(xiàng)。
-A 重置任何的粘性標(biāo)簽,日期,或 `-k ' 選項(xiàng)。參閱Sticky tags ,了解更多粘性標(biāo)簽/日期的信息。 -C 用倉(cāng)庫(kù)里面干凈的副本覆蓋本地的修改(但修改過(guò)的文件另存為 .# file. revision )。 -d 創(chuàng)建倉(cāng)庫(kù)里面存在而工作目錄里面沒(méi)有的目錄。通常,update 只作用于你工作目錄里面已經(jīng)存在的文件和目錄。 此選項(xiàng)通常用來(lái)更新最初檢出創(chuàng)建的目錄; 但也有不好的副作用。如果你在建立工作目錄時(shí),刻意避免倉(cāng)庫(kù)里面的某些目錄(通過(guò)模塊名,或在命令行上明確指定所需的文件和目錄),用 `-d ' 選項(xiàng)更新將創(chuàng)建這些你不想要的目錄。
-I name
更新時(shí)忽略匹配 name 的文件(在工作目錄里面)。你可以在命令行上多次使用 `-I ' 指定多個(gè)要忽略的文件。`-I ! ' 可以避免忽略任何文件。參閱 cvsignore , 了解 cvs 忽略文件的其他方式。 -W spec
指定更新時(shí)需要過(guò)濾的文件名。你可以重復(fù)使用此選項(xiàng)。 spec 可以是文件名模板,與 .cvswrappers 文件里面的類型相同。參閱 Wrappers .
-j revision
通過(guò)兩個(gè) `-j ' 選項(xiàng),合并第一個(gè) `-j ' 選項(xiàng)指定的修訂版至第二個(gè) `j ' 選項(xiàng)修訂版的變更到工作目錄。 使用一個(gè) `-j ' 選項(xiàng),合并最初的修訂版至 `-j ' 選項(xiàng)指定修訂版的變更到工作目錄。最初的修訂版是工作目錄文件基于的修訂版和 `-j ' 選項(xiàng)指定修訂版共同的祖先。
注意使用 `-j tagname ' 選項(xiàng)而不是 `-j branchname ',合并的通常不是從分支上刪除文件的變更。參閱 Merging adds and removals , 了解詳細(xì)情況。
另外,每個(gè) `-j ' 選項(xiàng)可以包含可選的日期規(guī)格,當(dāng)用于分支時(shí),可以限制修訂版處于指定日期之內(nèi)。可選的日期通過(guò)分號(hào)(:)加在標(biāo)簽里面: `-j Symbolic_Tag: Date_Specifier '.
?
===
http://man.chinaunix.net/develop/cvsdoc_zh/Keyword-substitution.html#Keyword-substitution
只要你在工作目錄中編輯源代碼,你可以隨時(shí)使用 `cvs status ' 和 `cvs log ' 命令了解文件的狀況。一旦你從開(kāi)發(fā)環(huán)境中導(dǎo)出了這些文件,將很難識(shí)別這些文件的版本。
cvs 提供一種關(guān)鍵字替換(keyword substitution),或者叫作關(guān)鍵字?jǐn)U展(keyword expansion),機(jī)制來(lái)幫助識(shí)別這些文件。在文章中嵌入 $keyword$ 和 $keyword:...$ 形式的字符串,以后在獲得文件新版本時(shí)將自動(dòng)被 $keyword:value$ 字串所替代。
?
=================
12.1 關(guān)鍵字列表
這是關(guān)鍵字列表:
$Author$
檢入該版本的用戶登錄名。
$CVSHeader$
標(biāo)準(zhǔn)的頭部(類似去掉 CVS 根的 $Header$)。包括 rcs 文件的全路徑、版本號(hào)、日期(UTC)、作者、狀態(tài)、加鎖人(如果有鎖)。在使用 cvs 中文件通常不用加鎖。 注意,該關(guān)鍵字是新加到 cvs 的,假如舊的文件中有 $CVSHeader$ 并有其他意義,會(huì)帶來(lái)一些問(wèn)題。可以在 CVSROOT/config 中用 KeywordExpand=eCVSHeader 來(lái)排除此關(guān)鍵字。參閱 Configuring keyword expansion。
$Date$
該版本被檢入的日期與時(shí)間(UTC)。
$Header$
標(biāo)準(zhǔn)的 header 包括 rcs 文件的全路徑、版本號(hào)、日期(UTC)、作者、狀態(tài)、加鎖人(如果有鎖)。 在使用 cvs 中文件通常不用加鎖。
$Id$
除了 rcs 文件不包括路徑,其余和 $Header$ 相同。
$Name$
檢出此文件所用的標(biāo)簽名。該關(guān)鍵字只在檢出時(shí)顯式加上標(biāo)簽時(shí)擴(kuò)展。比如,運(yùn)行 cvs co -r first 命令時(shí),關(guān)鍵字?jǐn)U展為 `Name: first '。
$Locker$
鎖定版本的用戶登錄名(如果沒(méi)有加鎖此項(xiàng)為空,一般就如此,除非使用 cvs admin -l 加鎖)。
$Log$
日志信息在提交時(shí)提供,前面是一個(gè) header 包括 rcs 文件名、版本號(hào)、作者、日期(UTC)。已有的日志信息不會(huì)被替換。相反,新日志信息將插在 $Log:...$之后。默認(rèn),每一新行前面使用同樣的 $Log$ 關(guān)鍵字前的字符串, 除非在 CVSROOT/config 里面設(shè)置 MaxCommentLeaderLength。 例如,文件文件包含:
/* Here is what people have been up to:** $Log: frob.c,v $* Revision 1.1 1997/01/03 14:23:51 joe* Add the superfrobnicate option**/
新增的行擴(kuò)展 $Log$ 關(guān)鍵字后前面也會(huì)帶有 ` * ' 字符。與以前版本的 cvs 和 rcs 不同,rcs 文件中的不再使用 comment leader。 $Log$ 關(guān)鍵字將會(huì)在源文件中累積日志紀(jì)錄。有些原因可能會(huì)造成問(wèn)題。
如果 $Log$ 關(guān)鍵字的前綴超出 MaxCommentLeaderLength 長(zhǎng)度, CVS 將跳過(guò)關(guān)鍵字?jǐn)U展,除非在 CVSROOT/config 中設(shè)置 UseArchiveCommentLeader,并且有 `comment leader ' 設(shè)置在 RCS archive 文件,使得 comment leader 替代使用。為了了解更多關(guān)于 RCS archive 中設(shè)置 comment leader,參閱 admin. 了解更多默認(rèn)的 $Log$ 替換配置,參閱 config.
參閱 Log keyword.
$RCSfile$
不帶路徑的 RCS 文件名。
$Revision$
該文件的修訂版本號(hào)。
$Source$
RCS 文件的完整路徑。
$State$
賦予版本的狀態(tài)。可以通過(guò)使用 cvs admin -s 命令設(shè)置狀態(tài)—參閱 admin options。
Local keyword
CVSROOT/config 文件中的 LocalKeyword 選項(xiàng)可以被用作其他關(guān)鍵字的別名: $Id$, $Header$, or $CVSHeader$。例如,在 CVSROOT/config 中包含 LocalKeyword=MYBSD=CVSHeader 這樣一行,帶有 $MYBSD$ 的文件會(huì)像 $CVSHeader$ 一樣被擴(kuò)展。如果 src/frob.c 文件包含這個(gè)關(guān)鍵字,像下面這樣: /** $MYBSD: src/frob.c,v 1.1 2003/05/04 09:27:45 john Exp $*/ 許多倉(cāng)庫(kù)使用 “l(fā)ocal keyword” 這類特性。 cvs 的一個(gè)舊補(bǔ)丁提供 LocalKeyword 特性,它們使用稱為“custom tag”或“l(fā)ocal tag”特性的 tag= 選項(xiàng)。它被用于它們稱為 tagexpand= 選項(xiàng)。在 cvs 中另一個(gè)選項(xiàng)為 KeywordExpand。參閱 Configuring keyword expansion。
知名的項(xiàng)目中有這些例子: $FreeBSD$, $NetBSD$, $OpenBSD$, $XFree86$, $Xorg$.
使用它的優(yōu)點(diǎn)在于可以使用自己的版本信息而不破壞上面版本(它們可能使用不同的 local keyword 或標(biāo)準(zhǔn)關(guān)鍵字)。使得 bug 報(bào)告可以更恰當(dāng)?shù)刈R(shí)別第三方的錯(cuò)誤源,以及減少導(dǎo)入新版本時(shí)產(chǎn)生的沖突數(shù)。
除 local keyword 之外所有的關(guān)鍵字都可以在 CVSROOT/config 文件中用 KeywordExpand 選項(xiàng)停用—參閱 Configuring keyword expansion 獲得詳細(xì)信息。
?
====================
12.4 替換模式
每一個(gè)文件保存有一個(gè)默認(rèn)的替換模式,每個(gè)文件的工作目錄副本也有一個(gè)替換模式。前者通過(guò)用 `-k ' 選項(xiàng)的 cvs add 和 cvs admin 命令設(shè)置; 后者用 `-k ' 或 `-A ' 選項(xiàng)的 cvs checkout 或 cvs update 命令設(shè)置。 cvs diff 命令也有一個(gè) `-k ' 選項(xiàng)。參閱 Binary files 和 Merging and keywords 獲得這些例子。
可用的模式為:
`
-kkv '
使用默認(rèn)形式產(chǎn)生關(guān)鍵字字符串,如。 $Revision: 5.7 $ 對(duì)于 Revision 關(guān)鍵字。 `
-kkvl '
類似 `-kkv ',如果指定的版本現(xiàn)在被加鎖,還需要插入加鎖者的名字。鎖名與使用的 cvs admin -l 命令相關(guān)。 `
-kk '
在關(guān)鍵字字符串中只生成關(guān)鍵字名;忽略其值。例如,對(duì)于關(guān)鍵字 Revision,生成的字符串是 $Revision$ 而不是 $Revision: 5.7 $。這一選項(xiàng)在比較版本差異時(shí)忽略關(guān)鍵字替換的影響非常有用(參閱 Merging and keywords)。 `
-ko '
生成舊的關(guān)鍵字字符串,在工作中的文件與檢入前一樣。例如:對(duì)于關(guān)鍵字 Revision,如果檢入前字符串是 $Revision: 1.1 $,則生成的字串與以前相同而不會(huì)是 $Revision: 5.7 $。 `
-kb '
類似 `-ko ' 選項(xiàng),并阻止換行字符的轉(zhuǎn)換,這種轉(zhuǎn)換是因?yàn)閾Q行符在倉(cāng)庫(kù)(只是換行) 的形式與客戶機(jī)使用的操作系統(tǒng)不同。對(duì)有些系統(tǒng),比如 Unix,換行符就是行中止符,這樣就和 `-ko ' 沒(méi)什么區(qū)別。關(guān)于二進(jìn)制文件的更多信息,參閱 Binary files。在 cvs 版本 1.12.2 及之后的 `-kb ',不會(huì)被在命令行中使用 `-k ' 選項(xiàng)的 cvs add、cvs admin 或 cvs import 跨越。 `
-kv '
只為關(guān)鍵字符串生成關(guān)鍵字值。例如,對(duì)于關(guān)鍵字 Revision,生成的字串是 5.7,而不是 $Revision: 5.7 $。這種方法有助于一些難以從 $Revision: $ 這樣的字符串中剝?nèi)リP(guān)鍵字分界符的編程語(yǔ)言生成文件。但是,一旦刪除關(guān)鍵字名,以后將不能執(zhí)行關(guān)鍵字替換,所以應(yīng)小心使用該選項(xiàng)。 通常將 `-kv ' 選項(xiàng)與 cvs export 命令配合使用 —參閱 export。但請(qǐng)注意,它不能正確導(dǎo)出的文件中的二進(jìn)制文件。
?
總結(jié)
以上是生活随笔 為你收集整理的cvs update 的输出标志/update常用几个参 的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。
如果覺(jué)得生活随笔 網(wǎng)站內(nèi)容還不錯(cuò),歡迎將生活随笔 推薦給好友。