checkout 檢出用於編輯的原始碼

2021-08-22 12:57:35 字數 3735 閱讀 3797

建立或更新 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,了解完整的資訊):

-ddate

使用不遲於

date 的最新修訂版。該選項是粘性的,也就是 `

-p'。參閱

-f只與 `

-d' 或 `

-r' 標識一起使用。如果找不到匹配的修訂版,將使用最新的修訂版(而不是忽略檔案)。

-kkflag

根據 kflag 處理關鍵字。參閱

keyword substitution。此選項是粘性的; 以後在這個工作目錄裡面更新,還是使用相同的

kflag。status命令可以看到粘性的選項。參閱

invoking cvs,了解status命令的資訊。

-l只在當前工作目錄裡面執行。

-n不執行任何檢出程式(如同在模組檔案裡面指定 `

-o' 選項; 參閱

modules)。

-p清除空目錄。參閱

moving directories。

-p管道方式輸出到標準輸出。

-r遞迴方式檢出。此選項是預設的。

-rtag[:date]使用

tag 修訂版,或者當

date 指定,並且

tag 是分支標籤,

tag 分支上的版本當作存在於

date 上。此選項是粘性的,含 `

-p'。參閱

common options。

除了這些,你還可以在checkout裡面使用特殊的命令選項:

-a重置任何的粘性標籤,日期,或 `

-k' 選項。參閱

-c複製模組檔案,排序,輸出到標準輸出,而不是在工作目錄裡面建立和修改檔案與目錄。

-ddir

為工作檔案建立名為

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

' 放在裡面。

-jtag

用兩個 `

-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...