freepeople性欧美熟妇, 色戒完整版无删减158分钟hd, 无码精品国产vα在线观看DVD, 丰满少妇伦精品无码专区在线观看,艾栗栗与纹身男宾馆3p50分钟,国产AV片在线观看,黑人与美女高潮,18岁女RAPPERDISSSUBS,国产手机在机看影片

正文內(nèi)容

cvs中文手冊(編輯修改稿)

2025-07-26 07:06 本頁面
 

【文章內(nèi)容簡介】 后續(xù)版本將其保留。注意,每行的先后次序不重要;任何程序可以按它的習(xí)慣重新排列。當(dāng)前無法做到文件名中帶 TAB 或換行,attrname里的 `=39。,attrval里的 `。39。,等等。注意:有些實(shí)現(xiàn)還無法處理任何字段中的 NULL 字符,但實(shí)現(xiàn) 已注意此事。習(xí)慣上在attrname名前加 `_39。 表示在cvs中有特殊含義;其余為用戶 自定義類型的屬性(或?qū)⑹?,一旦?shí)現(xiàn)開始支持用戶定義的屬性)。內(nèi)置屬性:_watched出現(xiàn)意思是該文件已被監(jiān)視(watched),并且應(yīng)以只讀檢出。_watchers監(jiān)視此文件的用戶。值為watchertype{ ,watchertype} 其中watcher是用戶名,type是空或由 `+39。 隔開的 edit,unedit,mit (什么都沒有就是空,無需 none 或 all 關(guān)建字)。_editors編輯此文件的用戶。值為editorval{ ,editorval} 其中editor是用戶名,val為time+hostname+pathname, 其中time是cvs edit執(zhí)行的時(shí)間(或類似的),hostname和pathname是工作目錄。例子: Ffile1 _watched=。_watchers=joeedit,marymit Ffile2 _watched=。_editors=sue8 Jan 1975+workstn1+/home/sue/cvs D _watched=意味著文件file1應(yīng)按只讀檢出。另外 joe 監(jiān)視此文件的 edit 而 mary 監(jiān)視此 文件 mit。文件file2應(yīng)按只讀檢出;sue 在 8 Jan 1975 開始編輯它, 目錄是/home/sue/cvs,機(jī)器為workstn1。其余文件都是按只讀檢出。 作為演示,`D39。、`Ffile139。、`Ffile239。 后面有一個(gè)空格,其實(shí)該用 TAB 字符而無空格。關(guān)于 cvs 鎖用于用戶可見特性方面的介紹,請參看 Concurrency。接下來 的內(nèi)容是針對那些想制作工具軟件的朋友,這些軟件可以訪問 cvs 倉庫,但不會(huì)與 其它訪問同一庫的工具沖突。如果你發(fā)現(xiàn)你被這里的一些名詞,如“讀鎖(read lock)”、 “寫鎖(write lock)”和“死鎖(deadlock)”,弄得混淆不清,建議你可以去閱讀 一些關(guān)于操作系統(tǒng)和數(shù)據(jù)庫的資料。 在倉庫中任何一個(gè)以 . 開頭的文件是有個(gè)讀鎖。以 開頭的文件就是個(gè)可升級讀鎖。以 開頭的文件是個(gè)寫鎖。老版本的 cvs(在 之前的版本)也會(huì)創(chuàng)建一些以 開頭的文件, 在這里我們不討論它們。目錄 的作用是一個(gè)主鎖(master lock)。 它的意思是在創(chuàng)建其它種類鎖之前你必須獲得這個(gè)主鎖。 為了得到一個(gè)讀鎖,首先創(chuàng)建 目錄。這樣的一個(gè)操作必須是一個(gè)原子 操作(在大多數(shù)操作系統(tǒng)下面創(chuàng)建目錄都是可以的)。如果失敗,是因?yàn)檫@個(gè)目錄已經(jīng)存在, 這個(gè)操作會(huì)等待一會(huì)再重新執(zhí)行。在得到 之后,會(huì)創(chuàng)建一個(gè)文件,以 . 開頭,后面為你選擇的信息(例如主機(jī)名和進(jìn)程識別號)。接著刪除 目錄以釋放主鎖。接下來開始讀倉庫。讀操作完成后刪除 . 文件以釋放讀鎖。 可升級讀鎖是在其他并行論述中沒有提及的概念。它們允許兩個(gè)(或多個(gè))在第一次(讀)時(shí) 對文件鎖設(shè)為讀的文件認(rèn)證,然后在最后認(rèn)證必要的時(shí)候?qū)⒆x鎖升級為寫鎖,并仍然假設(shè) 自此首次讀時(shí)沒有改變。例如,cvs 使用可升級讀鎖來防止提交和打標(biāo)簽認(rèn)證時(shí) 讀處理的相互干擾。它只可以在寫認(rèn)證時(shí)鎖住一個(gè)單獨(dú)的目錄。 為了獲得一個(gè)可升級讀鎖,首先創(chuàng)建 目錄,就像普通讀鎖一樣。然后 檢查那里是否有以 開頭的文件。如果存在,刪除 主目錄,等一會(huì)兒(CVS 在鎖之間會(huì)等 30 秒)再試。如果不存在其他的可升級鎖,就創(chuàng)建 一個(gè) 名字以開頭的文件,后面跟著你自己定義的信息(比如,CVS 是 使用創(chuàng)建鎖的 CVS 服務(wù)器進(jìn)程所在的主機(jī)名和進(jìn)程 id 號)。如果版本低于 的 cvs 直接訪問你的倉庫(沒有通過 或更新版本的 cvs 服務(wù)器),你應(yīng)該 創(chuàng)建一個(gè)讀鎖,因?yàn)榕f版本的 CVS 會(huì)忽略可升級讀鎖創(chuàng)建自己的寫鎖。接著刪除 主目錄以使其它進(jìn)程可以獲得讀鎖。 為了得到一個(gè)寫鎖,同讀鎖一樣首先創(chuàng)建 目錄。接下來檢查是否不存在以 . 和 開頭的文件,這些是不屬于試圖獲取寫鎖的進(jìn)程。 如果存在就刪除 目錄,等待一會(huì)再重試。如果沒有其他進(jìn)程的讀或可 升級讀鎖,就創(chuàng)建一個(gè)文件,以 開頭,后面為你選擇的信息(同樣,CVS 使用主機(jī)名和服務(wù)器進(jìn)程識別號)。刪除你自己的 文件。繼續(xù)保持住 鎖。開始進(jìn)行寫倉庫操作。當(dāng)操作結(jié)束,首先刪除 文件,接著刪除 目錄。需要說明的是不像 文件, 文件僅僅只有提示作用;不能鎖住操作,而這個(gè)功能是由 來完成的。 注意,每一個(gè)鎖(讀鎖或者寫鎖)僅僅只鎖住倉庫中的單一目錄, 包括 Attic 目錄和 CVS 目錄,但是不包括在版本控制中代表其它目錄的子目錄。如果要鎖住 整個(gè)目錄樹,你必須鎖住每一個(gè)目錄(如果你在鎖任何一個(gè)目錄時(shí)出錯(cuò),為了避免死鎖就 必須在重試之前釋放整個(gè)目錄樹)。 還需注意的是 cvs 希望用寫鎖來控制任何 foo,v 文件的訪問。rcs 有一個(gè)計(jì)劃,讓 ,foo, 文件具有鎖的作用,但 cvs 并沒有這樣實(shí)現(xiàn),而且 建議使用 cvs 的寫鎖。關(guān)于此更多的討論和基本原理的信息請參看 cvs 源碼中的 rcs_internal_lockfile 注釋$CVSROOT/CVSROOT 目錄包含有各種管理文件。在某些方面這個(gè)目錄就象倉庫中任何 其它目錄一樣;它包含了 rcs 文件,后綴名為 `,v39。,許多 cvs 命令以 同樣的方式對它進(jìn)行操作。當(dāng)然,還是有點(diǎn)小小的差異。 對每一個(gè)管理文件,還有 rcs 文件,還有一個(gè)檢出的副本。例如,有一個(gè) rcs 文件 loginfo,v 和一個(gè)包含有對 loginfo,v 的最新修改的文件 loginfo。當(dāng)你檢入一個(gè)管理文件時(shí),cvs 就會(huì)顯示 cvs mit: Rebuilding administrative file database并在 $CVSROOT/CVSROOT 目錄中更新已檢出的副本。如果它沒這樣做,那肯定出了 問題(參閱 BUGS)。為了使你自己的文件加進(jìn)用這種方式更新文件中,你可以把它們加入 到管理文件的 checkoutlist 中(參閱 checkoutlist)。 在默認(rèn)的情況下,modules 文件按上面所說的方式運(yùn)作。如果 modules 文件很大, 把它作為一個(gè)純文本文件存儲可能會(huì)使得查找模塊變慢(我不知道現(xiàn)在人們是否還象當(dāng)初 cvs 有此特點(diǎn)時(shí)那樣關(guān)心這個(gè)問題; 我也沒有看過有關(guān)的評測)。因此,對 cvs 源代碼進(jìn)行合適的編輯,人們可以把模塊文件保存在一個(gè)使用 ndbm 界面如 Berkeley db 或者 GDBM 的數(shù)據(jù)庫中。如果使用這個(gè)選項(xiàng),那么模塊數(shù)據(jù)庫將被存在文件 , 和/或 中。 關(guān)于各種管理文件的意義,請參考 Administrative files。 當(dāng)我們討論 cvs 的內(nèi)部結(jié)構(gòu)時(shí),它就變得越來越可見了,我們可能討論 cvs 把什么東西放在工作目錄的 CVS 目錄中。對倉庫而言,cvs 處理該信息而 通常用戶可以通過 cvs 命令來訪問這些信息。但是在某些情況下,更常用的是讓外部 程序可以瀏覽這些信息,例如 jCVS 圖形界面和 emacs 的 VC 軟件包。 這些程序如果要和其它使用這些文件的程序協(xié)同工作的話,應(yīng)該遵循本節(jié)討論的推薦標(biāo)準(zhǔn), 相關(guān)的這些程序包括提到的程序的未來版本和 cvs 的命令行客戶端。 CVS 目錄包含以下若干個(gè)文件。 為了保證未來版本的可擴(kuò)展性,讀取此目錄的程序應(yīng)忽略在此目錄中但沒有在此歸檔的文件。 文件以系統(tǒng)習(xí)慣的文本方式保存。這意味著文件在不同存儲文本文件習(xí)慣的系統(tǒng)之間工作 目錄是不能移植的。這是故意的,理論上 cvs 管理的文件在這種系統(tǒng)之間也無法移植。 Root該文件包含當(dāng)前 cvs 根目錄,請看 Specifying a repository。 Repository該文件包含當(dāng)前目錄對應(yīng)的倉庫里的目錄。該路徑可以是絕對路徑也可以是相對路徑; 從 版本開始,cvs 可以讀取這兩種格式的路徑。相對路徑名相對于根目錄并且 容易解析,但是絕對路徑更通用,實(shí)現(xiàn)應(yīng)該支持這兩種格式中的任意一種。例如,執(zhí)行以下 命令以后 cvs d :local:/usr/local/cvsroot checkout yoyodyne/tcRoot 應(yīng)該包含 :local:/usr/local/cvsrootRepository 同時(shí)包含 /usr/local/cvsroot/yoyodyne/tc或者 yoyodyne/tc如果特定的工作目錄不與倉庫的目錄相一致,Repository 應(yīng)當(dāng)包含 CVSROOT/Emptydir。 Entries該文件列出了工作目錄中的文件和子目錄。 每一行的第一個(gè)字符代表該行的類別。 為了保證未來版本的可擴(kuò)展性,如果一行的第一個(gè)字符不可識別,讀取文件的程序應(yīng)默認(rèn) 忽略該行。 如果第一個(gè)字符是 `/39。,則格式如下: /name/revision/timestamp[+conflict]/options/tagdate 其中:`[39。 和 `]39。 不是格式的一部分,僅僅是代表 `+39。 和 conflict 項(xiàng)是可選的。name 是目錄中文件的名字。revision 是正在編輯的文件派生的 修訂版本號,`039。 代表新添加的文件,`39。revision 代表刪除的文件。 timestamp 為時(shí)間戳,表示 cvs 創(chuàng)建文件的時(shí)間;如果時(shí)間戳和文件修改的 時(shí)間不一致,意味著文件已經(jīng)被修改過。時(shí)間戳以 ISO 標(biāo)準(zhǔn)的 C 函數(shù) asctime() 的格式 存儲(例如,`Sun Apr 7 01:29:26 199639。)。用戶也可以不以這種式寫入字符串來表示 文件已經(jīng)被修改過,比如,合并結(jié)果(`Result of merge39。)。但這不是特殊情況; 判斷一個(gè)文件是否被修改,一個(gè)程序只要讀取改文件的時(shí)間戳 timestamp 并進(jìn)行 字符串比較就可以了。如有沖突,文件做了沖突標(biāo)記之后會(huì)在文件的修改時(shí)間上設(shè)一個(gè) conflict(參閱 Conflicts example),conflict 表示是否存在版本沖突。 如果 conflict 和文件實(shí)際的修改時(shí)間相同表示用戶還沒有解決版本沖突問題。 options 包含可選項(xiàng)(例如對二進(jìn)制文件可以使用 `kb39。)。tagdate 含有 `T39。 后面跟標(biāo)簽名,或 `D39。 表示日期,后面跟是 sticky 標(biāo)簽或日期。注意: 如果 timestamp 包含一對以空格分隔的時(shí)間戳而不是一個(gè),應(yīng)該按照早于 cvs 的版本處理(這里沒有相關(guān)文檔)。 CVS/Entries(本地或全球)里時(shí)間戳(timestamp)的時(shí)區(qū)(timezone)應(yīng)該與操作系統(tǒng) 使用的時(shí)區(qū)相同。例如,Unix 上文件的時(shí)間戳為 UT,CVS/Entries 里的時(shí)間戳也應(yīng)如此。 vms 上時(shí)間戳為本地時(shí)間,這樣在 vms 上的 cvs 應(yīng)該使用本地時(shí)間。這樣 文件就不會(huì)因?yàn)闀r(shí)區(qū)(例如,夏時(shí)制)改變而顯示被修改。 如果 Entries 的某一行的第一個(gè)字符是 `D39。,則該行代表一個(gè)子目錄。如果 一行只有字符 `D39。 則表示生成 Entries 的程序沒有記錄子目錄(因此, 如果有這樣的一行并且沒有別的以字符 `D39。 開頭的行,可以知道沒有子目錄)。否則, 行是這樣的: D/name/filler1/filler2/filler3/filler4其中:name 是子目錄的名稱,為了保證未來版本的可擴(kuò)展性,所有的 filler 域都應(yīng)該被忽略。修改 Entries 文件的程序應(yīng)保留這些域。 Entries 文件中行的次序無關(guān)緊要。 這個(gè)文件不紀(jì)錄任何與 Entries 無關(guān)的信息,但是它能使你更新一些信息而不必 重寫整個(gè) Entries 文件,并且對信息的安全提供保護(hù),甚至寫 Entries 和 期間程序突然發(fā)生中斷仍能保證數(shù)據(jù)的安全。讀 Entries 的程序應(yīng)該也檢查 。如果后者存在,它將按照 所紀(jì)錄的信息應(yīng)用到 Entries。在使用這些內(nèi)容后,推薦的操作是重寫 Entries 并且刪除 。 的格式為一個(gè)單字符 的命令加一個(gè)空格,接著與 Entries 行的格式一樣。單字符命令有下面幾種: `A39。 表示 entry 已經(jīng)被加入,`R39。 表示 entry 已經(jīng)被刪除,其它的字符表示 該行應(yīng)被忽略不計(jì)(為以后擴(kuò)展)。如果 中行的第二個(gè)字符不是空格, 那么,它是由一個(gè)老版本的 cvs 系統(tǒng)生成的(本文檔不做介紹)。 如果程序選擇只是讀而不寫則可以忽略 。 這是個(gè)臨時(shí)文件。推薦的作法是將一個(gè)新的 Entries 寫到 ,然后 將它更名為 Entries (如可能,自動(dòng)實(shí)現(xiàn))。 此文件唯一實(shí)質(zhì)性的事情就是它的存在與否。如果它存在,那么,意味著只得到部分的目錄, 并且 cvs 將不在該目錄中創(chuàng)建附加文件??梢允褂?update 帶 `d39。 選項(xiàng)的命令來刪除它,該命令將得到附加的文件并且刪除 文件。 Tag這個(gè)文件包含每一目錄的粘性標(biāo)簽或時(shí)間。一個(gè)分支標(biāo)記的第一個(gè)字符是 `T39。,對于 一個(gè)非分支標(biāo)記則是 `N39。, 或?qū)τ谝粋€(gè)日期則是 `D39。,或別的字符意味著為了 將來擴(kuò)充而文件應(yīng)該被默默忽略。這個(gè)字符后接的是標(biāo)簽或日期。注意,每一目錄新增加的 粘性標(biāo)簽或日期被用來向新增加的文件施加作用這種事情;它們可能不與在單個(gè)的文件上的 粘標(biāo)簽或日期一樣。關(guān)于粘性標(biāo)簽或日期的一般信息,見 Sticky tags。 Notify這個(gè)文件存儲還沒有發(fā)送給服務(wù)器的通知(如 edit 或 unedit 等)。 這里還沒有歸檔它的格式。 該文件是針對 Notify 的,正如 針對于 Entries 一樣。即在更新 Notify 文件時(shí),先將新內(nèi)容寫入 中,然后將 (自動(dòng))該文件更名為 Notify。 Base如果監(jiān)視器處在使用狀態(tài),那么一個(gè) edit 命令在 Base 目錄下保存原來的 副本
點(diǎn)擊復(fù)制文檔內(nèi)容
試題試卷相關(guān)推薦
文庫吧 www.dybbs8.com
備案圖片鄂ICP備17016276號-1