建立或更新 modules 指定的工作目錄,包含原始碼副本。使用大多數其他 cvs 命令之前,你必須執行checkout
,這是因為它們大部分操作的是工作目錄。
modules 可以是原始碼目錄和檔案集合的符號名,或者目錄路徑,或倉庫裡面的檔案。符號名在 `modules
' 檔案裡面定義。參閱 modules.
隨你指定的模組,checkout
可以遞迴地建立目錄,並將適當的檔案放在裡面。你可以在任意時間編輯這些檔案(不論是否其他的開發人員也在編輯他們自己的副本); 更新它們以包括原始碼倉庫中其他人員提交的修改; 或將你的修改永久地提交到原始碼倉庫。
注意,checkout
用於建立目錄。在checkout
執行的目錄,總會建立頂級目錄,而且通常與指定的模組同名。在 module alias 情況下,建立的子目錄也許有不同的名字,但可以肯定它是乙個子目錄,並且checkout
會在解到你私人工作空間時,顯示出每個檔案的相對路徑(除非你指定了 `-q
' 全域性選項)。
checkout
建立的檔案屬性是可讀寫的,除非事先給 cvs 指定 `-r
' 選項 (參閱 global options),或cvsread
環境變數 (參閱 environment variables),或者該檔案已被監視(參閱 watches)。
注意,在乙個已經由checkout
建立的目錄裡面執行checkout
目錄是允許的。這類似給update
指定 `-d
' 選項,使得新目錄可以在工作區內置立。但checkout
使用的是模組名,而update
使用目錄名。還有,checkout
要在頂級目錄使用這種方式(以前使用checkout
的目錄),所以,在用checkout
更新已有目錄前,別忘了將目錄改到頂級目錄。
關於checkout
命令的輸出,見 update output。
checkout 選項
這些是checkout
支援的標準選項(參閱 common options,了解完整的資訊):
-d
date
使用不遲於
date 的最新修訂版。該選項是粘性的,也就是 `
-p'。參閱
-f
只與 `
-d' 或 `
-r' 標識一起使用。如果找不到匹配的修訂版,將使用最新的修訂版(而不是忽略檔案)。
-k
kflag
根據 kflag 處理關鍵字。參閱
keyword substitution。此選項是粘性的; 以後在這個工作目錄裡面更新,還是使用相同的
kflag。status
命令可以看到粘性的選項。參閱
invoking cvs,了解status
命令的資訊。
-l
只在當前工作目錄裡面執行。
-n
不執行任何檢出程式(如同在模組檔案裡面指定 `
-o' 選項; 參閱
modules)。
-p
清除空目錄。參閱
moving directories。
-p
管道方式輸出到標準輸出。
-r
遞迴方式檢出。此選項是預設的。
-r
tag[:
date]
使用
tag 修訂版,或者當
date 指定,並且
tag 是分支標籤,
tag 分支上的版本當作存在於
date 上。此選項是粘性的,含 `
-p'。參閱
common options。
除了這些,你還可以在checkout
裡面使用特殊的命令選項:
-a
重置任何的粘性標籤,日期,或 `
-k' 選項。參閱
-c
複製模組檔案,排序,輸出到標準輸出,而不是在工作目錄裡面建立和修改檔案與目錄。
-d
dir
為工作檔案建立名為
dir 的目錄,而不是使用模組名。通常,使用此標識等同於使用 `
mkdir
dir; cd
dir',然後是不帶 `
-d' 標識的檢出命令。
然而,有乙個重要的例外。習慣上,檢出單獨的專案只輸出到乙個目錄而不會包含中間空的目錄。僅在這種情況下,cvs 盡力「縮短」路徑名,避免空目錄。
例如,模組 `foo
' 包含 `bar.c
'.c' 檔案, `cvs co -d dir foo
' 命令將建立 `dir
' 目錄並將 `bar.c
' 檔案放在裡面。同樣,模組 `bar
' 裡面有 `baz
' 子目錄,其中有乙個檔案 `quux.c
'.c', `cvs co -d dir bar/baz
' 將建立 `dir
' 目錄,並將 `quux.c
' 放在裡面。
使用 `-n
' 標識將破壞這種行為。使用上面相同的模組,`cvs co -n -d dir foo
' 將建立 `dir/foo
' 目錄並放入 `bar.c
' 檔案,使用 `cvs co -n -d dir bar/baz
' 將建立 `dir/bar/baz
' 目錄並將 `quux.c
' 放在裡面。
-j
tag
用兩個 `
-j' 選項,合併第乙個 `
-j' 選項至第二個 `
-j' 之間修訂版間的修改到工作目錄。
使用乙個 `-j
' 選項,合併祖先修訂版至 `-j
' 選項指定的修訂版間的修改到工作目錄。祖先修訂版是所基於的工作目錄和 `-j
' 選項指定的修訂版的共同祖先。
另外,每個 -j 選項可以包含可選的日期規格,當與分支使用時,可以限定在指定日期內選擇修訂版。可選的日期由標籤中增加的 (:) 分號指定: `-j
symbolic_tag
:date_specifier
'。 參閱 branching and merging.
-n
只與 `
-d dir' 一起使用。採用這個選項,
cvs 在檢出單獨模組時,將不再「縮短」工作目錄裡面的模組路徑。參閱 `
-d' 標識中的例子和討論。
-s
類似 `
-c',但包含所有模組的狀態,並按狀態字串排序。參閱
modules, 了解 `
-s' 選項的資訊,它用在模組檔案裡面設定模組狀態。
checkout 示例
獲得模組 `tc
' 的副本:
$ cvs checkout tc獲得一天以前 `tc
' 模組的副本:
$ cvs checkout -d yesterday tc
checkout的回顯問題
來總結一下checkout欄的回顯問題,就是在編輯頁面裡面能知道 的狀態弄好的了 就類似於這樣,增加的時候這個check欄不會有勾選,但是在對應的編輯頁面的時候能知道是那些地方勾選了,再進行模組功能的選擇修改。function 就只是增加了乙個js來進行判斷,來說一下實現邏輯 首先先得到這個每乙個鑑...
SVN中的check out與export的區別
一 check out跟check in對應,export跟import對應。二 check out匯出獲得檔案後,匯出的檔案仍處於svn版本控制中,與版本庫保持關聯,比如你可以進行svn update或者svn commit操作。同時匯出資料夾下有乙個.svn的隱藏資料夾,儲存著一些版本的元資料資...
git的reset和checkout的區別
在講git的reset和checkout的區別之前,不得不說說head index working directory三個區域。head index working directory git裡有三個區域很重要 head 指向最近一次commit裡的所有snapshot index 快取區域,只有i...