VSS使用入門(VSS使用指南 VSS使用說明 VSS使用手冊 2.01版)

來源:互聯網
上載者:User

VSS(Visual SourceSafe)使用入門
第二版(2.01)
張博 2006.12.4

1 前言 2
2 概念 3
2.1 資料庫SourceSafe Database 3
2.2 伺服器和客戶機 3
2.3 項目Project 3
2.4 工作目錄Working Folder 4
2.5 簽入、簽出 4
2.6 基本工作方式 4
3 作業指導書 4
3.1 客戶機作業指導書 4
3.1.1 準備工作 4
3.1.2 擷取檔案 4
3.1.3 修改檔案 5
3.1.4 離線工作(未簽出的情況下修改) 5
3.2 管理員作業指導書 6
3.2.1 準備工作 6
3.2.2 專案管理 6
4 指南 6
4.1 安裝 6
4.1.1 VSS6.0的安裝 6
4.1.2 VSS8.0的安裝 7
4.2 資料庫管理 7
4.2.1 介紹 7
4.2.2 Visual SourceSafe 6.0 Admin程式 8
4.2.3 開啟指定的資料庫 9
4.2.4 建立新資料庫 9
4.2.5 使用者管理 10
4.2.6 使用項目許可權Project Rights 10
4.2.7 禁止自動登入 12
4.2.8 設定檔案類型 12
4.3 使用VSS瀏覽器 13
4.3.1 藉助VSS開發項目 13
4.3.2 VSS瀏覽器 14
4.3.3 設定對項目遞迴操作 15
4.3.4 修改密碼 15
4.4 項目操作 15
4.4.1 添加項目和檔案 15
4.4.2 設定項目工作路徑 16
4.4.3 取得項目最新版本 16
4.4.4 簽出項目Check Out 17
4.4.5 簽入項目Check In 17
4.4.6 撤銷簽出Undo Check Out 18
4.4.7 顯示記錄Show History 18
4.4.8 顯示差異Show Differences 20
4.4.9 設定版本標籤Label 21
4.4.10 取得曆史版本 21
4.4.11 項目屬性 21
4.5 檔案操作 22
4.5.1 取得最新版本 22
4.5.2 簽出 22
4.5.3 簽入 22
4.5.4 撤銷簽出 22
4.5.5 查看和編輯(View,Edit) 22
4.5.6 顯示檔案曆史Show History 23
4.5.7 檔案比較Show Differences 24
4.5.8 檔案屬性 25
4.6 與開發工具整合 26
4.7 已知的問題 26
4.7.1 VSS6.0的UNICODE、UTF-8的問題 26
4.7.2 InterDev開發Web應用的問題 27
4.7.3 檔案比較的問題 27
4.7.4 簽入無效的問題(與CuteFTP有關的) 27
4.8 Tip 27

1 前言
這是這個檔案的第二個版本。之所以產生第二個版本是因為第一版寫得比較早,因缺乏作文訓練而盡顯文筆之粗劣,同時內容也未能達到我所期待的目標。另外VSS新版推出,我也要與時俱進嘛!
本檔案所講述的內容來自作者本人及其他人使用VSS的經驗,絕非翻譯協助檔案。所講述的功能都是實際使用中會經常用到的,對於不常用的功能並未涉及。儘管微軟的產品總是比較容易入門(並因此招致競爭者的嫉妒和指責),然而,坦白說,這個軟體的使用並不是一目瞭然的(特別還是英文版),我為我在第一版中對此問題的不當描述再次感到羞愧難當,事實上,這是我所見過的最拙劣的微軟產品(注意,只是在微軟產品中比較)。
其實我們知道,微軟公司的大多數項目並非用VSS管理,他們使用更強大的版本控制系統,當然“更強大”的版本控制系統指的是需要支付更昂貴的費用的商業軟體,而不是什麼自由軟體。然而很多管理嚴格的公司(真正的CMM3)卻也在使用VSS進行管理,他們的VSS資料可以累積到好幾個G。這些公司並非僅僅使用VSS管理原始碼,他們用VSS管理所有受控的檔案,包括組織級檔案、項目文檔、會議記錄、評審報告等等,總之一句話,所有重要的東西和他們的曆史都可以在VSS中獲得。
很多程式員在體會了版本控制系統的好處以後開始用版本控制系統管理自己的所有檔案,從此不用擔心自己遺忘什麼或者因為偶然的失誤失去什麼重要的東西。這是一種幸福的感覺。
Visual SourceSafe 是一個原始碼控制系統,可以儲存檔案的不同版本,可以比較檔案的差別,可以控制不同的人對同一檔案的修改。就功能而言是同類產品中比較弱的,但滿足了基本的需要並且非常容易使用,因此獲得了非常廣泛的使用。
VSS目前的最高版本是8.0(也就是VS.net2005所帶的版本),上一個版本是6.0D(6.0+SP6=6.0C,VS6的SP6-不是VSS的SP6-所帶的VSS則是6.0D)。微軟公司終於開發了VSS.net,但我們仍然繼續忍受Visual Studio 98風格的介面,微軟為VSS所做的革新實在不多,不知道他們的臉皮為什麼那麼厚,居然敢把版本跳到8.0。8.0和6.0的資料庫是相容的,用戶端也可以交叉使用。
所謂VSS伺服器指的是存放VSS資料庫的電腦,用戶端是訪問VSS資料庫的電腦,而VSS資料庫是一個共用的目錄,僅此而已(因此並不存在伺服器程式)。
2 概念
2.1 資料庫SourceSafe Database
所謂資料庫就是一個目錄,裡麵包含了儲存的各個版本的檔案、配置資訊、當前的簽出狀態等,一切都在這個目錄裡面。當然,檔案資料可不是直接隱藏檔,看不懂的。
2.2 伺服器和客戶機
伺服器就是存放資料庫(就是一個目錄)的機器,客戶機就是訪問資料庫(就是訪問目錄)的機器。其實根本沒有伺服器,多個客戶之間的協作都是通過讀寫資料庫目錄的檔案完成的。
2.3 項目Project
VSS以樹形目錄的方式組織內容,每個目錄稱之為一個項目(Project,這是一個重要概念),每個子目錄也同樣是一個項目,如果使用了遞迴選項(在菜單Tools下的Options裡面)則對一個項目的操作會包含下面的所有子項目,對一個項目的設定會影響子項目,子項目的設定會覆蓋繼承自父項目的設定(但具體每個操作的效果要看具體的操作,並非沒有特例)。簡單地說,項目就是虛擬目錄(並且通過工作目錄和外部實際目錄對應)。
2.4 工作目錄Working Folder
工作目錄是項目或檔案操作時的預設路徑。一般來說,我們總是用一個本地目錄對應VSS的一個項目,簽入、簽出、修改都是在這個工作目錄下進行。大致可以說,工作目錄下放的就是VSS的項目的私人副本,我們在這個副本上工作。
注意,多數操作都允許改變操作位置,所以說工作目錄只是個“預設”目錄。
2.5 簽入、簽出
簽出獲得檔案修改權,簽入將修改後的檔案放回VSS庫並放棄修改權。必須先簽出才能修改檔案。
2.6 基本工作方式
VSS裡面的東西是正式的東西,每個人的本地版本都只是臨時的。每個人先擷取一套唯讀版本,然後簽出要修改的檔案,修改完畢再簽入VSS,這樣新的修改就算生效,別人簽出或取得最新版的時候就可以看到剛才的修改。
一般我們禁止多人同時簽出。如果允許多人同時簽出則簽入時後簽入者會被告知版本衝突,此時需要先合并差異然後才能簽入。
3 作業指導書
3.1 客戶機作業指導書
3.1.1 準備工作
順序 步驟 相關章節
1 安裝客戶機軟體 4.1
2 向管理員擷取VSS庫位置、帳號
3 開啟VSS庫,修改密碼 4.2.3,4.3
4 設定工作路徑 4.4.2

3.1.2 擷取檔案
順序 步驟 相關章節
1 確認檔案不是自己簽出的
2 在項目或檔案上使用右鍵菜單“Get Latest Version”擷取最新版本 4.4.3,4.5.1

3.1.3 修改檔案
順序 步驟 相關章節
1 確認檔案沒有被人簽出
2 在項目或檔案上使用右鍵菜單“Check Out”簽出 4.4.4,4.5.2
3 修改檔案
4 比較檔案差異,檢查修改的內容 4.4.8,4.5.7
5 在項目或檔案上使用右鍵菜單“Check In”簽入項目或檔案,或者在項目比較介面用右鍵菜單簽入,如果需要繼續編輯,可以選擇“保持簽出”。簽入時要填寫說明。 4.4.5,4.4.8,4.5.3
6 比較檔案差異,確認修改已入庫 4.4.8,4.5.7

3.1.4 離線工作(未簽出的情況下修改)
如果暫時無法串連VSS庫,或者檔案已被他人簽出,請遵守本作業指導。注意,對每個檔案單獨操作。
順序 步驟 相關章節
1 將檔案的唯讀屬性去掉
2 修改檔案
3 備份檔案到其它位置
4 確認檔案沒有被人簽出(別人已經簽入)
5 在檔案上使用右鍵菜單“Check Out”簽出,簽出時選擇保留本地版本,如果誤操作,請用步驟3所作的備份恢複。 4.5.2
6 比較檔案差異,手工合并他人的修改 4.5.7
7 在檔案上使用右鍵菜單“Check In”簽入檔案,簽入時要填寫說明。 4.5.3
8 比較檔案差異,確認修改已入庫 4.4.8,4.5.7

3.2 管理員作業指導書
3.2.1 準備工作
順序 步驟 相關章節
1 購買正版VSS軟體
2 以功能最全方式安裝VSS 4.1
3 建立存放VSS庫的目錄
4 建立新資料庫 4.2.4
5 設定資料庫 4.2.6,4.2.7
6 在作業系統為VSS庫建立使用者組
7 將VSS庫目錄完全共用給使用者組(共用屬性)
8 將VSS庫目錄的修改許可權分配給使用者組(安全屬性)
9 將用戶端安裝程式共用(完整安裝程式或6.0版安裝以後的客戶安裝目錄)

3.2.2 專案管理
順序 步驟 相關章節
1 建立新項目 4.4.1
2 為每個使用者建立新使用者 4.2.5
3 為每個使用者分配許可權 4.2.6
4 設定二進位檔案類型 4.2.8
雜項 發布版本 4.4.9,4.4.7
雜項 查看、恢複刪除的檔案 4.4.11
雜項 定期備份VSS庫目錄

4 指南
4.1 安裝
4.1.1 VSS6.0的安裝
微軟產品的安裝一向簡單,只有少數選項需要說明一下。安裝類型包括“SHARED DATABASE SERVER”、“CUSTOM”和“STAND-ALONE”三種,第一種共用資料庫伺服器是完整安裝,第二種定製安裝的預設值也是完整安裝,因為這個軟體本來就很小,所以選前兩種就行了,第三種單機安裝就是單機版。
此軟體的安裝與標準的Windows程式略有不同,安裝過程中檢查已經安裝的舊產品的方式是搜尋整個檔案系統,因此可能將同一電腦上的其他動作系統上安裝的VSS檢查出來,此時不必理睬安裝程式的警告,將安裝位置改到合適的地方繼續安裝就行了。安裝過程可能還會提示資料庫版本的問題,新的V6資料庫V5軟體不能訪問,一般來說總是應該使用更新版本的資料庫,再說升級VSS用戶端軟體是很容易的。
安裝完成以後得到一個VSS目錄,這個目錄包含了一切:程式檔案、設定檔、預設資料庫、用於網路安裝的用戶端安裝程式。如果這個預設資料庫需要在網路上共用(一般總是需要的)則將這個VSS目錄共用,並給相關人員設定完全訪問的許可權(即使這個使用者只是VSS資料庫的唯讀使用者)。注意,目錄的安全屬性與共用許可權不同,“Program Files”目錄下子目錄和檔案的存取權限可能是受限制的,所有VSS使用者在VSS目錄的安全屬性也必須是完全訪問的。
這樣修改安全屬性:在VSS目錄上點右鍵,選擇“屬性”,切換到“安全”屬性頁面,設定許可權,然後點下面的“進階”按鈕,選中進階裡面最下面的“重設所有子物件的許可權並允許傳播可繼承許可權”選擇框,點“確定”退出進階,再點確定使修改生效。
安全提示:因為VSS資料庫要在網路上完全共用,所以網路要安全,如果有刪除所有檔案的病毒就會出大麻煩,一般的只感染特定檔案類型的病毒危害相對小一些,無論如何,安全最重要。
4.1.2 VSS8.0的安裝
我沒有見到獨立的版本,整合在VS2005的版本沒什麼安裝選項。
4.2 資料庫管理
4.2.1 介紹
VSS的資料庫是一個目錄,目錄下包含若干個檔案和目錄,“srcsafe.ini”是關鍵檔案,此檔案用來標識一個VSS資料庫。VSS用戶端開啟一個資料庫的方式就是找到這個檔案,所以共用資料庫的方式就是簡單地共用包含這個檔案的目錄。另外一個檔案“users.txt”記錄使用者資訊。還有三個目錄:“data”、“temp”和“users”,分別存放資料庫的內容、臨時的資訊和使用者的相關資料。安裝VSS軟體的目錄除了上面所說的VSS資料庫的檔案外還包含幾個目錄存放VSS程式,根據安裝類型不同可能還包括網路用戶端安裝程式。
VSS不存在服務程式,一切都通過檔案操作進行。最簡單的備份方式、也是最可靠、絕不會出錯的方式就是備份整個目錄。另一個方式是定期取得資料庫裡所有檔案的最新版本,只對最新版本進行備份。為了避免儲存大量不必要的版本,可以對每個項目建立一個VSS資料庫,這個資料庫儲存所有的變更(包括開發過程中的大量嘗試性的變更),而公司級的受控庫只儲存正規的版本。
安裝VSS軟體的時候可能已經安裝了一個資料庫,那麼這個資料庫就是預設的資料庫,資料庫都用位置命名,目錄名字或者網路位置的名字(名字其實是無關緊要的,資料庫的實際位置才是關鍵)。
VSS軟體在程式菜單中包含四個程式,其中兩個——分析並修複資料庫、分析資料庫——都是很少用的,另外兩個VSS Admin程式(Visual SourceSafe 6.0 Admin)和VSS 瀏覽器(Microsoft Visual SourceSafe 6.0)是最常用的。另外還有一些其他程式並未出現在程式菜單,需要閱讀協助檔案挖掘,VSS支援命令列方式,有編程介面(不然開發工具是如何與VSS整合的)。
VSS8.0特性:程式組不再有分析並修複資料庫、分析資料庫這兩個程式,當需要的時候VSS Admin程式會提供使用這兩個程式的方法。
每個資料庫初始擁有兩個使用者:“Admin”和“Guest”,都擁有全部許可權並且沒有口令(因為Admin沒有口令是不安全的,所以初次開啟Admin程式會得到一個安全警告)。Admin使用者是超級使用者並且無法被刪除也不能修改許可權。Admin口令是最重要的,因為預設情況下VSS程式會用上一次的使用者名稱和口令登入VSS,所以一般使用者忘記口令是很常見的,這時候就需要Admin使用者使用Admin程式重新設定使用者的口令了(建議改變預設設定,禁止自動登入)。
4.2.2 Visual SourceSafe 6.0 Admin程式
開啟Admin程式要求輸入口令,但並不總是這樣,VSS會儲存上次使用的資料庫和使用者名稱、口令,這樣下一次使用VSS就不需要輸入口令,進入VSS的Admin或瀏覽器程式以後可以再改變資料庫。Admin程式的介面如下:
 
基本上這是個相當簡單的介面,功能都通過菜單實現。介面的主要部分用來顯示當前的使用者列表、許可權和登入狀態,不支援右鍵,僅支援雙擊,雙擊可以修改使用者的名字和許可權。許可權很簡單,預設為“Read-Write”,可以修改為“Read-Only”,顯然這不會使我們滿足,我們需要的是“Project Rights”,對每個目錄給每個使用者特定的許可權,這些許可權包括唯讀、寫入、添加刪除重新命名、銷毀,除了不能控制到檔案,這基本上滿足了我們的要求。具體操作後面會介紹,相當簡單。
4.2.3 開啟指定的資料庫
當前開啟的資料庫也許並不是需要的,菜單“Users”下的第一個菜單“Open SourceSafe Database”用來開啟一個不同的資料庫,開啟新資料庫會關閉原來的資料庫。
 

圖中的“Open”按鈕不可用是因為temp資料庫正是現在開啟的,選擇一個不同的資料庫,可以用“Open”按鈕開啟它。“Browse”按鈕用來在系統中尋找一個資料庫,尋找的目標就是srcsafe.ini檔案,尋找的位置範圍就是一般Windows尋找檔案的範圍,從案頭開始,包括了“我的電腦”和“網路位置”。“Remove”用來從列表中刪除一個資料庫資訊,並非刪除資料庫。下面的“Username”不可編輯是因為Admin程式只允許Admin使用者使用,如果是在VSS瀏覽器下執行這個功能則可以編輯。
4.2.4 建立新資料庫
很多時候我們並不喜歡預設的資料庫,可能是因為它的安裝位置太深了。我們也可能為了不同的目的建立幾個不同的資料庫。建立資料庫使用菜單“Tools”下的“Create Database”,僅僅需要選擇一個存放資料庫的目錄即可(不會在這個目錄下建立“VSS”目錄,所有檔案和目錄直接放在選擇的目錄下,因此這個目錄應該是建立的專門用來放VSS資料庫的)。新建立的資料庫的目錄裡面只有資料庫,不包含VSS程式。
VSS8.0會提出一些問題,但這些問題都是可以在後面更改的。
4.2.5 使用者管理
使用者管理無非是添加、刪除、編輯、修改口令,都在“Users”菜單下,一目瞭然。所有能設定的不過是使用者名稱、口令和是否只有唯讀許可權而已。最重要的功能是“Project Rights”,下面介紹。
4.2.6 使用項目許可權Project Rights
項目許可權是針對每個項目的使用者權力。使用項目許可權首先要啟用項目許可權,在菜單“Tools”下的“Options”裡面的“Project Rights”選項卡上,選中最上面的“Enable Rights and Assignments Commands”選擇框即可。
 
一般新使用者的預設許可權建議只給一個“Read”就行了,如果這個庫包含很多項目(企業意義的)那麼就連“Read”也不要給。然後確定。這時“Tools”下面原來不可以使用的菜單全部可以使用了。
現在可以給項目設定許可權了。開啟菜單“Tools”下面的“Project Rights”,顯示如下視窗:
 
在左邊選擇項目,右邊上面選擇一個使用者,右邊下面設定使用者的許可權,如果只有“Read”許可權可以選擇的話說明這個使用者是“Read-Only”,在編輯使用者那裡去掉唯讀就可以了。因為可以對每一級每個目錄單獨設定許可權,因此很容易疏忽。設定完許可權後最好再逐級檢查一遍看有沒有發生錯誤,有可能發生這樣的情形:試圖通過對層級較高的項目的許可權的禁止阻止使用者訪問整個項目,然而對子項目使用者有單獨設定的訪問許可,因此對子項目實際上並未禁止訪問。
四種存取權限含義如下:
“Read”,讀
“Check Out/Check In”,簽入/簽出,也就是寫
“Add/Rename/Delete”,添加/重新命名/刪除,刪除的檔案仍然儲存在資料庫中,可以被恢複,直到被銷毀
“Destory”,銷毀,銷毀的檔案就再也找不回來了,這個是會造成無法挽回的後果的權力,通常不應該賦予任何一個一般使用者,僅保留給管理員(Admin,不能為管理員設定許可權,它永遠可以做任何事)。
這四種權力逐個包含,選中下面一個上面所有的會被自動選中,取消上面一個下面所有都回被自動取消。
如果一個使用者在當前選擇的項目上什麼權力都沒有就不會顯示在使用者列表中,必須用“Add User”添加進來,“Delete User”則刪除使用者在當前項目的所有權力並把使用者從列表中清除。
菜單“Tools”下的“Rights Assignments for User”則提供了對單一使用者的項目權力指派。功能相同,視圖不同。
4.2.7 禁止自動登入
預設情況下使用者可以使用登入電腦或網路的使用者名稱自動登入,這種方式存在安全隱患,可以通過設定要求每次登入都必須提供使用者名稱和口令。
菜單“Tools”下的“Options”裡面的“General”選項卡上取消“Use network name for automatic user log in”即可禁止自動登入。
 
另外,可以將使用者的操作記錄在記錄檔裡,在文字“Log all actions in joural file:”下的編輯框輸入帶路徑檔案名稱即可,為了安全記錄檔應該放在只有管理員能夠訪問的目錄裡。(注意,該功能用於網際網路共用的庫時必須是一個網路路徑,而且必須可寫)
4.2.8 設定檔案類型
菜單“Tools”下的“Options”裡面的“File Types”選項卡可以設定檔案類型,一般應對“Binary Files”補充其它的二進位檔案類型,比如“*.pdf”。如果沒有設定可能會導致VSS用文本方式儲存,結果儲存的檔案內容錯誤。
 
4.3 使用VSS瀏覽器
4.3.1 藉助VSS開發項目
在程式菜單VSS的瀏覽器叫做“Microsoft Visual SourceSafe 6.0”,用來操作VSS。很多開發工具可以直接操作VSS,因此不需要使用這個工具。另外有些開發工具不支援和VSS瀏覽器混用(比如MS Visual Studio 裡面的InterDev),如果混用,開發工具可能不能正確地處理檔案,因此如果項目在使用開發工具整合的VSS功能,建議不要跳過開發工具直接使用VSS瀏覽器。
如果項目採用VSS作為版本管理,那麼被認可的代碼(以及其它文檔)就應當是VSS資料庫裡面的最新版本(而不是某個人的版本)。每天早上,每個人都從VSS中取得(叫做Get)最新版本放在自己的工作目錄下(這保證每個人用的都是最新的,並同時在每個人的電腦上做了備份),然後獲得特定檔案的修改權(叫做Check Out,簽出),然後開始編輯,編輯完成之後放回並放棄修改權(叫做Check In,簽入),簽入以後其他人再去取得新版本的時候就會取得這個簽入的版本了。
VSS可以記錄每個變化,每個檔案的每次簽入都產生一個新版本,可以單獨取得舊版本。VSS可以給整個項目貼上版本標籤(Label Version),比如“beta 2”,這個版本是使用者定義的版本(與VSS自身對每次簽入的自動編號不同),可以針對版本標籤取得版本,一個標籤標識的是做標籤之前簽入的最新版本。
VSS可以方便地比較目錄或檔案,可以是VSS裡的不同版本或不同項目互相比較,也可以是VSS和VSS之外的目錄或檔案比較,也可以是與VSS無關的外部檔案或目錄的相互比較,比較的結果包括相同的、不同的、增加的、刪除的,對於文字檔可以直接可視化地顯示差異。
除非Admin使用者專門將資料庫配置為允許多人簽出,否則不會有兩個人同時修改一個檔案的情況發生(如果多人簽出,簽入時會要求首先合并,確認合并完成才能簽入)。儘管提供了多人簽出、分支開發、版本合并的功能,然而實際的合併作業仍然完全依靠腦力進行,因為工具只能指出兩個版本有這些差異,但是這些差異如何合并卻完全依賴腦力判斷,絕非簡單地合并為一個檔案那麼容易。因此還是儘可能地避免多人簽出或分支開發。
4.3.2 VSS瀏覽器
VSS瀏覽器擁有如下介面,工具列和右鍵菜單很完善,使用起來非常方便。
 
介面下邊的狀態列用來輸出一些沒用的資訊,不必管它。左邊是項目列表,看起來就是一個分類樹,根用“$/”表示,可以手工添加項目,然後往項目裡面添加檔案,也可以一次把一個目錄(可以遞迴包含子目錄)添加進來成為一個項目。右邊是項目下的檔案,不包括子項目,顯示的資訊包括簽出的使用者的名字和最後一個版本的時間以及簽出位置。右邊上面兩個文本是當前的項目名稱和項目的工作路徑(工作路徑是項目預設的本地目錄)
對項目可做的操作主要包括:建立項目、刪除項目、添加項目或檔案、設定項目工作路徑、設定版本標籤、取得最新(最後)版本、簽出、簽入、撤銷簽出、查看曆史、比較差異、查看屬性(沒什麼重要屬性,這個功能的關鍵價值是這裡可以恢複刪除的檔案)。
對檔案可做的操作主要包括:查看、編輯、簽出、簽入、撤銷簽出、取得最新(最後)版本、查看曆史、比較差異、刪除、重新命名、查看屬性(檔案類型很重要,二進位檔案無法比較細節,只能比較相同或不同,文字檔則可以按行比較,但有時VSS不能正確識別檔案類型,需要手工修改)。
4.3.3 設定對項目遞迴操作
菜單“Tools”下的“Options”可以設定一些選項,唯一值得修改的就是“General”頁面的“Act on project recursively”選項,選中該選項可以在任何對項目操作的時候都自動選擇遞迴,非常方便。
4.3.4 修改密碼
菜單“Tools”下的“Change Password”修改密碼,請保持密碼安全。
4.4 項目操作
4.4.1 添加項目和檔案
VSS6.0版:選中項目樹的節點,然後點右鍵選擇“Create Project”或者工具列上的第一個(也許你的版本不是第一個)按鈕“Create Project”或者菜單“File”下的“Create Project”可以在選中的節點下建立一個新項目(看起來就是建立一個子目錄,事實上也沒什麼差別),需要輸入的是項目的名字,支援中文,有興趣的話順便把注釋也填上,省得以後忘了這個項目是幹什麼的。
很多時候可以通過添加一個目錄以及目錄下的所有內容來建立項目。選擇“Add Files”命令可以添加項目或檔案。這個命令的名字實際上並不準確,它既可以添加檔案又可以添加項目。
 
選擇左邊的檔案然後點“Add”按鈕會把這個檔案添加到當前項目,選擇右邊的目錄點“Add”按鈕則會把目錄添加到項目(也就是成為一個子項目,存在一個選項讓你把整個目錄全部添加進來)。有時候你會注意到左邊不會顯示任何檔案或者只顯示了一小部分檔案,這是因為同名檔案已經在項目中存在,不可能添加同名檔案進來的緣故。如果選擇的是項目,彈出的“Add”對話方塊不僅提供輸入注釋的地方,還在下面提供了一個選項:遞迴 “Recursive”,這個選項在很多地方都有,用起來很方便。選擇這個選項就不只是把目前的目錄和下面的檔案全部添加進來,而且把子目錄及子目錄下的內容也全部添加進來。曾經有人向作者抱怨VSS不好用,每個子目錄都需要一個一個建立,很麻煩,嘿嘿,他只是英文不太好又不願意查字典而已。
VSS8.0版:採用了作業系統的檔案選擇介面,只能選擇檔案,也不能處理子目錄。替代辦法是先比較目錄,然後將增加的目錄和檔案添加進來,在目錄比較結果介面既可以處理子目錄又可以同時添加不同位置的目錄和檔案,非常方便,這也適用於6.0版。
4.4.2 設定項目工作路徑
為項目設定一個對應的本地目錄,用來取得版本進行編輯。只需要為項目(工程意義的項目,而不是VSS的項目)的總入口的VSS項目設定一個工作目錄既可,獲得版本時下面的所有VSS子項目自動作為一個子目錄得到。如果子項目設定了獨立的工作路徑,那麼這個工作路徑僅當對在這個子項目上執行操作的時候才會有用。
4.4.3 取得項目最新版本
這個命令通常從項目的右鍵菜單獲得,名為“Get Last Version”。
 
目標位置預設是項目的工作路徑,但可以更改。“Recursive”遞迴,若選中可以得到整個項目樹,否則只得到項目下的檔案而不包含子項目。“Make writeable”,預設取得的檔案是唯讀(Check Out才是獲得可編輯的版本的合理方式),若選中則不設定唯讀屬性。
4.4.4 簽出項目Check Out
一次性簽出項目下的所有檔案,適合一個項目(子項目)下所有檔案都歸一個開發人員負責的情況。
 
若選擇遞迴則連子目錄下的東西一起簽出。“Don`t get local copy”,不取得本地版本,這樣不會覆蓋本地已有的版本(也許本地版本包含著你一個通宵的勤苦工作,當然不能隨便覆蓋)。
簽出的檔案沒有唯讀屬性,可以修改。對於不允許多人簽出的情況下,過程上應該首先簽出才有權修改檔案,簽入以後修改才會被其他人看到。如果檔案已經被簽出,首先應該等待或者去跟簽出者協商,然後才能考慮在沒有簽出的情況下修改本地檔案,以後簽出的時候要很小心,不要覆蓋了本地版本,而且必須進行手工的版本合并。任何人都應該謹慎地處理這種情形,否則項目版本將仍然陷入混亂。
4.4.5 簽入項目Check In
一次性簽入一批檔案。不簽入別人看不到你的修改。
 
有遞迴選項,可以連子目錄一起簽入。“Keep checked out”,保持簽出狀態,在頻繁修改代碼時經常會這樣做,儲存一個中間版本然後立即繼續修改。“Remove local copy”,刪除本地版本,這個主意不好,萬一VSS伺服器硬碟壞了不就完蛋了,不過你也許有別的方面的考慮。
4.4.6 撤銷簽出Undo Check Out
如果後悔了,不想修改檔案,可以撤銷簽出。
 
有遞迴選項。還要選擇本地版本的處理方式,可以用VSS裡面的版本覆蓋,也可以留著不管它,還可以刪除,要仔細斟酌。
Replase 用VSS版本覆蓋本地版本,未簽入的改動將丟失
Leave 保持本地版本不動,以後簽出的時候仍然要考慮保持本地版本還是使用VSS版本
Delete 刪除本地版本,未簽入的改動將丟失

4.4.7 顯示記錄Show History
查看項目的所有曆史,包括增加檔案、刪除檔案、簽入檔案(檔案有更改)。
 
可選項包括遞迴(包括子目錄的曆史)、包括檔案的曆史、包括版本標籤、只包含標籤(不顯示檔案曆史)、從什麼時候開始、到什麼時候(時間格式大概按照作業系統來的,至少YYYY-MM-DD是合法的時間格式)、哪個使用者。預設沒有遞迴選項,多數時候需要加上這個選項,其餘選項不常用。顯示的記錄如所示:
 
按照時間順序列出了所有曆史,可以注意到檔案file1.cpp在“Added”之後有兩次簽入,這兩次簽入之間有一個Label“Labeled‘v1’”,Label對應項目下的所有檔案,除非子項目用一個同名的Label覆蓋(這種情形應當避免)。這個視窗提供了很重要的專案管理功能。
“View”,查看選中的檔案的內容,就是查看以前版本的內容。
“Details”,查看記錄的詳細資料,有一些內容是可以編輯的。清除Label的內容將導致Label被刪除,沒有獨立的刪除Label命令,這就是刪除Label的方法。
“Get”,取得選中的檔案的曆史版本或者取得選中的Label版本(label之前的最新版),會提示取得版本放到哪裡去,對項目也有遞迴選項。能夠取得任何時候的曆史版本,這個功能才是版本控制系統存在的價值。
“Check Out”,簽出檔案或項目。
“Share”,共用。兩個項目可以共用一個檔案,兩邊看起來各自有一份,但其實是同一份,一次只能由一邊簽出。通常用菜單“SourceSafe”下的命令執行,共用以後可以斷開搞分支開發。
“Report”,報告曆史,可以報告到印表機、剪貼簿或者檔案,可以包含檔案曆史和版本差異。
4.4.8 顯示差異Show Differences
這也是關鍵功能。可以比較兩個項目或目錄的差異,包括一邊有而另一邊沒有的檔案和內容不同的檔案。
 
預設情況下比較的是項目和項目的工作目錄的差異,以“$”開頭的是VSS項目,但兩個都可以用“Browse”改變,所以實際上可以比較任何VSS和目錄的差異。下面四個選項全選是最全面的,顯示所有的相同和不同,一般我們取消第三個選項,不顯示相同的檔案。遞迴選項選中可以包含子項目或子目錄。是比較結果:
 
存在下列差異:
demo.cpp在項目中存在,但在工作目錄不存在,藍色顯示。
file1.cpp有差異,表徵圖到有紅色標記。
file2.txt沒有差異。
file1.cpp.bak和“建立 文字文件.txt”項目裡面沒有,綠色顯示。
對於這些差異可以用右鍵菜單分別處理(注意滑鼠點在哪邊的檔案上可能是不同的,這裡進行添加、刪除、簽入的最佳場所)。此介面的功能可以利用Shift和Ctrl鍵進行多選,目錄和檔案可以混選,然後可以一次執行添加或刪除等操作。
對於項目裡面有但工作目錄沒有的,可以從項目裡刪除,也可以取得最新版本或簽出。
對於項目裡面沒有的,添加到項目裡面,或者從目錄裡刪掉(真的刪除了檔案,而不是僅僅從列表刪除)。
對於有差異的,可以查看差異(產生一個檔案的差異比較,這是很常用的功能)、簽入或撤銷簽出。
對於沒有差異的,可以刪除或簽出。
4.4.9 設定版本標籤Label
給項目做一個版本號碼,這個標籤代表的版本是做這個標籤的時間之前的最新版本。一般在管理上要求做版本標籤(有時稱之為封版)之前所有檔案都已簽入(VSS並不要求這樣),以後就可以取得標籤版本。如果標籤搞錯了,可以在項目歷史裡面查看標籤細節,然後將標籤名稱修改,如果要撤銷標籤就把標籤名稱清空。
4.4.10 取得曆史版本
因為這是版本控制的標誌功能之一,所以重複一次。
取得項目曆史版本,在項目上查看曆史,找到合適的Label,選擇“Get”命令。
取得檔案曆史版本,在項目或檔案上查看曆史,找到合適的版本,選擇“Get”命令。
4.4.11 項目屬性
可以在此查看刪除的檔案。
4.5 檔案操作
4.5.1 取得最新版本
Get Last Version,VSS資料庫裡的最後一個版本會放到指定的目錄下,預設是項目的工作目錄。
4.5.2 簽出
Check Out,然後就可以修改。
4.5.3 簽入
Check In,然後別人取得最新版本就可以看到你的修改。
4.5.4 撤銷簽出
Undo Check Out,放棄修改權。對本地檔案有三種處理方式:用VSS版本覆蓋、保留、刪除,請謹慎選擇。
Replase 用VSS版本覆蓋本地版本,未簽入的改動將丟失
Leave 保持本地版本不動,以後簽出的時候仍然要考慮保持本地版本還是使用VSS版本
Delete 刪除本地版本,未簽入的改動將丟失
4.5.5 查看和編輯(View,Edit)
VSS提供整合的查看、編輯能力(當然通常我們是在專門的開發環境中工作的)。這兩個功能有同樣的介面,只是預設操作不同,View的預設操作是查看,Edit的預設操作是簽出並編輯。
 
不管從哪個命令進入都可以改變“Do you want to”選項進入另外一個命令。查看或編輯的工具可以是VSS內建程式或者作業系統註冊的程式(如果沒有註冊的程式則該項不可用)或者手工選擇一個不同的程式。
4.5.6 顯示檔案曆史Show History
比項目的顯示曆史少一點選項,但顯示結果有不同的命令可用。
 
這裡每個檔案版本都獲得了一個版本號碼“Version”,是從1開始的自然數序號,每次簽入都產生一個新版本(但沒有修改的簽入不產生新版本)。注意到有一個版本標籤“v1”是來自項目的版本標籤。
這裡多出幾個不同的命令可用:
“Diff”,比較差異,預設跟工作目錄的版本比較,但選中兩個不同的版本(用Ctrl鍵)也可以進行兩個曆史版本之間的比較,比較的結果是可視化的,非常直觀(僅限於文字檔,對二進位檔案只能報告相同或不同)。
“Pin”,訂住,被訂住的版本成為最新版,別人取最新版本只能取得被訂住的版本,而不影響簽出者修改檔案、簽入、簽出。只能訂住還沒有被簽出的檔案。訂住可以避免其他開發人員得到一個停用中間版本。
“Rallback”,復原,選中的版本之後的版本都會被刪除,選中的版本成為最新版。出於對曆史的尊重,先簽出,然後取得曆史版本覆蓋到工作目錄,然後簽入,這也許是更好的復原方式,畢竟一個糟糕的版本也是一個版本。
4.5.7 檔案比較Show Differences
重要功能。可以直接從右鍵菜單進入,也可以從檔案曆史結果視窗進入,還可以從項目差異結果進入。
 
比較的兩個檔案都可以改變到VSS資料庫裡的一個檔案或者一個普通檔案,VSS資料庫的檔案還可以帶上VSS的版本號碼。下面的選項一般不用修改,格式如果選擇為SourceSafe或Unix,就會使用原始方式顯示結果,很不爽,還是Visual比較好。結果如:
 
原來的檔案第三行被刪除,檔案最後又增加幾行,一目瞭然,點工具列上的向上向下箭頭可以查看下一個上一個差異。
4.5.8 檔案屬性
檔案屬性首要關心就是檔案類型,Text檔案可以按行儲存,按行比較,Binary檔案則只能按照原始格式儲存,每個版本都是一個完整檔案,佔用很大空間,而且只能比較出相同或不同。可以在檔案屬性視窗改變這個屬性。如果某個檔案VSS不能正確儲存,就只能改為二進位格式。有時候VSS自動判斷出錯,也要逐個修改檔案屬性。
VSS8.0特性:檔案屬性增加了幾種Unicode格式,對很多人這是企盼已久的。
 
其他幾項暫時沒什麼可說的,需要用的時候自然就會了。
4.6 與開發工具整合
很多開發工具都整合了VSS支援,此時最好只用開發工作操作。開發工具對VSS的操作本質上與VSS瀏覽器是一樣的,不過是簽入簽出而已。只是一定不要忘了及時簽入,否則你的工作是不能被別人看到的。
4.7 已知的問題
4.7.1 VSS6.0的UNICODE、UTF-8的問題
ANSI格式沒有問題,UTF-16、UTF-8有問題,不能正確識別,儲存的檔案會錯亂。微軟承認麻煩很大,詳細的說明MSDN裡面可以查到,下面的斜體文字引自MSDN文檔“ms-help://MS.VSCC.2003/MS.MSDNQTR.2003FEB.2052/vsintro7/html/vxtsksavingfileswithencoding.htm”(升級到8.0可解決此問題)。
為了方便代碼在特定語言和特定平台上進行顯示,可將檔案與特定字元編碼建立關聯。
如果使用 Visual SourceSafe 以 ANSI、UTF8 或 Unicode 格式隱藏檔,請注意它們各自的以下限制。
• ANSI 檔案只允許使用當前字碼頁中支援的字元,這會限制國際使用。
• Unicode 檔案無法使用共用簽出、差異檢查或合并功能,原因是此類檔案是作為二進位檔案處理的。可在國際檔案中使用此格式。
• UTF8 檔案在 Visual SourceSafe 中不能安全地工作,因為在簽入、簽出、差異檢查和合并過程中該檔案會被更改,而這會導致 UTF8 檔案編輯器出現問題。

4.7.2 InterDev開發Web應用的問題
不可繞過InterDev直接使用VSS瀏覽器簽入簽出,會出人命的。InterDev實際上藉助IIS訪問VSS,所以會有這個問題。很幸運,vs.net裡面已經沒有InterDev了。
4.7.3 檔案比較的問題
有時候會報告檔案有差異但卻看不出差別,也許是分行符號的差異,也許不是,如果執行簽入會發現並沒有簽入(這意味著簽入程式並不認為檔案有差別)。如果是6.0C,這種情況會非常多,6.0D則好很多,基本上不會出現。因為是C版大量使用所以特別提到這個問題。順便說一下,C版和D版可以混用,沒發現什麼問題,跟8.0也可以混用。
4.7.4 簽入無效的問題(與CuteFTP有關的)
有時候看起來簽入成功但實際上並未簽入。如果檔案是用CuteFTP下載到本地的,那麼可能是因為CuteFTP顯示FTP檔案的視窗需要重新整理。推測可能是CutFTP下載檔案時使用舊的檔案資訊,VSS簽入時發現檔案是舊的就認為不是新版本不需要簽入。
4.8 Tip
1 有時會出現某個檔案無權 GET 的問題,重起 SERVER 端機器即可解決
2 有一次,不知因何原因(可能是病毒),Sourcesafe 的資料庫存取權限變了,需要在 Windows 頁面重新分配所有權
3 建議經常做 SourceSafe 備份,以便檔案丟失時(Sourcesafe 大了會丟失),可以挽回,備份採用 WINDOWS 的自動備份功能即可(管理工具中有一個備份工具,排定一個計劃,即可自動備份)
4 瞭解 sourcesafe 目錄結構的方法如下:將所有內容 GET 出來, 用 TREE>*.txt(DOS命令),即可將該目錄結構儲存到一個文字檔中
5 訪問網路VSS資料庫時如果在開啟VSS瀏覽器時出現“Invalid handle”提示常見原因是網際網路共用有口令無法自動連接,在網路位置裡面開啟這個共用位置即可。
 

第一版結語

我寫這下這些東西,希望對別人能有一點點協助,因為我也總是從別人那裡獲得協助。

感謝karencao向我提供的大量的協助,這方面她是我的老師,有一些經驗直接來自她那裡。感謝在千鄉萬才工作的八個月,讓我感受真正的先進管理方式。不是所有的企業都可以讓離去的員工懷念。千鄉夢散。。。。。。
感謝普信的jasmine、Samantha等人提供的建議,他們都很熱心,他們的熱心讓我感覺到做這一切的價值。

感謝小王子,沒有他的鼓勵,我會永遠是個空想家而不會開始實幹。他是我最好的朋友。

……
狐狸說。“喏,這就是我的秘密。很簡單:只有用心才能看得清。實質性的東西,用眼睛是看不見的。”
……
“正因為你為你的玫瑰花費了時間,這才使你的玫瑰變得如此重要。”
……
“人們已經忘記了這個道理,”狐狸說,“可是,你不應該忘記它。你現在要對你馴服過的一切負責到底。你要對你的玫瑰負責…”
……
 

第二版結語
                                                                       

  唯有瞭解

  我們才關心

  唯有關心

  我們才會採取行動

  唯有行動

  生命才會有希望
 

Don`t call me Snoopy !
I`m Charlie Brown !

本文來自CSDN部落格,轉載請標明出處:http://blog.csdn.net/zbplusplus/archive/2007/06/03/1636262.aspx

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.