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 項目屬性
可以在此查看刪除的檔案。