1、?多人同時簽出一個文件(Check Out Multiple Files)*
缺省狀態下,一個文件只允許一個人簽出,管理員可以通過修改配置,允許多人同時簽出。此時,VSS將跟蹤所有簽出該文件的用戶。每當用戶簽入時,VSS都將和當前存于數據庫內的最新版本進行比較,若用戶修改的是同一文件的不同處,VSS將進行簡單的合并(Merge),否則提示用戶,并且不允許簽入。用戶可以通過VSS提供的Visual Merge工具,比較存放于VSS數據庫中的文件和本地文件的異同,手工修改本地文件,直到認為已經可以簽入時,方才執行最終簽入操作。(參見合并)
2、?合并(Merge)*
在VSS中,合并可能發生在3種場合下:使用Multiple Checkout的工作方式;合并原先已經Branch了的文件;獲取(Get)文件。
Multiple Checkout:若多個用戶同時簽出一個文件,第一個用戶只要簡單的簽入就可以了。后續用戶也可以簽入,但他們的更改將需要和其他所有用戶的更改合并,VSS將得到完整的更改內容(參見多人同時簽出一個文件)。
Branch:當被Branch的文件合并到其中一個分支時,VSS將會把在另一個分支上所做的改動合并到該分支上(參見對文件和工程的Branch/Share操作)。
Merge on Get:在Multiple Checkout工作方式下,當使用Get Latest Version操作時可能引發合并操作,此時保存在VSS數據庫中的內容將合并到本地文件。但如果某個文件是排他性簽出的,則不會引發合并操作(參見排他性簽出)。
在完成一個合并之后,VSS遵循如下規則:
如果仍有沖突,VSS維持文件的簽出狀態,為了使文件能順利簽入,你必須排除這些沖突。
如果你使用Merge Branches命令,將一個文件合并到一個工程中,而該工程中的對應文件已被簽出,該文件將繼續保持簽出狀態(參見對文件和工程的Branch/Share操作)。
在任何其他時候,VSS將會提示你,或者在合并后自動簽入,或者保持文件的簽出狀態以使你在更新VSS數據庫中內容之前再核查一邊。
缺省情況下,當發生沖突時,VSS將啟用其Visual Merge工具。
在默認情況下(VSS 6.0)
VSS使用過程中要遵循的是lock-modify-unlock流程而不是 copy-modify-merge流程(比如CVS),即開發人員首先將自己要修改源代碼和文檔從VSS服務器主備份文件上checkout到本地同時鎖定服務器上的源代碼和文檔(multi - checkout情況除外),修改完成后checkout到服務器上同時解除服務器上文件的鎖定。服務器集中控制所有的源程序和文檔。
?
在VSS 2005中,創建數據庫的時候可以選擇是copy-modify-merge,還是copy-modify-merge。
from:
http://www.cnblogs.com/weiweictgu/archive/2006/08/15/477332.html