SourceSafe使用介紹_第1頁
SourceSafe使用介紹_第2頁
SourceSafe使用介紹_第3頁
SourceSafe使用介紹_第4頁
SourceSafe使用介紹_第5頁
已閱讀5頁,還剩12頁未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報(bào)或認(rèn)領(lǐng)

文檔簡介

1、SourceSafe 使用介紹1. SourceSafe 概述項(xiàng)目開發(fā)時(shí),下列問題會(huì)經(jīng)常出現(xiàn)在管理者面前:I. 怎樣對研發(fā)項(xiàng)目進(jìn)行整體管理;II. 項(xiàng)目開發(fā)小組成員之間如何有效協(xié)調(diào);III. 如何對小組成員各自承擔(dān)的子項(xiàng)目進(jìn)行統(tǒng)一管理;IV. 如何對研發(fā)小組各成員所做的修改進(jìn)行統(tǒng)一匯總;V. 如何保留修改的軌跡,以便撤銷錯(cuò)誤的改動(dòng);VI. 對研發(fā)過程中形成的文檔的各個(gè)版本如何標(biāo)識(shí)、管理及差異識(shí)別。這就需要一種版本控制管理工具來幫助解決。Visual SourceSafe(以下簡稱VSS)是一種版本控制管理工具。它通過將各種類型的文件(包括:文本文件、圖像文件、二進(jìn)制文件、聲音文件、視頻文件等)

2、存入其內(nèi)部數(shù)據(jù)庫的方式,幫助你有效地管理工程(Project,關(guān)于VSS中工程的概念請見下面)。它允許你在多個(gè)工程間共享同一組文件;你可以將一個(gè)文件添加到數(shù)據(jù)庫中,以便其他相關(guān)人員使用;任何對文件的更改將被記錄下來,以便在任何時(shí)候可以恢復(fù)到該文件的某個(gè)舊版本。VSS的工程組織方式使團(tuán)隊(duì)協(xié)作開發(fā)變得更為容易和直觀。一個(gè)工程是一組存放于VSS數(shù)據(jù)庫內(nèi)的任意類型的文件,一個(gè)工程類似于操作系統(tǒng)中的目錄,但VSS為其提供了版本控制、歷史記錄、文件合并等更多的功能支持。2. 安裝3. 管理員部分3.1 管理數(shù)據(jù)庫(Manage the Database)3.1.1 創(chuàng)建數(shù)據(jù)庫(Create a New D

3、atabase)安裝好SourceSafe后,系統(tǒng)只有一個(gè)缺省的名為Common的空數(shù)據(jù)庫,選擇“開始Microsoft Visual Studio 6.0Microsoft Visual SourceSafeVisual SourceSafe 6.0 Admin”菜單項(xiàng),以用戶名, 密碼為空,登錄到SourceSafe管理程序。然后選擇該管理程序菜單項(xiàng)“ToolsCreate Database”,來創(chuàng)建新的數(shù)據(jù)庫。3.1.2 分析數(shù)據(jù)目錄(Analyze the Data Folder)建議你定期備份完整的VSS數(shù)據(jù)目錄(參見數(shù)據(jù)庫打包)。VSS數(shù)據(jù)目錄中包含有全部工程和文件的數(shù)據(jù)庫信息。由

4、于網(wǎng)絡(luò)或操作系統(tǒng)的某些故障,VSS中的文件可能存在錯(cuò)誤和不一致問題,Analyze VSS DB工具被用來查找和修復(fù)這些問題。在運(yùn)行該工具前,需要鎖定(Lock)所有用戶并要求他們退出VSS,用戶可以在一個(gè)數(shù)據(jù)庫被鎖定時(shí)保持文件的簽出狀態(tài)(參見鎖定數(shù)據(jù)庫)。建議分兩次運(yùn)行Analyze VSS DB工具,第一次修復(fù)錯(cuò)誤,第二次核查是否仍然存在沒有被修復(fù)的錯(cuò)誤。數(shù)據(jù)目錄的具體位置是由Data_Path初始化變量在SRCSAFE.INI文件中指定的(參見定制SS.INI和SRCSAFE.INI文件)。3.1.3 數(shù)據(jù)庫打包(Archive Databases)你可能需要定期地備份VSS數(shù)據(jù)庫,或者

5、數(shù)據(jù)庫的某一部分。VSS Administrator工具提供了此項(xiàng)功能。它可以: · 節(jié)省VSS數(shù)據(jù)庫服務(wù)器的磁盤空間。 · 加快顯示歷史記錄操作(Show History)的速度。 · 便于在多個(gè)VSS數(shù)據(jù)庫間傳遞文件和工程,保持歷史記錄完整無缺。 · 備份全部或部分VSS數(shù)據(jù)庫內(nèi)容并壓縮成文件。執(zhí)行:選取菜單項(xiàng)“Achive/Achive Projects”3.1.4 清除臨時(shí)目錄(Clean Temporary Folder)VSS通常在運(yùn)行時(shí)把臨時(shí)結(jié)果放在臨時(shí)目錄里,并在退出前將之刪除。由于某些原因,例如非正常重啟,可能導(dǎo)致臨時(shí)內(nèi)容殘留在目錄中。

6、作為管理員,你有責(zé)任定期清除臨時(shí)目錄的內(nèi)容。每隔幾周一次,當(dāng)沒有任何用戶運(yùn)行VSS或VSS Administrator時(shí),請清除臨時(shí)目錄的內(nèi)容。臨時(shí)目錄的具體位置是由Temp_Path初始化變量在SRCSAFE.INI文件中指定的(參見定制SS.INI和SRCSAFE.INI文件)。執(zhí)行:選取菜單項(xiàng)“Clean up temp directory”3.1.5 鎖定數(shù)據(jù)庫(Lock a Database)數(shù)據(jù)庫鎖定功能將不會(huì)自動(dòng)鎖定那些當(dāng)前已經(jīng)登錄的用戶,你應(yīng)該在鎖定數(shù)據(jù)庫之前要求登錄用戶退出VSS。在重新允許用戶使用VSS之前,需要解除對數(shù)據(jù)庫的鎖定。執(zhí)行:選取菜單項(xiàng)“Tools/Lock S

7、ourcesafe Database”3.1.6 數(shù)據(jù)庫恢復(fù)(Restore Databases)執(zhí)行:選取菜單項(xiàng)“Achive/Restore Projects”3.1.7 使用多個(gè)數(shù)據(jù)庫(Work with Multiple Databases)缺省時(shí),VSS將所有文件集中放在一個(gè)數(shù)據(jù)庫中。如果可能,應(yīng)盡量使用一個(gè)數(shù)據(jù)庫存放所有文件,這比分多個(gè)數(shù)據(jù)庫存放要好,因?yàn)椋?· 你不能在多個(gè)數(shù)據(jù)庫間共享(Share)文件(參見對文件和工程的Branch/Share操作)。 · 將位于多個(gè)數(shù)據(jù)庫中的內(nèi)容集中在一起是比較困難的,需要使用VSS Administrator的Archi

8、ve功能(參見數(shù)據(jù)庫打包)。 · 出于安全的考慮,VSS的用戶信息,包括密碼在內(nèi),是和數(shù)據(jù)一起存放的。如果為了安全起見,要將信息拆分成多個(gè)獨(dú)立的數(shù)據(jù)庫,這種信息存儲(chǔ)方式將帶來極大便利,但你必須為每個(gè)數(shù)據(jù)庫都單獨(dú)添加用戶。 執(zhí)行:選取菜單項(xiàng)“Tools/Options”,Options對話框中選中“General/Allow multiple checkouts”3.2 管理用戶3.2.1 添加用戶(Add a User)3.2.2 更改密碼(Change Passwords)3.2.3 創(chuàng)建用戶列表(Create a User List)3.2.4 刪除用戶(Delete a Use

9、r)3.2.5 編輯用戶屬性(Edit User Attributes)3.3 權(quán)限的設(shè)置3.3.1 權(quán)限的傳遞(Rights Propagation)當(dāng)你添加了一個(gè)新用戶,并為該用戶設(shè)置了針對某個(gè)工程的權(quán)限時(shí),將在VSS數(shù)據(jù)庫中建立起一個(gè)assignment。該assignment將會(huì)沿著工程樹向下傳遞直至遇到另一個(gè)assignment。例如:針對工程"$/" ,你為用戶A指定了Add權(quán)限(參見安全訪問權(quán)限),而對于工程"$/Sample",你沒有為用戶顯式指定權(quán)限,則該用戶將對工程"$/Sample"自動(dòng)擁有Add權(quán)限。當(dāng)你在工程

10、"$/Sample/BusinessObject"處為其指定了Read權(quán)限后,將阻止早先assignment的向下傳遞過程,所以用戶A對該工程(指"$/Sample/BusinessObject")及其子工程都只具有Read權(quán)限了。當(dāng)你首次添加一個(gè)用戶時(shí),該用戶在工程"$/"處被賦予的權(quán)限由"缺省權(quán)限"決定,缺省權(quán)限是通過在VSS Administrator里設(shè)置Project Security屬性頁的內(nèi)容來定義的。你可以通過修改該頁內(nèi)容,全局性地變更所有用戶的缺省權(quán)限。3.3.2 安全訪問權(quán)限(Security

11、Access Rights)3.3.2.1缺省安全設(shè)置當(dāng)安裝VSS后,缺省安全設(shè)置將被啟用。你可以利用定制的方式,使某些用戶擁有對某些工程和某些VSS命令的特定權(quán)限。缺省安全設(shè)置很簡單,當(dāng)添加新用戶時(shí),你只有兩種級別的訪問權(quán)限可供選擇: 只讀權(quán)限(Read-only rights):用戶可以查看VSS中的任何內(nèi)容,但不能更改。 可讀寫權(quán)限(Read/write rights):用戶可以查看和修改VSS中的任何內(nèi)容。 如果這樣的訪問權(quán)限級別足以應(yīng)對日常使用,那么就無需再增強(qiáng)安全控制的級別了。所有的VSS安全管理都在VSS Administrator中進(jìn)行。任何能運(yùn)行該程序的用戶都可以改變VSS的

12、任意特性,所以最好只有管理員才使用該程序。3.3.2.2 更高級別的安全控制在VSS中,對工程的安全性控制,是通過制定用戶訪問權(quán)限來實(shí)現(xiàn)的。每個(gè)工程僅能被那些具有相應(yīng)權(quán)限的用戶訪問到,每個(gè)命令僅能被那些具有相應(yīng)權(quán)限的用戶使用??梢酝ㄟ^VSS Administrator來定制權(quán)限,以達(dá)到更高級別的安全控制。以下是VSS的權(quán)限級別列表,下列每種權(quán)限都擁有該權(quán)限之前的全部權(quán)限。例如:擁有Check Out權(quán)限的用戶,也將同時(shí)擁有Read權(quán)限。(參見附錄A2:VSS中部分命令的對應(yīng)權(quán)限級別)權(quán)限描述Read (R)類似于缺省安全設(shè)置中的只讀權(quán)限Check Out (C)可以使用Check Out/Ch

13、eck In/Undo Check Out等命令對文件進(jìn)行修改Add (A)可以使用Add/Delete/Label/Rename等命令對文件進(jìn)行修改Destroy(D)可以使用Destroy/Purge/Rollback等命令對文件實(shí)施永久性刪除操作4. 普通用戶部分4.1 對工程、文件的一般性使用(Normal Use about Projects and Files)4.1.1 打開(關(guān)閉)數(shù)據(jù)庫(Open/Close a Database)4.1.2 創(chuàng)建新工程(Create New Projects)4.1.3 添加文件、目錄、工程(Add Files,F(xiàn)olders,and Pro

14、jects)4.1.4 刪除和恢復(fù)文件、工程(Delete and Recover Files and Projects)VSS提供了3種刪除文件的方法: · Delete:VSS只把指定文件從當(dāng)前工程中刪除,而在VSS數(shù)據(jù)庫中仍留有該文件的記錄。此外,其他共享了該文件的工程仍保留此文件(參見對文件和工程的Share/Branch操作)。 · Destroy:VSS將把指定文件從VSS數(shù)據(jù)庫中徹底刪除,其后將無法恢復(fù)。 · Purge:永久性刪除已被Delete掉的文件,其后將無法恢復(fù)。 對于共享文件,Delete和Destroy僅將文件從當(dāng)前所選工程中刪除掉,其

15、他共享了該文件的工程,以及VSS數(shù)據(jù)庫中,仍留有此文件。4.1.5 移動(dòng)文件和工程移動(dòng)一個(gè)文件的唯一方法是,在文件新所在位置的上一級工程(parent project)處使該文件共享(參見對文件和工程的Share/Branch操作),然后將原有工程(original project)下的該文件Delete或者Destroy(參見刪除和恢復(fù)文件、工程(Delete and Recover Files and Projects))。移動(dòng)后,文件的歷史記錄將被保留。通過使用Move命令,你可以將一個(gè)子工程(subproject)從某個(gè)上級工程重置到另一個(gè)工程下。該操作不會(huì)改變子工程的內(nèi)容和歷史記錄,

16、但它會(huì)影響上級工程的歷史記錄(包括子工程所在的原有上級工程和新的上級工程)。當(dāng)移動(dòng)一個(gè)工程后,你將無法重建原有上級工程的某個(gè)舊版本。4.1.6 重命名文件、工程(Rename Files or Projects)若某個(gè)文件被多個(gè)工程所共享,對該文件的重命名將影響所有工程,而在Branch狀態(tài)下,則不影響(參見對文件和工程的Branch/Share操作)。4.1.7 設(shè)置工作目錄4.2 簽入、簽出、獲取、查看及相關(guān)操作(Check In/Out、Get、View and Other Related Use)4.2.1 簽入簽出操作(Check In and Check Out Files)4.2

17、.2 撤銷簽出(Undo Check Out)4.2.3 獲取最新版本(Get Latest Version)4.2.4 獲取早期版本(Get Earlier Version)4.2.5 獲取和查看文件、工程(Get and View Files and Projects)Get操作將文件或工程拷貝至本地的工作目錄,并設(shè)置為read-only屬性??梢杂肰iew操作查看文件內(nèi)容,此時(shí)用戶無需設(shè)置工作目錄。盡量不要?jiǎng)h除vssver.scc文件。本地工作目錄及每個(gè)子目錄下都包含一個(gè)這樣的文件,VSS利用其中記錄的信息確定本地目錄中哪個(gè)文件已經(jīng)更改了。刪除后,將使新一次的Get操作速度減慢。4.2.

18、6 回滾到以前版本(Rollback to Previous Versions)該操作將使文件的內(nèi)容恢復(fù)到先前某個(gè)版本時(shí)的狀態(tài),它將使所有在該版本后所做的改動(dòng)丟失。如果你所回滾的文件被多個(gè)工程共享,則操作只影響你所指定的那個(gè)工程,并且它會(huì)自動(dòng)實(shí)行Branch操作(參見對文件和工程的Branch/Share操作)。建議你使用虛擬回滾(Virtual Rollback),它將不會(huì)使隨后的改動(dòng)永久丟失。具體操作如下: · 選擇你要回滾的文件并簽出 · 使用Get命令獲取某個(gè)原有版本到本地 · 簽入該文件 4.2.7 多人同時(shí)簽出一個(gè)文件(Check Out Multip

19、le Files)*缺省狀態(tài)下,一個(gè)文件只允許一個(gè)人簽出,管理員可以通過修改配置,允許多人同時(shí)簽出。此時(shí),VSS將跟蹤所有簽出該文件的用戶。每當(dāng)用戶簽入時(shí),VSS都將和當(dāng)前存于數(shù)據(jù)庫內(nèi)的最新版本進(jìn)行比較,若用戶修改的是同一文件的不同處,VSS將進(jìn)行簡單的合并(Merge),否則提示用戶,并且不允許簽入。用戶可以通過VSS提供的Visual Merge工具,比較存放于VSS數(shù)據(jù)庫中的文件和本地文件的異同,手工修改本地文件,直到認(rèn)為已經(jīng)可以簽入時(shí),方才執(zhí)行最終簽入操作。(參見合并)注意:VSS6.0對于文本文件才允許多人同時(shí)簽出,對于二進(jìn)制文件此操作將被禁止,因?yàn)闊o法將多個(gè)改動(dòng)進(jìn)行合并。4.2.8

20、 合并(Merge)*在VSS中,合并可能發(fā)生在3種場合下:使用Multiple Checkout的工作方式;合并原先已經(jīng)Branch了的文件;獲?。℅et)文件。 Multiple Checkout:若多個(gè)用戶同時(shí)簽出一個(gè)文件,第一個(gè)用戶只要簡單的簽入就可以了。后續(xù)用戶也可以簽入,但他們的更改將需要和其他所有用戶的更改合并,VSS將得到完整的更改內(nèi)容(參見多人同時(shí)簽出一個(gè)文件)。 Branch:當(dāng)被Branch的文件合并到其中一個(gè)分支時(shí),VSS將會(huì)把在另一個(gè)分支上所做的改動(dòng)合并到該分支上(參見對文件和工程的Branch/Share操作)。 Merge on Get:在Multiple Che

21、ckout工作方式下,當(dāng)使用Get Latest Version操作時(shí)可能引發(fā)合并操作,此時(shí)保存在VSS數(shù)據(jù)庫中的內(nèi)容將合并到本地文件。但如果某個(gè)文件是排他性簽出的,則不會(huì)引發(fā)合并操作(參見排他性簽出)。 在完成一個(gè)合并之后,VSS遵循如下規(guī)則: · 如果仍有沖突,VSS維持文件的簽出狀態(tài),為了使文件能順利簽入,你必須排除這些沖突。 · 如果你使用Merge Branches命令,將一個(gè)文件合并到一個(gè)工程中,而該工程中的對應(yīng)文件已被簽出,該文件將繼續(xù)保持簽出狀態(tài)(參見對文件和工程的Branch/Share操作)。 · 在任何其他時(shí)候,VSS將會(huì)提示你,或者在合并后

22、自動(dòng)簽入,或者保持文件的簽出狀態(tài)以使你在更新VSS數(shù)據(jù)庫中內(nèi)容之前再核查一邊。 缺省情況下,當(dāng)發(fā)生沖突時(shí),VSS將啟用其Visual Merge工具。4.2.9 排他性簽出(Exclusive Check Out)*允許多人同時(shí)簽出一個(gè)文件是針對整個(gè)VSS數(shù)據(jù)庫而言的,但用戶仍可以根據(jù)實(shí)際情況,針對某些文件修改該規(guī)則。對某個(gè)文件實(shí)施排他性簽出,則其他用戶將無法簽出該文件,直至該用戶使用了簽入操作。4.2.10 對工程的Cloak 操作(Cloak Projects)*若對某工程實(shí)行了Cloak操作,則當(dāng)對該工程的上一級工程進(jìn)行Get/Check In/Check Out/Undo Check

23、Out/Project Difference操作時(shí),將不會(huì)影響該工程及其子工程。而在該工程上進(jìn)行類似操作時(shí),則和平常得到的結(jié)果一樣。這一屬性將傳遞給其下的子工程。例如:某個(gè)工程其路徑為$/Application,下面有三個(gè)子工程:$/Application/Code,$/Application/Test,$/Application/Docs,而Docs工程下的內(nèi)容可能對你沒有任何用處。當(dāng)你每次從$/Application處進(jìn)行Get操作后,都需要從本地刪除多余的Docs目錄。此時(shí)可以對Docs進(jìn)行Cloak操作。這樣,每次的Get操作將只把Code和Test下的內(nèi)容放到本地。如果你需要獲取Do

24、cs工程下的內(nèi)容,則可以單獨(dú)從Docs處進(jìn)行Get操作。操作方法:選中想要Cloak的工程,顯示其屬性,在屬性頁里選中"This project is cloaked for me",然后關(guān)閉屬性頁。4.3 Share, Branch, Label 和 Pin 操作(Branch、Share、Label and Pin)4.3.1 對文件和工程的Share/Branch操作(Branch and Share Files and Projects)*在VSS中,通過Share操作,一個(gè)文件可以被多個(gè)工程共享,在任何一個(gè)工程中對該文件的更改,都將反映到其他相關(guān)工程里。Branc

25、h操作則消除這種共享,每次將一個(gè)被共享的文件拆成兩個(gè)分支,在不同工程中分別跟蹤該文件。通過查看文件屬性的Links屬性頁可以了解該文件被哪些工程共享,通過查看Paths屬性頁可以了解文件的分支狀況。例如:產(chǎn)品目前的正式版本為2.0(工程路徑為$/Application),在加入新功能后將升級為3.0。但在開始升級的過程中,其間的一個(gè)過渡版本2.1存在bug,需要修改。此時(shí)可以進(jìn)行如下操作:選擇被Label標(biāo)識(shí)為2.0的那個(gè)版本(參見給文件、工程指定標(biāo)簽),利用Share功能創(chuàng)建過渡版本(工程路徑為$/Application2.1),此時(shí)兩個(gè)工程中的文件是共享的,且$/Application2.

26、1中的所有文件都處于Pin狀態(tài)(參見 Pin操作),即:在向3.0升級的過程中,對$/Application中相關(guān)文件的更改,將不影響$/Application2.1下的內(nèi)容,但此時(shí)文件仍是共享的。僅對需要修改bug的文件采取Branch操作。這樣做的好處是,中間版本的bug修改工作和3.0的升級工作可以同時(shí)進(jìn)行,并且最大限度的降低了所需的存儲(chǔ)空間。4.3.2 給文件、工程指定標(biāo)簽(Label Files and Projects)*VSS使用3種方式跟蹤文件的歷史記錄:內(nèi)部版本號,日期,用戶自定義標(biāo)簽。標(biāo)簽可以是一個(gè)不超過31個(gè)字符長度的串,例如:"1.0"、"

27、2.01b"、"Final Beta"、"Approved for QA"。應(yīng)用Label功能,用戶就可以獲取某個(gè)特定時(shí)期的軟件內(nèi)容了。所有當(dāng)前工程下的文件和子工程都將繼承該標(biāo)簽。注意下面幾點(diǎn): · 當(dāng)使用Label功能時(shí),表明你在所選工程的歷史記錄里創(chuàng)建了一個(gè)新的版本,但文件和工程本身的內(nèi)容并未發(fā)生變化。 · 對某個(gè)工程的某個(gè)標(biāo)簽再次使用Label操作將覆蓋原來的標(biāo)簽內(nèi)容。 請參見附錄A1:同時(shí)維護(hù)一個(gè)工程的多個(gè)版本4.3.3 Pin操作(Pin)*該功能對共享文件很有用,盡管它的使用不僅限于共享文件,也包括其他任何文件。

28、當(dāng)你對一個(gè)文件實(shí)施Pin操作后,你將不能對之做任何修改。如果一個(gè)文件在Pin之后又被實(shí)施了Share操作,而被Pin的那個(gè)版本同時(shí)也是被共享的版本,則所有共享該文件的工程都不能更改該文件。如果一個(gè)文件先被實(shí)施了Share操作,而后在某個(gè)工程中被Pin了,則除了這個(gè)工程外的其余工程仍可以更改該文件(參見對文件和工程的Branch/Share操作)。4.4 其他操作(Other Use)4.4.1 擴(kuò)展關(guān)鍵字(Expand Keywords)*VSS可以將某些指定信息(例如:VSS內(nèi)部版本號)直接插入文本文件中。用戶只要將某些關(guān)鍵字放入文件的注釋中,每次添加(Add)或簽入(Check In)文件

29、時(shí),VSS都會(huì)自動(dòng)查找這些關(guān)鍵字,并將相關(guān)信息置于其后。VSS中常用的關(guān)鍵字: 關(guān)鍵字描述$Archive: $文件在VSS中的路徑名$Author: $最近一次更改文件的用戶$Date: $最近一次簽入的時(shí)間$History: $文件的歷史記錄$Revision: $VSS內(nèi)部版本號$NoKeywords: $使VSS對其后的所有關(guān)鍵字不進(jìn)行擴(kuò)展例如:在某文件中加入如下一行:$Revision: $若當(dāng)前該文件在VSS內(nèi)部的版本號是22,則簽入后VSS會(huì)將之修改為:$Revision: 23 $4.4.2 使用Shadow目錄(Work with Shadow Folders)*Shadow

30、目錄位于服務(wù)器端,包含了工程中所有的文件。這些文件既非位于VSS數(shù)據(jù)庫中的master copy,亦非位于本地工作目錄的local copy,而是最近一次簽入的所有內(nèi)容。Shadow目錄應(yīng)該由管理員來設(shè)置。是否使用Shadow目錄功能是可選的,通常在如下兩種情況下可以考慮使用該功能: 為使某些用戶能查看文件(但不能更改),這些用戶可能沒有對VSS的訪問權(quán)限。 不讓你的本地工作目錄保留可編譯的軟件副本。為使每個(gè)用戶都能得到一個(gè)最新版本的軟件,所有用戶可能希望在某個(gè)目錄下集中進(jìn)行編譯,而非在各自的工作目錄下編譯。在這種情況下,Shadow目錄功能通常和添加(Add)、簽入(Check In)之后的

31、Remove Local Copy結(jié)合使用。 Shadow目錄不會(huì)跟蹤子工程的變化,例如:你有一個(gè)被Shadow的工程$/A,包含兩個(gè)子工程:$/A/1和$/A/2,而你又將$/A/2重命名為$/A/B,這種變化將不會(huì)被反映到Shadow目錄中。你可以手工修改,或者利用Reconcile All功能,使之保持同步。4.4.3 性能優(yōu)化有兩種方法可以改善VSS的性能:盡可能多的將內(nèi)容通過網(wǎng)絡(luò)拷貝至本地來做;修改初始化文件對VSS的性能進(jìn)行微調(diào)。具體優(yōu)化措施: · 在SS.INI或SRCSAFE.INI文件中設(shè)置如下變量: Diff_Ignore (PC) = c-e-s-w-使VSS在

32、進(jìn)行文件比較時(shí)忽略end-of-line標(biāo)記,從而加快運(yùn)行效率CP_OnSelection = No在使用VSS Explorer時(shí),缺省狀態(tài)下,用戶使用鼠標(biāo)單擊或使用鍵盤的方向鍵在工程列表上移動(dòng)時(shí),就會(huì)選中工程。設(shè)為No后,只有雙擊鼠標(biāo)或按回車鍵才會(huì)選中。· 設(shè)置臨時(shí)目錄 缺省情況下,VSS將臨時(shí)文件存于服務(wù)器端,但管理員可以通過修改SS.INI中的Temp_Path變量,將臨時(shí)路徑設(shè)置在本地。· 讓管理員在SRCSAFE.INI文件中將Lock_Mode變量設(shè)置為Native 這是SRCSAFE.INI中該變量的缺省設(shè)置,把該變量設(shè)置為Native將使幾乎所有的VSS操

33、作都得到加速。該變量只能由管理員來設(shè)置。· 管理員通過Disable下面的功能,也可以一定程度地改善性能: Ø Shadow folders(參見使用Shadow目錄) Ø Journal files Ø Project security system(參見安全訪問權(quán)限) Ø Keyword expansion(參見擴(kuò)展關(guān)鍵字) 4.4.4 查找文件(Search for Files)VSS Explore的list view缺省時(shí)只顯示當(dāng)前工程中的所有文件。通過使用Search命令,可以只顯示符合指定要求的文件。例如:只顯示.h文件,只現(xiàn)實(shí)被

34、簽出的文件。Search命令是允許遞歸的。4.4.4.1 根據(jù)文件名(通配符)查找(Search with a wildcard)操作:(CTRL+W)選擇菜單項(xiàng)View / Search / Search for Wildcard 來顯示Search for Wildcard對話框,然后輸入想要查找的通配符,選擇要搜索的區(qū)域,最后點(diǎn)擊OK按鈕開始搜索。4.4.4.2 根據(jù)簽出狀態(tài)查找(Search for checked out status)操作:(CTRL+S)選擇菜單項(xiàng)View / Search / Status Search,Search for Status對話框中選中Displa

35、y Files Checked Out To,然后選擇搜索的區(qū)域,最后點(diǎn)擊OK按鈕開始搜索。4.4.4.3 查找包含指定字符串的文件(Search by String)操作:選擇菜單項(xiàng)View/Find in Files來顯示Find對話框,然后輸入想要查找的字符串,以及確定是否忽略大小寫。4.4.4.4 取消查找(Cancel Search)選擇菜單項(xiàng)View/Cancel Search4.4.5 設(shè)置密碼如果VSS管理員指定域賬號為VSS登錄賬號,則用戶登錄VSS時(shí)將不會(huì)提示輸入密碼。4.4.6 編寫批處理文件在編寫批處理文件時(shí),一些在命令行方式下使用的交互手段需要改變。· 屏蔽

36、輸入(Disable Input) 如果你的批處理文件中包含了一系列VSS命令(它們可能需要整夜運(yùn)行),你一定不希望程序執(zhí)行期間會(huì)停下來提示用戶輸入信息。有3個(gè)命令行選項(xiàng)可以解決此類問題。缺省時(shí),VSS在執(zhí)行諸如添加(Add)、簽入(Check In)等操作時(shí)會(huì)提示你輸入注釋(Comment),利用-c選項(xiàng)可以避免該類提示: 命令描述-c-不添加注釋"-cHello"使用Hello字串作為注釋-使用comment.txt文件的內(nèi)容作為注釋此外,VSS通常會(huì)要求用戶回答yes或no,你可以使用-i選項(xiàng)避免此類問題: 命令描述-i-y對所有此類提問自動(dòng)回答Yes-i-n對所有此

37、類提問自動(dòng)回答No-i使用缺省回答VSS也可能會(huì)提示登錄名,你可以使用-y選項(xiàng)提供足夠多的信息。· 重定向輸出 缺省時(shí),VSS將所有輸出定向到屏幕,在命令行狀態(tài)下你可以使用-o選項(xiàng)分頁輸出,而在批處理文件中你同樣可以利用-o屏蔽輸出或重定向輸出。 命令描述-o-屏蔽輸出-oRESULTS.TXT重定向所有輸出到文本文件results.txt中,如果該文件已存在,輸出內(nèi)容將追加到該文件末尾。· 使用命令行返回值 在命令行狀態(tài)下運(yùn)行VSS時(shí),VSS會(huì)設(shè)置一些返回值來標(biāo)明運(yùn)行狀態(tài)。你可以在批處理文件中根據(jù)VSS的返回值采取相應(yīng)措施。 返回值描述100表明出錯(cuò),例如:VSS無法找到

