2010-04-22 57 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