VSS常犯錯誤(轉載)
VSS工作
1、從伺服器上對需要的檔案”get latest version”,取出了最新版本,別人說那是可執行版本,我卻無法正常編譯?
原因:
出現這種情況,極大可能是你的本地保留了伺服器上已經刪除的舊檔案,當你從伺服器取最新版本的時候,系統只對本地與伺服器上的同名檔案進行了更新,沒有對本地無用的垃圾檔案進行刪除。舊的垃圾檔案保留在同一個檔案夾中,出現伺服器最新檔案與本地垃圾檔案並存的現象,造成系統無法編譯成功。
解決辦法:
如果可以確定伺服器的檔案和本地工作夾的檔案個數一致,可以直接使用“get latest version”從伺服器取得最新版本檔案進行使用;
如果無法確定伺服器的檔案和本地工作夾的檔案個數是否一致,則先將本地工作夾改名,另外建立一個與伺服器同名的檔案夾,再使用“get latest version”從伺服器取得最新版本檔案,經過使用確保伺服器為最新可執行版本後,再將原來存放於本地改名後的檔案夾刪除。
2、我從本地將檔案提交到伺服器,每次提交時都會出問題,不是少了這個檔案就是少了那個檔案,提交的時候沒仔細數清楚,直到用的時候才發現檔案少了,還要一個一個檔案對照,很麻煩。
原因:
提交檔案的時候直接“check in”。 check in的動作只更新了處於check out狀態的檔案,沒有考慮到新增的檔案。
解決辦法:
提交檔案時不採用直接在VSS選中檔案進行check in的動作,而是採用從本地工作夾直接拖到VSS相關目錄的方式。這時,VSS會對提交的檔案進行分類,對於已在伺服器存在並處於check out狀態的檔案進行check in;對於未在伺服器存在的檔案進行add;對於已在伺服器存在但沒有check out的檔案進行提示,無法提交。
建議每個人在提交檔案時注意對照本地的最新版本與已提交到伺服器的最新版本在日期和個數上是否一致。
3、我在本地直接修改了檔案,想提交到VSS,結果在check out的時候把本地改好的檔案覆蓋了,又要重新改,欲哭無淚!
原因:
對於已納入VSS的版本管理的檔案,VSS統一將檔案的屬性改為唯讀。如需對某個檔案進行修改,則需要先對相應的檔案進行check out,check out後檔案將轉為正常狀態,可以進行修改。也可以在資源管理員中直接將檔案的唯讀屬性改為正常狀態,此時亦可對檔案進行修改。當對VSS中的檔案進行check out時,如VSS檢測到本地檔案不是處於唯讀狀態,則會給出類似以下提示:
此時,如果選擇“Lave this file?”則會繼續保留本地檔案的版本;如果選擇“Replace your local file with this version from SourceSafe”則會將本地檔案版本覆蓋為VSS伺服器版本。
解決辦法:
1. 盡量採用check out—>修改—>check in的辦法,這樣可以保證檔案版本不易出錯。
2. 當在check out時發現上述對話方塊提示時,首先判斷伺服器版本還是本地工作夾版本檔案為最新,再選擇相關的選項。
3. 如果一時無法判斷伺服器版本還是本地工作夾版本檔案為最新,可先修改本地工作資料夾的名字,將check out後的檔案與本地原有的檔案放在不同的目錄後再進行對比,判斷哪個為最新,修改後再進行提交。
4、因為檔案改動太多了,我懶得check out,採用直接將伺服器的檔案刪除,再add的方式。結果發現,伺服器上的一些檔案用的還是我刪除過的老版本,沒把我本機上新的版本提交到伺服器。
原因:
考慮到安全性問題,管理員對大多數使用者限制了永久刪除的許可權。擁有刪除許可權的使用者大多隻能虛擬刪除,刪除後的檔案仍然保留在資料庫中,可以進行恢複。使用者在提交檔案的時候,系統如發現在資料庫中仍存有同名檔案,則會給出如下提示:
此時選擇Yes表示重新獲得已經刪除但資料庫仍然保留的檔案;選擇No則表示將本地新版本的檔案提交到伺服器,覆蓋原來已經刪除的版本。
解決辦法:
1、對於仍然有用的同名檔案,建議使用check out->check in的方式修改檔案,不建議使用delete->add的方式。
2、 當在提交檔案發現上述提示時,首先判斷自己是否需要提交的是已經被刪除的檔案還是本地的新版本檔案,再選擇Yes或No。