38、數(shù)據(jù)庫文件,或者你試圖簽出某個(gè)早已被簽出的文件。1表明一個(gè)不是很嚴(yán)重的錯(cuò)誤,將在如下三種情況下發(fā)生:當(dāng)你使用ss Dir時(shí),沒有找到任何條目。當(dāng)你使用ss Status時(shí),至少有一項(xiàng)被簽出。當(dāng)你使用ss Diff時(shí),至少有一個(gè)文件不一致。所有這些情況表明,即使本次操作是成功的,你執(zhí)行的下一個(gè)VSS命令也可能操作失敗。0VSS成功執(zhí)行。4.4.7 定制SS.Ini和SrcSafe.Ini文件VSS有兩類初始化文件,它們包含了VSS的一些環(huán)境變量:SS.INI,每個(gè)用戶都有一個(gè)這樣的文件;SRCSAFE.INI,僅有一個(gè),定義了VSS的一些全局變量,只有管理員才有權(quán)修改它。5. 附錄A1 同時(shí)維護(hù)

39、一個(gè)工程的多個(gè)版本(Maintain Multiple Versions of a Project)    你可以使用Share/Pin/Branch的方式,也可以使用Label方式。如果你所處的環(huán)境只要求少量的改動(dòng),比如:輕量級的patch,使用Label比較合適;如果你正在規(guī)劃大量的開發(fā)內(nèi)容,使用Share/Pin/Branch比較合適。例如:在軟件處于Beta版時(shí),你可以通過Label功能凍結(jié)(freeze)之,并同時(shí)修改Beta版的bug。當(dāng)你正同時(shí)維護(hù)著某個(gè)產(chǎn)品的1.1版和2.0版時(shí),合理的做法是,為每個(gè)版本創(chuàng)建一個(gè)新的工程,Share并Pin所有的文件

40、,在需要的時(shí)候Branch。當(dāng)1.1發(fā)布時(shí),你可以將1.1版的工程Label,而后將對1.1版的改動(dòng)重新Merge到2.0版中。下面的幾個(gè)場景為你使用Label功能提供指導(dǎo):場景1:理想情況i. 對即將到達(dá)Beta 1版的工程進(jìn)行開發(fā)和測試。ii. 當(dāng)你認(rèn)為時(shí)機(jī)適宜時(shí),將之Label為"Beta 1"。iii. 開始Beta 2版的工作。場景2:文件A的某個(gè)版本被錯(cuò)誤地包含在Beta 1版中i. 對即將到達(dá)Beta 1版的工程進(jìn)行開發(fā)和測試。ii. 當(dāng)你認(rèn)為時(shí)機(jī)適宜時(shí),將之Label為"Beta 1"。iii. 開始Beta 2版的工作。iv. 如果發(fā)現(xiàn)

41、文件A某一時(shí)期的版本被錯(cuò)誤的包含在了Beta 1版中,選擇該文件的正確版本并Label為"Beta 1"。v. 獲取(Get)Beta 1版的工程。場景3:需將bug-fix后的文件A被包含在Beta 1版中,而其余文件未曾改動(dòng)i. 對即將到達(dá)Beta 1版的工程進(jìn)行開發(fā)和測試。ii. 當(dāng)你認(rèn)為時(shí)機(jī)適宜時(shí),將之Label為"Beta 1"。iii. 開始Beta 2版的工作。iv. 你發(fā)現(xiàn),包含在Beta 1版中文件A的那個(gè)版本存在bug,必須改正,而工程中的其余文件則不須改動(dòng)。v. 簽出該文件,改正,然后簽入。vi. 將工程重新Lable為"

42、Beta 1"(你將被詢問是否確認(rèn)刪除原有標(biāo)記)。場景4:需將bug-fix后的文件A包含在Beta 1版中,而其余文件也作了改動(dòng)i. 對即將到達(dá)Beta 1版的工程進(jìn)行開發(fā)和測試。ii. 當(dāng)你認(rèn)為時(shí)機(jī)適宜時(shí),將之Label為"Beta 1"。iii. 開始Beta 2版的工作。iv. 你發(fā)現(xiàn),包含在Beta 1版中文件A的那個(gè)版本存在bug,必須改正,而工程中的其余文件已經(jīng)改動(dòng)過且已經(jīng)被簽入。v. 簽出該文件,改正,然后簽入(此時(shí)該文件的VSS內(nèi)部版本號將自動(dòng)加1)。vi. 將該文件Label為"Beta 1"(和工程的Label同名),這將使該文件的現(xiàn)有版本被指定為"Beta 1"。場景5:文件A的一個(gè)原有版本需要進(jìn)行bug-fix,并加入Beta 1版中i. 對即將到達(dá)Beta

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(wǎng)僅提供信息存儲(chǔ)空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論