我們在用 Visual Studio 開發專案的時候,常常都會有人將一些個人的設定檔也簽入到 Subversion 版本庫,例如說:*.suo, *.user 等。導致每次開啟 Visual Studio 的時候都會變更這些檔案的內容,造成每次簽入變更到資料庫時都會將這些檔案也都簽入,當其他團隊成員在做 SVN Update 時,會造成檔案衝突的問題,對大家來說也是個困擾。
我這裡整理出一些常見的檔案類型,請不要將以下檔案簽入(commit)到 Subversion 版本庫:
- *.suo (Solution User Options) 方案使用者選項檔 ( 定義在整個方案中使用者自己的開發環境 )。
參考:Visual Studio 中的檔案類型與副檔名
http://msdn2.microsoft.com/zh-tw/library/xhkhh4zs.aspx
- *.webinfo 控制 Web 專案虛擬根目錄位置的 Web 資訊檔,這個檔可能每個人都不太一樣,所以不建議將這個檔 commit 進 SVN 版本庫。
常見的有 vwd.webinfo, *.csproj.webinfo 或 *.vbproj.webinfo
參考:Visual Web developer 檔案系統網站
http://msdn2.microsoft.com/zh-tw/library/e5x4xz73(VS.80).aspx
參考:ASP.NET 網站檔案類型
http://msdn2.microsoft.com/zh-tw/library/2wawkw1c(VS.80).aspx
- *.csproj.user 專案使用者選項檔 ( 在 VB.NET 是 *.vbproj.user )
- *.dbproj.schemaview [ 2011-05-29 補充 ]
這是 Visual Studio 2010 資料庫專案的暫存檔,每個使用者都不會一樣,因此應該列入忽略清單之中。
In the new Visual Studio 2010 SQL Server project type, what is the .dbproj.schemaview file for?
- Class Library 專案中的 Bin 目錄與 Obj 目錄,此為建置輸出檔,每次編譯都會不太一樣,沒必要將這些變動的檔案簽入到 SVN 版本庫。例如 *.dll 及 *.exe 檔案。
參考:簡介原始檔控制
http://msdn2.microsoft.com/zh-tw/library/ms171339(VS.80).aspx
如果你已經簽入(commit)到 SVN 版本庫的話,必須用以下步驟將檔案從版本庫中移出,並從下次起忽略這些檔案:
- 先備份這些檔案,然後刪除這些檔案
- 簽入這些刪除的變更
- 將步驟 1 備份的檔案還原
- 重新簽入,但這時會看到幾個新的檔案(non-versioned),將這些檔案加入 SVN 的 ignore list ( 如下圖示 )
加入後檔案會不見,但是卻會出現目錄的名稱,但是 Status 卻是 modified (property change only) 代表此目錄已經加上了 ignore 的屬性,必須要簽入到 SVN 版本庫後才能將此設定 share 給其他團隊成員: