一、 開發(fā)前的準(zhǔn)備
1、 在裝有Windows 2000或者Windows XP Professional的機(jī)器上安裝.Net Framework SDK、Visual Studio.Net、Visual Source Safe 6C。(如果用戶操作系統(tǒng)是Windows .Net Server,則無須安裝.Net Framework SDK,.Net Server自帶的IIS 6已經(jīng)完全包含了對(duì).Net的支持)這些工具在Visual Studio.Net的安裝盤上都可以找到。
2、 一臺(tái)專門用于存放版本控制中心數(shù)據(jù)庫(kù)的服務(wù)器。該服務(wù)器不需要安裝.NET Framework SDK和VS.Net,但是必須安裝VSS 6C。我們稱這臺(tái)服務(wù)器為開發(fā)服務(wù)器DataCenter。
3、 一個(gè)主域控制器,將DataCenter服務(wù)器加入這個(gè)域,為每一個(gè)開發(fā)用戶分配域帳號(hào)。這樣所有小組成員可以通過登錄到Window NT域來訪問版本控制信息。
注意:Visual Studio 6所帶的Visual Source Safe 6不支持.Net的一些文件格式。如果你安裝了VSS 6,也需要再安裝一次VSS 6C,否則在VS.Net環(huán)境中將源代碼加入到VSS數(shù)據(jù)庫(kù)中將會(huì)出現(xiàn)錯(cuò)誤。
二、 創(chuàng)建空的SourceSafe數(shù)據(jù)庫(kù)
在開始工作之前,需要建立一個(gè)空的SourceSafe數(shù)據(jù)庫(kù),來存放源代碼控制數(shù)據(jù),并為小組開發(fā)人員分配訪問帳號(hào)。在DataCenter服務(wù)器上新建Source Safe數(shù)據(jù)庫(kù)。步驟如下:
1、 啟動(dòng)"開始"——"程序"——"Microsoft Visual SourceSafe"菜單下的SourceSafe 6.0 Admin。如果你是第一次安裝VSS 6C,Common數(shù)據(jù)庫(kù)的Admin帳號(hào)為空。如圖一所示:

圖一 VSS登錄窗口
2、 在Visual SourceSafe Administrator窗口中,你可以看到Source Safe默認(rèn)的兩個(gè)用戶Admin和Guest。如果你不打算使用默認(rèn)的Common數(shù)據(jù)庫(kù),而要建立一個(gè)屬于自己的項(xiàng)目數(shù)據(jù)庫(kù)。選擇菜單"Tools"——"Create Database",如圖二所示:

圖二 VSS管理窗口
3、 在彈出的對(duì)話框中選擇新數(shù)據(jù)庫(kù)存放的位置。這里我們選擇:C:\SourceManager\。點(diǎn)擊OK后,提示你已經(jīng)創(chuàng)建了數(shù)據(jù)庫(kù)。
4、 選擇"Users"——"Open SourceSafe Database…",使用Browser按鈕,選擇剛才所創(chuàng)建的SourceManager數(shù)據(jù)庫(kù)C:\SourceManager\srcsafe.ini。
5、 使用"Users"——"Change Password"命令更改Admin帳號(hào)的密碼。使用"Users"——"Add User"命令為項(xiàng)目小組成員創(chuàng)建SourceSafe帳號(hào)。
6、 將C:\SourceManager目錄設(shè)置為共享。共享權(quán)限默認(rèn)是Everyone完全控制。如果希望只對(duì)項(xiàng)目小組成員開放,不希望其他人操作數(shù)據(jù)庫(kù)文件(注意:沒有SourceManager帳號(hào)的人不能訪問SourceSafe中的內(nèi)容,但如果他有權(quán)限的話,可以刪除或修改數(shù)據(jù)庫(kù)中的數(shù)據(jù)),請(qǐng)將Everyone組從權(quán)限組中刪除,并從域目錄中選擇可以訪問該目錄的域帳號(hào)或計(jì)算機(jī)。
7、 到此,一個(gè)空的項(xiàng)目數(shù)據(jù)庫(kù)建立完畢。
三、 新建項(xiàng)目并加入版本控制
下面將演示在一個(gè)裝有VS.Net的計(jì)算機(jī)上創(chuàng)建一個(gè)Windows應(yīng)用程序和一個(gè)Web項(xiàng)目,并把它加入到上面所建的SouceManager數(shù)據(jù)庫(kù)中。
1、 啟動(dòng)VS.NET。
2、 使用"文件"——"新建"——"空白解決方案"命令,在D:\下新建解決方案SourceManager。VS.Net會(huì)在D:\下自動(dòng)創(chuàng)建一個(gè)SourceManager目錄,該目錄中有一個(gè)解決方案文件SourceManager.sln文件。
3、 使用"文件"——"新建"——"項(xiàng)目"命令,在項(xiàng)目類型中選擇"Visual C#項(xiàng)目",在"模板"中選擇"Window應(yīng)用程序"。項(xiàng)目名稱MyWindowApp。并選擇"添入解決方案"選項(xiàng)。確定。

圖三 新建Windows應(yīng)用程序項(xiàng)目窗口
4、 使用"文件"——"新建"——"項(xiàng)目"命令,在項(xiàng)目類型中選擇"Visual C#項(xiàng)目",在"模板"中選擇"ASP.NET Web應(yīng)用程序"。在"位置"欄中填寫http://localhost/MyWebApp。并選擇"添入解決方案"選項(xiàng)。確定。

圖四 新建Web應(yīng)用程序窗口
這樣就在解決方案中建立了一個(gè)Window應(yīng)用程序和一個(gè)Web應(yīng)用程序。下面講述如何將整個(gè)解決方案加入到源代碼版本控制。
5、 在WebFrom1和Form1的設(shè)計(jì)器中各自加入一個(gè)Label控件,保持它的屬性不變。我們將看到從另一個(gè)主機(jī)上獲取的程序用戶界面中也會(huì)有這一個(gè)控件。
6、 使用"文件"——"源代碼管理"——"將解決方案加到源代碼管理"命令。

圖五 源代碼管理菜單
7、 在彈出的Visual SourceSafe Login登錄窗口點(diǎn)擊"Browser"按鈕,彈出打開數(shù)據(jù)庫(kù)對(duì)話框,點(diǎn)擊該對(duì)話框的"Browser"按鈕,彈出如下對(duì)話框,在"文件名"中輸入\\DataCenter\SourceManager\srcsafe.ini。確定后輸入上面所分配的SourceSafe帳號(hào)和密碼。

圖六 打開VSS數(shù)據(jù)庫(kù)對(duì)話框
8、 首先會(huì)彈出一個(gè)保存解決方案的提示窗口,讓你選擇將要保存到SourceSafe中的項(xiàng)目名稱,默認(rèn)與解決方案的名稱相同。點(diǎn)擊OK,會(huì)得到項(xiàng)目在數(shù)據(jù)庫(kù)中不存在的提示,點(diǎn)擊"Yes"創(chuàng)建該項(xiàng)目。

圖七 在VSS中創(chuàng)建項(xiàng)目對(duì)話框
9、 接下來會(huì)讓你選擇Web應(yīng)用程序的保存位置。如下圖所示。由于Web應(yīng)用程序通常保存在本地的IIS根目錄下。與解決方案中的其它項(xiàng)目不在同一個(gè)目錄中,所以需要為Web應(yīng)用程序在SourceSafe中單獨(dú)建立一個(gè)項(xiàng)目。在該窗口點(diǎn)擊"OK"按鈕接受SourceSafe的默認(rèn)項(xiàng)目名稱MyWebApp。

圖八 在VSS中創(chuàng)建Web項(xiàng)目對(duì)話框
10、 到此,我們已經(jīng)在SourceSafe中添加了整個(gè)解決方案,包括一個(gè)Windows應(yīng)用程序和一個(gè)Web應(yīng)用程序。在"解決方案資源管理器"視圖中,加入源代碼控制的程序旁邊有一把鎖(如圖九所示),表示文檔已簽入,不可編輯。

圖九 解決方案資源管理器
11、 通過菜單"文件"——"源代碼管理"——"Microsoft Visual SourceSafe",打開SourceSafe,可以看到,在SourceSafe中已經(jīng)加入了兩個(gè)項(xiàng)目。如圖十所示:

圖十 VSS瀏覽器
四、 獲取SourceSafe中的項(xiàng)目
下面的步驟中將講述如何在另一臺(tái)主機(jī)上從SourceSafe獲取源代碼。
1、 在另一臺(tái)主機(jī)上打開Visual Studio.Net開發(fā)環(huán)境。使用菜單命令"文件"——"源代碼管理"——"從源代碼管理打開"。重復(fù)第三步中的第7個(gè)操作,選擇SourceSafe數(shù)據(jù)庫(kù)的位置。
2、 彈出"Create local poject from SourceSafe"窗口,在"Create a new project in the"輸入框中填寫你要保存項(xiàng)目的本地路徑,這里我們選擇"C:\MyProject"。在"SourceSafe project to"中選擇SourceManager項(xiàng)目,單擊OK按鈕。如果目錄C:\MyProject不存在,會(huì)詢問是否創(chuàng)建,選擇"Yes All"。

圖十一 從SourceSafe獲取項(xiàng)目對(duì)話框
3、 接下來會(huì)彈出保存Web應(yīng)用程序工作副本的對(duì)話框,在工作副本位置輸入框中輸入你想要保存Web應(yīng)用的Web文件夾,也可以接受默認(rèn)設(shè)置。點(diǎn)擊"確定"按鈕接受默認(rèn)設(shè)置。

圖十二 從SourceSafe獲取Web項(xiàng)目對(duì)話框
4、 通過上述步驟,我們已經(jīng)成功地在另一個(gè)開發(fā)主機(jī)上獲得保存在SourceSafe的工程。將來如果有新的開發(fā)人員加入,只需重復(fù)這四個(gè)步驟即可。
五、 版本控制的幾個(gè)概念
在Visual Studio.Net開發(fā)環(huán)境"解決方案資源管理器"的上下文菜單或者"文件"——中有如下與文件操作有關(guān)的命令,如圖十三所示:

1、 文件的"簽出"(Check Out):當(dāng)需要編輯一個(gè)文件時(shí),必須將該文件"簽出",SourceSafe會(huì)標(biāo)志該文件已經(jīng)被某個(gè)用戶遷出,并確保其他用戶不可編輯同一個(gè)文件。對(duì)于文件,僅當(dāng)文件被簽入后才有這個(gè)選項(xiàng)。
2、 文件的"簽入"(Check In):當(dāng)完成文件的編輯后,最好將文件"簽入",以讓其他用戶可以簽出或者獲取最新版本。對(duì)于文件,僅當(dāng)文件被簽出后才有這個(gè)選項(xiàng)。
3、 "獲取最新版本":從SourceSafe數(shù)據(jù)庫(kù)中獲取指定文件或項(xiàng)目的最新版本,而又不必簽出文件。
4、 "取消簽出":不在SourceSafe數(shù)據(jù)庫(kù)中保存簽出后所做的修改,使本地文件恢復(fù)到修改之前的狀態(tài),并且將文件簽入。只有文件或項(xiàng)目中有文件被簽出后才有這個(gè)選項(xiàng)。
5、 "歷史記錄":查看文件修改的歷史記錄。SourceSafe數(shù)據(jù)庫(kù)會(huì)自動(dòng)保存每次"簽入"前后的文件內(nèi)容。如果需要查看歷史記錄。
6、 "版本比較":可以比較當(dāng)前版本與歷史版本之間的差異,SourceSafe將以對(duì)照的形式將兩個(gè)版本的不同之處顯示出來。如圖十四所示:

圖十四 版本比較
7、 "Roll Back":在歷史版本顯示對(duì)話框中有一個(gè)Roll Back命令,即將文件恢復(fù)到歷史版本。當(dāng)文件編輯錯(cuò)誤時(shí),想讓文件回到歷史的某個(gè)點(diǎn)時(shí),使用該命令。歷史版本顯示對(duì)話框中還有其它命令,這里不一一詳述,請(qǐng)讀者慢慢研究。
8、 Visual Studio.Net中關(guān)于版本控制的選項(xiàng):在"工具"——"選項(xiàng)"命令對(duì)話框中,選擇左邊的"源代碼管理",顯示如下對(duì)話框。讀者可以根據(jù)項(xiàng)目的情況對(duì)SourceSafe選項(xiàng)進(jìn)行設(shè)置。

圖十五 Visual Studio.Net中與版本控制相關(guān)的選項(xiàng)
9、 其它SourceSafe操作:讀者可以從"文件"——"源代碼管理"——"Microsoft Visual SourceSafe"菜單,進(jìn)入"Visual SourceSafe Explorer",其中大多數(shù)主要命令基本與Visual Studio.Net相同,這里就不再累贅。
六、 版本控制項(xiàng)目的管理
下面將講述版本控制相關(guān)的一些權(quán)限管理和文件映射。首先在DataCenter服務(wù)器上打開"開始"——"程序"——"Microsoft Visual SourceSafe"——"Visual Source Safe 6.0 Admin"。選擇SourceManager數(shù)據(jù)庫(kù),填入Admin賬號(hào)的密碼。進(jìn)入"SourceSafe Administrator"窗口。它有如下幾個(gè)菜單。

1、 Users菜單下是關(guān)于用戶操作的命令,除上面我們所使用的添加用戶"Add User"、修改密碼"Change Password"外,還有刪除用戶"Delete User"、編輯用戶"Edit User"命令。"Open SourceSafe Database"命令用于更改當(dāng)前SourceSafe數(shù)據(jù)庫(kù)。
2、 Tools菜單下的Options對(duì)話框中包括了一些項(xiàng)目的設(shè)置。下面對(duì)主要的選項(xiàng)進(jìn)行簡(jiǎn)單的說明:
(1) General頁(yè)中的Allow multiple checkouts,如果選擇此項(xiàng),則允許多個(gè)用戶同時(shí)簽出文件。默認(rèn)是不允許。
(2) Project Security頁(yè)中的"Enable project security"復(fù)選框指明是否允許對(duì)項(xiàng)目使用安全性。該項(xiàng)默認(rèn)為不允許。只有當(dāng)選擇了這個(gè)選項(xiàng)之后,Tools下的"Rights by Project"、"Right Assignments for User"和"Copy User Rights"才可用。這里我們將它選中。
(3) Shadow Folders頁(yè)用于設(shè)置項(xiàng)目在服務(wù)器上的映射。項(xiàng)目在SourceSafe中以二進(jìn)制碼形式將文件的所有版本信息保存在文件中。要在服務(wù)器上創(chuàng)建一個(gè)目錄,將項(xiàng)目文件映射到這個(gè)目錄中,使用該命令。在"Set shadow folder for project"中選擇在SourceSafe中的SourceManager項(xiàng)目,在"Set shadow folder to"中選擇項(xiàng)目要映射到的目錄,如C:\SourceManager_Shadow。
(4) Web Projects頁(yè)用于設(shè)置Web項(xiàng)目在服務(wù)器上的映射。在This project represents a Web Site中選擇SourceSafe中的MyWebApp項(xiàng)目,在URL中填入"http://localhost",即本地Web服務(wù)器(也可以填入其它服務(wù)器)。Virtual Tools中填入要映射的虛擬目錄,在"Deployments path"填入部署目錄,這個(gè)目錄將成為IIS中指定虛擬目錄的映射目錄。
3、 Tools菜單下的"Rights by Project"管理SourceSafe中項(xiàng)目的權(quán)限,如圖所示。用戶權(quán)限共有四種,在Rights中分別對(duì)應(yīng)為:R(Read)、C(Check Out/Check In)、A(Add/Rename/Delete)、D(Destroy)。在左邊的"Project"框中選擇一個(gè)項(xiàng)目,并在右邊選擇相應(yīng)的用戶,使用下面的復(fù)選框,給用戶分配相應(yīng)的權(quán)限。Tools菜單下的"Rights Assignments for User"用于給選定用戶分配權(quán)限,操作結(jié)果與上面的命令相同。

圖十九 VSS項(xiàng)目權(quán)限管理
4、 Archive菜單下的"Archive Projects"用于將指定項(xiàng)目打包成*.ssa(SourceSafe Archive)文件,并遷移到其他主機(jī)上,使用Archive的"Restore Projects"命令,將該文件恢復(fù)到其他主機(jī)。這兩個(gè)命令用于項(xiàng)目的遷移。