Pages

2015-04-29

用VirtualSVN版控整個專案根目錄

如果你直接在VS2013裏將方案加入遠端VisualSVN作版控,它只會將目前Solution下的可見專案文件寫入遠端版控,然而我們大部分專案根目錄卻是長這樣子的:
+ MyRootDir/ (root)
   App_Doc/  (放置專案文件)
   App_Deploy (編譯佈署輸出目錄)
   App_MainProject1/  (主專案1)
   App_Library/   (共用函式庫)
   App_OtherProject1/    (其他專案1)
   App_OtherProject2/
   MainProject1.sln
   OtherProject1.sln
   OtherProject2.sln

同個專案下,可能會有很多方案Solution檔,控制著不同的專案項目組合,若異動了非某專案下的文件,可能遠端主機就沒法探測到異動,因此我們不能讓SVN綁著方案,而該綁定最上游的根目錄。

設定步驟如下:

  1. 確認系統已安裝VS2013, TortoiseSVN, VisualSVN程式。
  2. 在遠端主機建置空的Repository(倉庫),設置好存取用戶權限。
    SVN Empty Repository 
  3. 將MyRootDir/目錄匯入該遠端Respository裏。
    SVN Import
  4. 打開VS2013,執行選單上「VISUALSVN\Get Solution from Subversion」,將遠端的Respository儲存到欲放置的路徑上。
     SVN Get Solution
  5. 完整下載後,它會判讀該目錄下的所有*.sln,就可選擇任一個來開啟。
    SVN Open Solution
  6. 在系統檔案管理員(非VS2013)下新增任一文字檔(ImportedNewFile.txt),但在VS2013的專案檔下去作SVN Commit,即可抓到上層的所有異動文件。這是因為VisualSVN的「Set working copy root」是設定在root根目錄層。
    SVN Commit
  7. 如此一來,我們綁定SVN在根目錄裏的變動,而非目錄下單一*.sln方案檔了。

No comments: