日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪(fǎng)問(wèn) 生活随笔!

生活随笔

當(dāng)前位置: 首頁(yè) > 人文社科 > 生活经验 >内容正文

生活经验

Visual SourceSafe简明培训教程

發(fā)布時(shí)間:2023/11/27 生活经验 29 豆豆
生活随笔 收集整理的這篇文章主要介紹了 Visual SourceSafe简明培训教程 小編覺(jué)得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.
?
 名稱(chēng)Visual SourceSafe簡(jiǎn)明培訓(xùn)教程
(Visual SourceSafe Training Short Course)
 作者晨光(Morning)
 簡(jiǎn)介對(duì)于采用Visual SourceSafe 6.0作為版本控制工具的項(xiàng)目及產(chǎn)品開(kāi)發(fā),本教程針對(duì)不同用戶(hù)角色,提供有關(guān)該軟件的若干使用指導(dǎo)。
 聲明本教程版權(quán)為晨光(Morning)所有,未經(jīng)允許,請(qǐng)勿復(fù)制、傳播,謝謝。
?
?

1 說(shuō)明2 概述3 管理員部分3.1 維護(hù)用戶(hù)列表(Maintain the User List)3.1.1 添加用戶(hù)(Add a User)3.1.2 更改密碼(Change Passwords)3.1.3 創(chuàng)建用戶(hù)列表(Create a User List)3.1.4 刪除用戶(hù)(Delete a User)3.1.5 編輯用戶(hù)屬性(Edit User Attributes)3.2 管理數(shù)據(jù)庫(kù)(Manage the Database)3.2.1 分析數(shù)據(jù)目錄(Analyze the Data Folder)*數(shù)據(jù)庫(kù)打包)。VSS數(shù)據(jù)目錄中包含有全部工程和文件的數(shù)據(jù)庫(kù)信息。由于網(wǎng)絡(luò)或操作系統(tǒng)的某些故障,VSS中的文件可能存在錯(cuò)誤和不一致問(wèn)題,Analyze VSS DB工具被用來(lái)查找和修復(fù)這些問(wèn)題。在運(yùn)行該工具前,需要鎖定(Lock)所有用戶(hù)并要求他們退出VSS,用戶(hù)可以在一個(gè)數(shù)據(jù)庫(kù)被鎖定時(shí)保持文件的簽出狀態(tài)(參見(jiàn)鎖定數(shù)據(jù)庫(kù))。建議分兩次運(yùn)行Analyze VSS DB工具,第一次修復(fù)錯(cuò)誤,第二次核查是否仍然存在沒(méi)有被修復(fù)的錯(cuò)誤。數(shù)據(jù)目錄的具體位置是由Data_Path初始化變量在SRCSAFE.INI文件中指定的(參見(jiàn)定制SS.INI和SRCSAFE.INI文件)。

一、本教程針對(duì)不同使用對(duì)象提供Visual SourceSafe 6.0的若干使用指導(dǎo),閱讀對(duì)象包括Visual SourceSafe的管理員和普通用戶(hù),以及希望了解如何采用Visual SourceSafe進(jìn)行軟件版本控制的管理人員。管理員或普通用戶(hù)在使用Visual SourceSafe的過(guò)程中,如果遇到不知如何操作,或者對(duì)某些操作的注意事項(xiàng)不甚了解等類(lèi)似情況時(shí),可以查閱本教程。

二、本教程的"管理員部分"是管理員必讀的,如果管理員在除履行其自身職責(zé)之外,還兼任普通用戶(hù)的角色,則可以參閱教程中的"普通用戶(hù)部分"。作為一般的普通用戶(hù),只需閱讀"普通用戶(hù)部分"即可。

三、教程中列舉的操作,加星號(hào)者,為高級(jí)用法(Advanced Usage),其余為基本用法(Basic Usage)。所謂基本用法是指一些通常使用頻繁的,或者是使用方法較為簡(jiǎn)單的操作。所謂高級(jí)用法是指通常使用頻率不多,或者較為重要的,或者用法復(fù)雜的操作。

四、本教程內(nèi)容摘選并改編自Visual SourceSafe 6.0英文版聯(lián)機(jī)幫助,從中提取了諸多重要信息、容易忽略的內(nèi)容以及若干注意事項(xiàng)。一些基本內(nèi)容(主要指某些基本操作的使用方法)只簡(jiǎn)單列舉了條目,欲了解這些條目的詳細(xì)情況請(qǐng)查看聯(lián)機(jī)幫助的相關(guān)部分,可以通過(guò)列于這些條目之后的英文說(shuō)明在聯(lián)機(jī)幫助中搜索到相關(guān)內(nèi)容。

五、本教程不涉及Visual SourceSafe圖形用戶(hù)界面操作的解釋說(shuō)明,對(duì)指定功能的具體操作步驟請(qǐng)查看聯(lián)機(jī)幫助的相關(guān)部分。可以通過(guò)列于該功能之后的英文說(shuō)明在聯(lián)機(jī)幫助中搜索到相關(guān)內(nèi)容。

六、在其他Visual Studio產(chǎn)品中(例如:Visual C++)可以集成Visual SourceSafe的功能,本教程不涉及有關(guān)在其他集成開(kāi)發(fā)環(huán)境下如何使用Visual SourceSafe功能的內(nèi)容,這部分內(nèi)容主要針對(duì)普通用戶(hù)。對(duì)這些內(nèi)容的了解,在閱讀完本教程之后,將會(huì)變得容易。此外,某些操作在Visual SourceSafe環(huán)境下使用更為方便。

?

  Visual SourceSafe(以下簡(jiǎn)稱(chēng)VSS)是一種版本控制管理工具。它通過(guò)將各種類(lèi)型的文件(包括:文本文件、圖像文件、二進(jìn)制文件、聲音文件、視頻文件等)存入其內(nèi)部數(shù)據(jù)庫(kù)的方式,幫助你有效地管理工程(Project,關(guān)于VSS中工程的概念請(qǐng)見(jiàn)下面)。它允許你在多個(gè)工程間共享同一組文件;你可以將一個(gè)文件添加到數(shù)據(jù)庫(kù)中,以便其他相關(guān)人員使用;任何對(duì)文件的更改將被記錄下來(lái),以便在任何時(shí)候可以恢復(fù)到該文件的某個(gè)舊版本。

  VSS的工程組織方式使團(tuán)隊(duì)協(xié)作開(kāi)發(fā)變得更為容易和直觀。一個(gè)工程是一組存放于VSS數(shù)據(jù)庫(kù)內(nèi)的任意類(lèi)型的文件,一個(gè)工程類(lèi)似于操作系統(tǒng)中的目錄,但VSS為其提供了版本控制、歷史記錄、文件合并等更多的功能支持。

?

?

?

  此處略,詳細(xì)內(nèi)容請(qǐng)查閱聯(lián)機(jī)幫助。

?

  此處略,詳細(xì)內(nèi)容請(qǐng)查閱聯(lián)機(jī)幫助。

?

  此處略,詳細(xì)內(nèi)容請(qǐng)查閱聯(lián)機(jī)幫助。

?

  此處略,詳細(xì)內(nèi)容請(qǐng)查閱聯(lián)機(jī)幫助。

?

  此處略,詳細(xì)內(nèi)容請(qǐng)查閱聯(lián)機(jī)幫助。

?

?

  建議你定期備份完整的VSS數(shù)據(jù)目錄(參見(jiàn)

3.2.2 數(shù)據(jù)庫(kù)打包(Archive Databases)*3.2.3 清除臨時(shí)目錄(Clean Temporary Folder)定制SS.INI和SRCSAFE.INI文件)。

  你可能需要定期地備份VSS數(shù)據(jù)庫(kù),或者數(shù)據(jù)庫(kù)的某一部分。VSS Administrator工具提供了此項(xiàng)功能。它可以:

  • 節(jié)省VSS數(shù)據(jù)庫(kù)服務(wù)器的磁盤(pán)空間。
  • 加快顯示歷史記錄操作(Show History)的速度。
  • 便于在多個(gè)VSS數(shù)據(jù)庫(kù)間傳遞文件和工程,保持歷史記錄完整無(wú)缺。
  • 備份全部或部分VSS數(shù)據(jù)庫(kù)內(nèi)容并壓縮成文件。

?

?

  VSS通常在運(yùn)行時(shí)把臨時(shí)結(jié)果放在臨時(shí)目錄里,并在退出前將之刪除。由于某些原因,例如非正常重啟,可能導(dǎo)致臨時(shí)內(nèi)容殘留在目錄中。作為管理員,你有責(zé)任定期清除臨時(shí)目錄的內(nèi)容。每隔幾周一次,當(dāng)沒(méi)有任何用戶(hù)運(yùn)行VSS或VSS Administrator時(shí),請(qǐng)清除臨時(shí)目錄的內(nèi)容。臨時(shí)目錄的具體位置是由Temp_Path初始化變量在SRCSAFE.INI文件中指定的(參見(jiàn)

3.2.4 鎖定數(shù)據(jù)庫(kù)(Lock a Database)3.2.5 數(shù)據(jù)庫(kù)恢復(fù)(Restore Databases)3.2.6 使用多個(gè)數(shù)據(jù)庫(kù)(Work with Multiple Databases)*對(duì)文件和工程的Branch/Share操作)。

  數(shù)據(jù)庫(kù)鎖定功能將不會(huì)自動(dòng)鎖定那些當(dāng)前已經(jīng)登錄的用戶(hù),你應(yīng)該在鎖定數(shù)據(jù)庫(kù)之前要求登錄用戶(hù)退出VSS。在重新允許用戶(hù)使用VSS之前,需要解除對(duì)數(shù)據(jù)庫(kù)的鎖定。

?

  此處略,詳細(xì)內(nèi)容請(qǐng)查閱聯(lián)機(jī)幫助。

?

  缺省時(shí),VSS將所有文件集中放在一個(gè)數(shù)據(jù)庫(kù)中。如果可能,應(yīng)盡量使用一個(gè)數(shù)據(jù)庫(kù)存放所有文件,這比分多個(gè)數(shù)據(jù)庫(kù)存放要好,因?yàn)?#xff1a;

  • 你不能在多個(gè)數(shù)據(jù)庫(kù)間共享(Share)文件(參見(jiàn)
  • 將位于多個(gè)數(shù)據(jù)庫(kù)中的內(nèi)容集中在一起是比較困難的,需要使用VSS Administrator的Archive功能(參見(jiàn)數(shù)據(jù)庫(kù)打包)。
  • 出于安全的考慮,VSS的用戶(hù)信息,包括密碼在內(nèi),是和數(shù)據(jù)一起存放的。如果為了安全起見(jiàn),要將信息拆分成多個(gè)獨(dú)立的數(shù)據(jù)庫(kù),這種信息存儲(chǔ)方式將帶來(lái)極大便利,但你必須為每個(gè)數(shù)據(jù)庫(kù)都單獨(dú)添加用戶(hù)。

?

3.3 有關(guān)權(quán)限的話(huà)題(About Rights)3.3.1 權(quán)限的傳遞(Rights Propagation)安全訪(fǎng)問(wèn)權(quán)限),而對(duì)于工程"$/Sample",你沒(méi)有為用戶(hù)顯式指定權(quán)限,則該用戶(hù)將對(duì)工程"$/Sample"自動(dòng)擁有Add權(quán)限。當(dāng)你在工程"$/Sample/BusinessObject"處為其指定了Read權(quán)限后,將阻止早先assignment的向下傳遞過(guò)程,所以用戶(hù)A對(duì)該工程(指"$/Sample/BusinessObject")及其子工程都只具有Read權(quán)限了。

?

  當(dāng)你添加了一個(gè)新用戶(hù),并為該用戶(hù)設(shè)置了針對(duì)某個(gè)工程的權(quán)限時(shí),將在VSS數(shù)據(jù)庫(kù)中建立起一個(gè)assignment。該assignment將會(huì)沿著工程樹(shù)向下傳遞直至遇到另一個(gè)assignment。

  例如:針對(duì)工程"$/" ,你為用戶(hù)A指定了Add權(quán)限(參見(jiàn)

  當(dāng)你首次添加一個(gè)用戶(hù)時(shí),該用戶(hù)在工程"$/"處被賦予的權(quán)限由"缺省權(quán)限"決定,缺省權(quán)限是通過(guò)在VSS Administrator里設(shè)置Project Security屬性頁(yè)的內(nèi)容來(lái)定義的。你可以通過(guò)修改該頁(yè)內(nèi)容,全局性地變更所有用戶(hù)的缺省權(quán)限。

3.3.2 安全訪(fǎng)問(wèn)權(quán)限(Security Access Rights)3.3.2.1 缺省安全設(shè)置3.3.2.2 更高級(jí)別的安全控制VSS中部分命令的對(duì)應(yīng)權(quán)限級(jí)別)

?

  當(dāng)安裝VSS后,缺省安全設(shè)置將被啟用。你可以利用定制的方式,使某些用戶(hù)擁有對(duì)某些工程和某些VSS命令的特定權(quán)限。

  缺省安全設(shè)置很簡(jiǎn)單,當(dāng)添加新用戶(hù)時(shí),你只有兩種級(jí)別的訪(fǎng)問(wèn)權(quán)限可供選擇:

  • 只讀權(quán)限(Read-only rights):用戶(hù)可以查看VSS中的任何內(nèi)容,但不能更改。
  • 可讀寫(xiě)權(quán)限(Read/write rights):用戶(hù)可以查看和修改VSS中的任何內(nèi)容。

?

  如果這樣的訪(fǎng)問(wèn)權(quán)限級(jí)別足以應(yīng)對(duì)日常使用,那么就無(wú)需再增強(qiáng)安全控制的級(jí)別了。

  所有的VSS安全管理都在VSS Administrator中進(jìn)行。任何能運(yùn)行該程序的用戶(hù)都可以改變VSS的任意特性,所以最好只有管理員才使用該程序。

?

  在VSS中,對(duì)工程的安全性控制,是通過(guò)制定用戶(hù)訪(fǎng)問(wèn)權(quán)限來(lái)實(shí)現(xiàn)的。每個(gè)工程僅能被那些具有相應(yīng)權(quán)限的用戶(hù)訪(fǎng)問(wèn)到,每個(gè)命令僅能被那些具有相應(yīng)權(quán)限的用戶(hù)使用。可以通過(guò)VSS Administrator來(lái)定制權(quán)限,以達(dá)到更高級(jí)別的安全控制。

  以下是VSS的權(quán)限級(jí)別列表,下列每種權(quán)限都擁有該權(quán)限之前的全部權(quán)限。例如:擁有Check Out權(quán)限的用戶(hù),也將同時(shí)擁有Read權(quán)限。(參見(jiàn)附錄A2:

權(quán)限描述
Read (R)類(lèi)似于缺省安全設(shè)置中的只讀權(quán)限
Check Out (C)可以使用Check Out/Check In/Undo Check Out等命令對(duì)文件進(jìn)行修改
Add (A)可以使用Add/Delete/Label/Rename等命令對(duì)文件進(jìn)行修改
Destroy(D)可以使用Destroy/Purge/Rollback等命令對(duì)文件實(shí)施永久性刪除操作

4 普通用戶(hù)部分4.1 對(duì)工程、文件的一般性使用(Normal Use about Projects and Files)4.1.1 打開(kāi)/關(guān)閉數(shù)據(jù)庫(kù)(Open/Close a Database)4.1.2 創(chuàng)建新工程(Create New Projects)4.1.3 添加文件、目錄、工程(Add Files,Folders,and Projects)4.1.4 刪除和恢復(fù)文件、工程(Delete and Recover Files and Projects)對(duì)文件和工程的Branch/Share操作)。

?

?

  此處略,詳細(xì)內(nèi)容請(qǐng)查閱聯(lián)機(jī)幫助。

?

  此處略,詳細(xì)內(nèi)容請(qǐng)查閱聯(lián)機(jī)幫助。

?

  此處略,詳細(xì)內(nèi)容請(qǐng)查閱聯(lián)機(jī)幫助。

?

  VSS提供了3種刪除文件的方法:

  • Delete:VSS只把指定文件從當(dāng)前工程中刪除,而在VSS數(shù)據(jù)庫(kù)中仍留有該文件的記錄。此外,其他共享了該文件的工程仍保留此文件(參見(jiàn)
  • Destroy:VSS將把指定文件從VSS數(shù)據(jù)庫(kù)中徹底刪除,其后將無(wú)法恢復(fù)。
  • Purge:永久性刪除已被Delete掉的文件,其后將無(wú)法恢復(fù)。

?

  對(duì)于共享文件,Delete和Destroy僅將文件從當(dāng)前所選工程中刪除掉,其他共享了該文件的工程,以及VSS數(shù)據(jù)庫(kù)中,仍留有此文件。

4.1.5 移動(dòng)文件和工程(Move Files and Projects)對(duì)文件和工程的Branch/Share操作),然后將原有工程(original project)下的該文件Delete或者Destroy(參見(jiàn)刪除和恢復(fù)文件、工程)。移動(dòng)后,文件的歷史記錄將被保留。

  移動(dòng)一個(gè)文件的唯一方法是,在文件新所在位置的上一級(jí)工程(parent project)處使該文件共享(參見(jiàn)

  通過(guò)使用Move命令,你可以將一個(gè)子工程(subproject)從某個(gè)上級(jí)工程重置到另一個(gè)工程下。該操作不會(huì)改變子工程的內(nèi)容和歷史記錄,但它會(huì)影響上級(jí)工程的歷史記錄(包括子工程所在的原有上級(jí)工程和新的上級(jí)工程)。當(dāng)移動(dòng)一個(gè)工程后,你將無(wú)法重建原有上級(jí)工程的某個(gè)舊版本。

4.1.6 重命名文件、工程(Rename Files or Projects)對(duì)文件和工程的Branch/Share操作)。

  若某個(gè)文件被多個(gè)工程所共享,對(duì)該文件的重命名將影響所有工程,而在Branch狀態(tài)下,則不影響(參見(jiàn)

4.1.7 設(shè)置工作目錄(Set Working Folders)4.2 簽入、簽出、獲取、查看及相關(guān)操作(Check In/Out、Get、View and Other Related Use)4.2.1 簽入簽出操作(Check In and Check Out Files)4.2.2 撤銷(xiāo)簽出(Undo Check Out)4.2.3 獲取最近版本(Get Latest Version)4.2.4 獲取早期版本(Get Earlier Version)4.2.5 獲取和查看文件、工程(Get and View Files and Projects)4.2.6 回滾到以前版本(Rollback to Previous Versions)對(duì)文件和工程的Branch/Share操作)。建議你使用虛擬回滾(Virtual Rollback),它將不會(huì)使隨后的改動(dòng)永久丟失。具體操作如下:

  此處略,詳細(xì)內(nèi)容請(qǐng)查閱聯(lián)機(jī)幫助。

?

?

  此處略,詳細(xì)內(nèi)容請(qǐng)查閱聯(lián)機(jī)幫助。

?

  執(zhí)行該操作時(shí),若用戶(hù)選擇了替換本地文件,則用戶(hù)將丟失最近一次簽出后對(duì)該文件在本地的更改。

?

  此處略,詳細(xì)內(nèi)容請(qǐng)查閱聯(lián)機(jī)幫助。

?

  此處略,詳細(xì)內(nèi)容請(qǐng)查閱聯(lián)機(jī)幫助。

?

  Get操作將文件或工程拷貝至本地的工作目錄,并設(shè)置為read-only屬性。可以用View操作查看文件內(nèi)容,此時(shí)用戶(hù)無(wú)需設(shè)置工作目錄。

  盡量不要?jiǎng)h除vssver.scc文件。本地工作目錄及每個(gè)子目錄下都包含一個(gè)這樣的文件,VSS利用其中記錄的信息確定本地目錄中哪個(gè)文件已經(jīng)更改了。刪除后,將使新一次的Get操作速度減慢。

?

  該操作將使文件的內(nèi)容恢復(fù)到先前某個(gè)版本時(shí)的狀態(tài),它將使所有在該版本后所做的改動(dòng)丟失。如果你所回滾的文件被多個(gè)工程共享,則操作只影響你所指定的那個(gè)工程,并且它會(huì)自動(dòng)實(shí)行Branch操作(參見(jiàn)

  • 選擇你要回滾的文件并簽出
  • 使用Get命令獲取某個(gè)原有版本到本地
  • 簽入該文件

?

4.2.7 多人同時(shí)簽出一個(gè)文件(Check Out Multiple Files)*合并)

  缺省狀態(tài)下,一個(gè)文件只允許一個(gè)人簽出,管理員可以通過(guò)修改配置,允許多人同時(shí)簽出。此時(shí),VSS將跟蹤所有簽出該文件的用戶(hù)。每當(dāng)用戶(hù)簽入時(shí),VSS都將和當(dāng)前存于數(shù)據(jù)庫(kù)內(nèi)的最新版本進(jìn)行比較,若用戶(hù)修改的是同一文件的不同處,VSS將進(jìn)行簡(jiǎn)單的合并(Merge),否則提示用戶(hù),并且不允許簽入。用戶(hù)可以通過(guò)VSS提供的Visual Merge工具,比較存放于VSS數(shù)據(jù)庫(kù)中的文件和本地文件的異同,手工修改本地文件,直到認(rèn)為已經(jīng)可以簽入時(shí),方才執(zhí)行最終簽入操作。(參見(jiàn)

4.2.8 合并(Merge)*多人同時(shí)簽出一個(gè)文件)。

  在VSS中,合并可能發(fā)生在3種場(chǎng)合下:使用Multiple Checkout的工作方式;合并原先已經(jīng)Branch了的文件;獲取(Get)文件。

  • Multiple Checkout:若多個(gè)用戶(hù)同時(shí)簽出一個(gè)文件,第一個(gè)用戶(hù)只要簡(jiǎn)單的簽入就可以了。后續(xù)用戶(hù)也可以簽入,但他們的更改將需要和其他所有用戶(hù)的更改合并,VSS將得到完整的更改內(nèi)容(參見(jiàn)
  • Branch:當(dāng)被Branch的文件合并到其中一個(gè)分支時(shí),VSS將會(huì)把在另一個(gè)分支上所做的改動(dòng)合并到該分支上(參見(jiàn)對(duì)文件和工程的Branch/Share操作)。
  • Merge on Get:在Multiple Checkout工作方式下,當(dāng)使用Get Latest Version操作時(shí)可能引發(fā)合并操作,此時(shí)保存在VSS數(shù)據(jù)庫(kù)中的內(nèi)容將合并到本地文件。但如果某個(gè)文件是排他性簽出的,則不會(huì)引發(fā)合并操作(參見(jiàn)排他性簽出)。

?

  在完成一個(gè)合并之后,VSS遵循如下規(guī)則:

  • 如果仍有沖突,VSS維持文件的簽出狀態(tài),為了使文件能順利簽入,你必須排除這些沖突。
  • 如果你使用Merge Branches命令,將一個(gè)文件合并到一個(gè)工程中,而該工程中的對(duì)應(yīng)文件已被簽出,該文件將繼續(xù)保持簽出狀態(tài)(參見(jiàn)對(duì)文件和工程的Branch/Share操作)。
  • 在任何其他時(shí)候,VSS將會(huì)提示你,或者在合并后自動(dòng)簽入,或者保持文件的簽出狀態(tài)以使你在更新VSS數(shù)據(jù)庫(kù)中內(nèi)容之前再核查一邊。

?

  缺省情況下,當(dāng)發(fā)生沖突時(shí),VSS將啟用其Visual Merge工具。

4.2.9 排他性簽出(Exclusive Check Out)*4.2.10 對(duì)工程的Cloak操作(Cloak Projects)*4.3 Branch、Share、Label和Pin操作(Branch、Share、Label and Pin)4.3.1 對(duì)文件和工程的Branch/Share操作(Branch and Share Files and Projects)*給文件、工程指定標(biāo)簽),利用Share功能創(chuàng)建過(guò)渡版本(工程路徑為$/Application2.1),此時(shí)兩個(gè)工程中的文件是共享的,且$/Application2.1中的所有文件都處于Pin狀態(tài)(參見(jiàn) Pin操作),即:在向3.0升級(jí)的過(guò)程中,對(duì)$/Application中相關(guān)文件的更改,將不影響$/Application2.1下的內(nèi)容,但此時(shí)文件仍是共享的。僅對(duì)需要修改bug的文件采取Branch操作。這樣做的好處是,中間版本的bug修改工作和3.0的升級(jí)工作可以同時(shí)進(jìn)行,并且最大限度的降低了所需的存儲(chǔ)空間。

  允許多人同時(shí)簽出一個(gè)文件是針對(duì)整個(gè)VSS數(shù)據(jù)庫(kù)而言的,但用戶(hù)仍可以根據(jù)實(shí)際情況,針對(duì)某些文件修改該規(guī)則。對(duì)某個(gè)文件實(shí)施排他性簽出,則其他用戶(hù)將無(wú)法簽出該文件,直至該用戶(hù)使用了簽入操作。

?

  若對(duì)某工程實(shí)行了Cloak操作,則當(dāng)對(duì)該工程的上一級(jí)工程進(jìn)行Get/Check In/Check Out/Undo Check Out/Project Difference操作時(shí),將不會(huì)影響該工程及其子工程。而在該工程上進(jìn)行類(lèi)似操作時(shí),則和平常得到的結(jié)果一樣。這一屬性將傳遞給其下的子工程。

  例如:某個(gè)工程其路徑為$/Application,下面有三個(gè)子工程:$/Application/Code,$/Application/Test,$/Application/Docs,而Docs工程下的內(nèi)容可能對(duì)你沒(méi)有任何用處。當(dāng)你每次從$/Application處進(jìn)行Get操作后,都需要從本地刪除多余的Docs目錄。此時(shí)可以對(duì)Docs進(jìn)行Cloak操作。這樣,每次的Get操作將只把Code和Test下的內(nèi)容放到本地。如果你需要獲取Docs工程下的內(nèi)容,則可以單獨(dú)從Docs處進(jìn)行Get操作。

?

?

  在VSS中,通過(guò)Share操作,一個(gè)文件可以被多個(gè)工程共享,在任何一個(gè)工程中對(duì)該文件的更改,都將反映到其他相關(guān)工程里。

  Branch操作則消除這種共享,每次將一個(gè)被共享的文件拆成兩個(gè)分支,在不同工程中分別跟蹤該文件。通過(guò)查看文件屬性的Links屬性頁(yè)可以了解該文件被哪些工程共享,通過(guò)查看Paths屬性頁(yè)可以了解文件的分支狀況。

  例如:產(chǎn)品目前的正式版本為2.0(工程路徑為$/Application),在加入新功能后將升級(jí)為3.0。但在開(kāi)始升級(jí)的過(guò)程中,其間的一個(gè)過(guò)渡版本2.1存在bug,需要修改。此時(shí)可以進(jìn)行如下操作:選擇被Label標(biāo)識(shí)為2.0的那個(gè)版本(參見(jiàn)

4.3.2 給文件、工程指定標(biāo)簽(Label Files and Projects)*同時(shí)維護(hù)一個(gè)工程的多個(gè)版本

  VSS使用3種方式跟蹤文件的歷史記錄:內(nèi)部版本號(hào),日期,用戶(hù)自定義標(biāo)簽。

  標(biāo)簽可以是一個(gè)不超過(guò)31個(gè)字符長(zhǎng)度的串,例如:"1.0"、"2.01b"、"Final Beta"、"Approved for QA"。應(yīng)用Label功能,用戶(hù)就可以獲取某個(gè)特定時(shí)期的軟件內(nèi)容了。所有當(dāng)前工程下的文件和子工程都將繼承該標(biāo)簽。

  注意下面幾點(diǎn):

  • 當(dāng)使用Label功能時(shí),表明你在所選工程的歷史記錄里創(chuàng)建了一個(gè)新的版本,但文件和工程本身的內(nèi)容并未發(fā)生變化。
  • 對(duì)某個(gè)工程的某個(gè)標(biāo)簽再次使用Label操作將覆蓋原來(lái)的標(biāo)簽內(nèi)容。

?

  請(qǐng)參見(jiàn)附錄A1:

4.3.3 Pin操作(Pin)*對(duì)文件和工程的Branch/Share操作)。

  該功能對(duì)共享文件很有用,盡管它的使用不僅限于共享文件,也包括其他任何文件。當(dāng)你對(duì)一個(gè)文件實(shí)施Pin操作后,你將不能對(duì)之做任何修改。如果一個(gè)文件在Pin之后又被實(shí)施了Share操作,而被Pin的那個(gè)版本同時(shí)也是被共享的版本,則所有共享該文件的工程都不能更改該文件。如果一個(gè)文件先被實(shí)施了Share操作,而后在某個(gè)工程中被Pin了,則除了這個(gè)工程外的其余工程仍可以更改該文件(參見(jiàn)

4.4 其他操作(Other Use)4.4.1 擴(kuò)展關(guān)鍵字(Expand Keywords)*4.4.2 使用Shadow目錄(Work with Shadow Folders)*4.4.3 性能優(yōu)化(Optimize Performance)*使用Shadow目錄)

?

  VSS可以將某些指定信息(例如:VSS內(nèi)部版本號(hào))直接插入文本文件中。用戶(hù)只要將某些關(guān)鍵字放入文件的注釋中,每次添加(Add)或簽入(Check In)文件時(shí),VSS都會(huì)自動(dòng)查找這些關(guān)鍵字,并將相關(guān)信息置于其后。

  VSS中常用的關(guān)鍵字:

關(guān)鍵字描述
$Archive: $文件在VSS中的路徑名
$Author: $最近一次更改文件的用戶(hù)
$Date: $最近一次簽入的時(shí)間
$History: $文件的歷史記錄
$Revision: $VSS內(nèi)部版本號(hào)
$NoKeywords: $使VSS對(duì)其后的所有關(guān)鍵字不進(jìn)行擴(kuò)展

  例如:

  在某文件中加入如下一行:

  $Revision: $

  若當(dāng)前該文件在VSS內(nèi)部的版本號(hào)是22,則簽入后VSS會(huì)將之修改為:

  $Revision: 23 $

?

  Shadow目錄位于服務(wù)器端,包含了工程中所有的文件。這些文件既非位于VSS數(shù)據(jù)庫(kù)中的master copy,亦非位于本地工作目錄的local copy,而是最近一次簽入的所有內(nèi)容。Shadow目錄應(yīng)該由管理員來(lái)設(shè)置。

  是否使用Shadow目錄功能是可選的,通常在如下兩種情況下可以考慮使用該功能:

  • 為使某些用戶(hù)能查看文件(但不能更改),這些用戶(hù)可能沒(méi)有對(duì)VSS的訪(fǎng)問(wèn)權(quán)限。
  • 不讓你的本地工作目錄保留可編譯的軟件副本。為使每個(gè)用戶(hù)都能得到一個(gè)最新版本的軟件,所有用戶(hù)可能希望在某個(gè)目錄下集中進(jìn)行編譯,而非在各自的工作目錄下編譯。在這種情況下,Shadow目錄功能通常和添加(Add)、簽入(Check In)之后的Remove Local Copy結(jié)合使用。

?

  Shadow目錄不會(huì)跟蹤子工程的變化,例如:你有一個(gè)被Shadow的工程$/A,包含兩個(gè)子工程:$/A/1和$/A/2,而你又將$/A/2重命名為$/A/B,這種變化將不會(huì)被反映到Shadow目錄中。你可以手工修改,或者利用Reconcile All功能,使之保持同步。

?

  有兩種方法可以改善VSS的性能:盡可能多的將內(nèi)容通過(guò)網(wǎng)絡(luò)拷貝至本地來(lái)做;修改初始化文件對(duì)VSS的性能進(jìn)行微調(diào)。

  具體優(yōu)化措施:

  • 在SS.INI或SRCSAFE.INI文件中設(shè)置如下變量:

    Diff_Ignore (PC) = c-e-s-w-

    使VSS在進(jìn)行文件比較時(shí)忽略end-of-line標(biāo)記,從而加快運(yùn)行效率

    CP_OnSelection = No

    在使用VSS Explorer時(shí),缺省狀態(tài)下,用戶(hù)使用鼠標(biāo)單擊或使用鍵盤(pán)的方向鍵在工程列表上移動(dòng)時(shí),就會(huì)選中工程。設(shè)為No后,只有雙擊鼠標(biāo)或按回車(chē)鍵才會(huì)選中。

  • 設(shè)置臨時(shí)目錄

    缺省情況下,VSS將臨時(shí)文件存于服務(wù)器端,但管理員可以通過(guò)修改SS.INI中的Temp_Path變量,將臨時(shí)路徑設(shè)置在本地。

  • 讓管理員在SRCSAFE.INI文件中將Lock_Mode變量設(shè)置為Native

    這是SRCSAFE.INI中該變量的缺省設(shè)置,把該變量設(shè)置為Native將使幾乎所有的VSS操作都得到加速。該變量只能由管理員來(lái)設(shè)置。

  • 管理員通過(guò)Disable下面的功能,也可以一定程度地改善性能:
    • Shadow folders(參見(jiàn)
    • Journal files
    • Project security system(參見(jiàn)安全訪(fǎng)問(wèn)權(quán)限)
    • Keyword expansion(參見(jiàn)擴(kuò)展關(guān)鍵字)

?

4.4.4 查找文件(Search for Files)4.4.5 設(shè)置密碼(Set Passwords)4.4.6 編寫(xiě)批處理文件(Writing Batch Files)*4.4.7 定制SS.INI和SRCSAFE.INI文件(Customize the SS.INI and SRCSAFE.INI Files)附錄A1 同時(shí)維護(hù)一個(gè)工程的多個(gè)版本(Maintain Multiple Versions of a Project)A2 VSS中部分命令的對(duì)應(yīng)權(quán)限級(jí)別

  VSS Explore的list view缺省時(shí)只顯示當(dāng)前工程中的所有文件。通過(guò)使用Search命令,可以只顯示符合指定要求的文件。例如:只顯示.h文件,只現(xiàn)實(shí)被簽出的文件。Search命令是允許遞歸的。

?

  如果VSS管理員指定域賬號(hào)為VSS登錄賬號(hào),則用戶(hù)登錄VSS時(shí)將不會(huì)提示輸入密碼。

?

  在編寫(xiě)批處理文件時(shí),一些在命令行方式下使用的交互手段需要改變。

?

  • 屏蔽輸入(Disable Input)

    如果你的批處理文件中包含了一系列VSS命令(它們可能需要整夜運(yùn)行),你一定不希望程序執(zhí)行期間會(huì)停下來(lái)提示用戶(hù)輸入信息。有3個(gè)命令行選項(xiàng)可以解決此類(lèi)問(wèn)題。

    缺省時(shí),VSS在執(zhí)行諸如添加(Add)、簽入(Check In)等操作時(shí)會(huì)提示你輸入注釋(Comment),利用-c選項(xiàng)可以避免該類(lèi)提示:

    命令描述
    -c-不添加注釋
    "-cHello"使用Hello字串作為注釋
    -c@COMMENT.TXT使用comment.txt文件的內(nèi)容作為注釋

    此外,VSS通常會(huì)要求用戶(hù)回答yes或no,你可以使用-i選項(xiàng)避免此類(lèi)問(wèn)題:

    命令描述
    -i-y對(duì)所有此類(lèi)提問(wèn)自動(dòng)回答Yes
    -i-n對(duì)所有此類(lèi)提問(wèn)自動(dòng)回答No
    -i使用缺省回答

    VSS也可能會(huì)提示登錄名,你可以使用-y選項(xiàng)提供足夠多的信息。

  • 重定向輸出

    缺省時(shí),VSS將所有輸出定向到屏幕,在命令行狀態(tài)下你可以使用-o選項(xiàng)分頁(yè)輸出,而在批處理文件中你同樣可以利用-o屏蔽輸出或重定向輸出。

    命令描述
    -o-屏蔽輸出
    -oRESULTS.TXT重定向所有輸出到文本文件results.txt中,如果該文件已存在,輸出內(nèi)容將追加到該文件末尾。

  • 使用命令行返回值

    在命令行狀態(tài)下運(yùn)行VSS時(shí),VSS會(huì)設(shè)置一些返回值來(lái)標(biāo)明運(yùn)行狀態(tài)。你可以在批處理文件中根據(jù)VSS的返回值采取相應(yīng)措施。

    返回值描述
    100表明出錯(cuò),例如:VSS無(wú)法找到數(shù)據(jù)庫(kù)文件,或者你試圖簽出某個(gè)早已被簽出的文件。
    1表明一個(gè)不是很?chē)?yán)重的錯(cuò)誤,將在如下三種情況下發(fā)生:
    當(dāng)你使用ss Dir時(shí),沒(méi)有找到任何條目。
    當(dāng)你使用ss Status時(shí),至少有一項(xiàng)被簽出。
    當(dāng)你使用ss Diff時(shí),至少有一個(gè)文件不一致。
    所有這些情況表明,即使本次操作是成功的,你執(zhí)行的下一個(gè)VSS命令也可能操作失敗。
    0VSS成功執(zhí)行。

?

?

  VSS有兩類(lèi)初始化文件,它們包含了VSS的一些環(huán)境變量:SS.INI,每個(gè)用戶(hù)都有一個(gè)這樣的文件;SRCSAFE.INI,僅有一個(gè),定義了VSS的一些全局變量,只有管理員才有權(quán)修改它。

?

?

  你可以使用Share/Pin/Branch的方式,也可以使用Label方式。如果你所處的環(huán)境只要求少量的改動(dòng),比如:輕量級(jí)的patch,使用Label比較合適;如果你正在規(guī)劃大量的開(kāi)發(fā)內(nèi)容,使用Share/Pin/Branch比較合適。例如:在軟件處于Beta版時(shí),你可以通過(guò)Label功能凍結(jié)(freeze)之,并同時(shí)修改Beta版的bug。當(dāng)你正同時(shí)維護(hù)著某個(gè)產(chǎn)品的1.1版和2.0版時(shí),合理的做法是,為每個(gè)版本創(chuàng)建一個(gè)新的工程,Share并Pin所有的文件,在需要的時(shí)候Branch。當(dāng)1.1發(fā)布時(shí),你可以將1.1版的工程Label,而后將對(duì)1.1版的改動(dòng)重新Merge到2.0版中。下面的幾個(gè)場(chǎng)景為你使用Label功能提供指導(dǎo):

場(chǎng)景1:理想情況

1、對(duì)即將到達(dá)Beta 1版的工程進(jìn)行開(kāi)發(fā)和測(cè)試。
2、當(dāng)你認(rèn)為時(shí)機(jī)適宜時(shí),將之Label為"Beta 1"。
3、開(kāi)始Beta 2版的工作。

場(chǎng)景2:文件A的某個(gè)版本被錯(cuò)誤地包含在Beta 1版中

1、對(duì)即將到達(dá)Beta 1版的工程進(jìn)行開(kāi)發(fā)和測(cè)試。
2、當(dāng)你認(rèn)為時(shí)機(jī)適宜時(shí),將之Label為"Beta 1"。
3、開(kāi)始Beta 2版的工作。
4、如果發(fā)現(xiàn)文件A某一時(shí)期的版本被錯(cuò)誤的包含在了Beta 1版中,選擇該文件的正確版本并Label為"Beta 1"。
5、獲取(Get)Beta 1版的工程。

場(chǎng)景3:需將bug-fix后的文件A被包含在Beta 1版中,而其余文件未曾改動(dòng)

1、對(duì)即將到達(dá)Beta 1版的工程進(jìn)行開(kāi)發(fā)和測(cè)試。
2、當(dāng)你認(rèn)為時(shí)機(jī)適宜時(shí),將之Label為"Beta 1"。
3、開(kāi)始Beta 2版的工作。
4、你發(fā)現(xiàn),包含在Beta 1版中文件A的那個(gè)版本存在bug,必須改正,而工程中的其余文件則不須改動(dòng)。
5、簽出該文件,改正,然后簽入。
6、將工程重新Lable為"Beta 1"(你將被詢(xún)問(wèn)是否確認(rèn)刪除原有標(biāo)記)。

場(chǎng)景4:需將bug-fix后的文件A包含在Beta 1版中,而其余文件也作了改動(dòng)

1、對(duì)即將到達(dá)Beta 1版的工程進(jìn)行開(kāi)發(fā)和測(cè)試。
2、當(dāng)你認(rèn)為時(shí)機(jī)適宜時(shí),將之Label為"Beta 1"。
3、開(kāi)始Beta 2版的工作。
4、你發(fā)現(xiàn),包含在Beta 1版中文件A的那個(gè)版本存在bug,必須改正,而工程中的其余文件已經(jīng)改動(dòng)過(guò)且已經(jīng)被簽入。
5、簽出該文件,改正,然后簽入(此時(shí)該文件的VSS內(nèi)部版本號(hào)將自動(dòng)加1)。
6、將該文件Label為"Beta 1"(和工程的Label同名),這將使該文件的現(xiàn)有版本被指定為"Beta 1"。

場(chǎng)景5:文件A的一個(gè)原有版本需要進(jìn)行bug-fix,并加入Beta 1版中

1、對(duì)即將到達(dá)Beta 1版的工程進(jìn)行開(kāi)發(fā)和測(cè)試。
2、當(dāng)你認(rèn)為時(shí)機(jī)適宜時(shí),將之Label為"Beta 1"。
3、開(kāi)始Beta 2版的工作。
4、你發(fā)現(xiàn),包含在Beta 1版中文件A的那個(gè)版本存在bug,必須改正。例如:文件的當(dāng)前內(nèi)部版本號(hào)是6,且包含了為達(dá)到Beta 2版所做的某些改動(dòng),而你不希望將這些改動(dòng)并入Beta 1版中。
5、簽出文件A(Version 6)
6、獲取Version 4,覆蓋Version 6的本地版本。
7、修改該文件Beta 1版中的bug,然后簽入。這將使文件A的內(nèi)部版本號(hào)升至7(Version 4的內(nèi)容加上bug-fix后的內(nèi)容,但沒(méi)有包含Version 5和Version 6的內(nèi)容)
8、將Version 7 Label為"Beta 1"。這將使文件A的Version 7版被指定為"Beta 1"。現(xiàn)在,如果你嘗試獲取Beta 1版的工程時(shí),你將會(huì)得到包含bug-fix后的文件A(被單獨(dú)Label)連同原來(lái)Label為"Beta 1"的工程中的其余文件。
9、為了繼續(xù)Beta 2版的工作,需要恢復(fù)在Version 5和Version 6上的改動(dòng),再次簽出文件A(Version 7)
10、獲取Version 6。
11、覆蓋Version 7的本地版本,或合并之(這將使本地版本變成Version 6的內(nèi)容加上你在Version 7中為"Beta 1"所做的bug-fix)。
12、繼續(xù)修改文件A的本地版本直到你滿(mǎn)意,然后簽入。這將產(chǎn)生文件A的Version 8,現(xiàn)在你將可以繼續(xù)Beta 2版的工作了。

?

  下表中打星號(hào)表示具有該類(lèi)權(quán)限的用戶(hù)可以使用該命令。

功能RCAD
Add??**
Branch??**
Check In?***
Check Out?***
Cloak****
Create [1]??**
Delete??**
Destroy???*
Difference****
Get Latest Version****
History****
Label??**
Links****
Merge [2]?***
Merge****
Move [3]??**
Move???*
Pin?***
Purge???*
Recover??**
Rename??**
Rollback???*
Share [4]?***
Share??**
Undo Check Out?***
Set Working Folder****

[1] 此處指用戶(hù)必須有對(duì)Parent Project的A類(lèi)權(quán)限。
[2] 此處指用戶(hù)必須有對(duì)目的Project的C類(lèi)權(quán)限,同時(shí)有對(duì)原Project的R類(lèi)權(quán)限。
[3] 此處指用戶(hù)必須有對(duì)目的Parent Project的A類(lèi)權(quán)限,同時(shí)有對(duì)原Parent Project的D類(lèi)權(quán)限。
[4] 此處指用戶(hù)必須有對(duì)原Project的C類(lèi)權(quán)限,同時(shí)有對(duì)目的Project的A類(lèi)權(quán)限。

?

總結(jié)

以上是生活随笔為你收集整理的Visual SourceSafe简明培训教程的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。

如果覺(jué)得生活随笔網(wǎng)站內(nèi)容還不錯(cuò),歡迎將生活随笔推薦給好友。