2010-04-22 32 views
1

我有一個項目在我的管理之下。Visual Sourcesafe,共享:提交到錯誤的位置

它具有以下結構:

$ /代碼/ MainSolution $ /代碼/分行

我想分支$ /守則MainSolution /分行

所以我這樣做, (它完美地工作),我爲該項目設置了一個工作文件夾並做一個'最新的'。

但是當我打開在Visual Studio 2005中的解決方案是確定每一個文件是新的(+符號在文件的前面),當我提交它,它去

$ /數據/ NameOfTheBranch

它爲什麼這樣做?爲什麼不遵循我的規則?

回答

1
  1. 轉到文件,源代碼管理,變更 源控制(至少在VS2008)。

  2. 看看服務器綁定列。 一般來說,你希望綁定 點到VSS解決方案的根項目 目錄解決方案 所有項目。如果不是,則:

  3. 解除綁定全部該項目和 解決方案。

  4. 按住Shift鍵選擇整個列表。

  5. 將所有內容綁定到解決方案根目錄。

如果在分支和固定項目之前執行此操作,則會更容易。之後,您將不得不分支.sln文件,也許還需要.vcproj和.vspscc以便正確保存修改。

Here's VSS和Visual Studio管理的文件很好的參考。這些文件可能很容易失控。

我管理了一個VSS數據庫太多年了,最近切換到了Mercurial並沒有回頭。在VSS中分支和合並是非常可怕的。

2

我一般都在解決方案的所有vcproj文件有以下幾點:

SccProjectName = "SAK" 
SccLocalPath = "SAK" 
SccAuxPath = "SAK" 
SccProvider = "SAK" 

這將使拿起從解決方案文件在SourceSafe信息。確保解決方案文件分支,不在2個分支中共享。打開分支解決方案,然後轉到「更改源代碼管理」並將解決方案綁定到SourceSafe中的正確位置。
這是非常脆弱的(或者我可能不完全瞭解它),但我通常只是捅它,直到它工作。和往常一樣:如果可能的話,遷移到不同的源控制系統。 Perforce公司,顛覆,水銀...

+0

請您詳細說明您的代碼示例中的含義。 – Snake 2010-04-27 11:57:07

+1

用文本編輯器打開vcproj文件,並用「SAK」替換此變量的任何值。這將使項目與SourceSafe分離,並且您將使用sln文件將proj與sourcesafe關聯。這很好,因爲您現在只能在一個地方更改SS中的項目位置(我們的一個解決方案中有60個項目!)。然後,當您分支時,您只需分支解決方案並更改SS綁定,而不是在解決方案和項目中更改它。 – 2010-04-27 12:06:37

+0

但分支仍然會工作嗎?它仍然會與後備箱相關聯嗎?我可以在病房後合併嗎? (這是甚至可能的?) – Snake 2010-04-28 07:27:06