1

我们使用TFS 2015及其本机源代码控制(非GIT)来托管我们的VS 2013解决方案。当在VS2013和TFS2015中使用分支时,需要修改分支的项目文件

最近,我创建了一个分支。 我需要手动修复vcxproj文件中的Scc节,因为它们在SccProjectName设置中明确包含了分支名称。 同样,当我想合并分支回到主干。我需要注意修改后的部分没有合并回主干。 这非常烦人。 如何解决这个问题?

我已经搜查,发现大量提示使用

<SccProjectName>SAK</SccProjectName> 
<SccLocalPath>SAK</SccLocalPath> 
<SccAuxPath>SAK</SccAuxPath> 
<SccProvider>SAK</SccProvider> 

与位于其他地方的SCC-结合的元数据页面(MSSCCPRJ.SCC?)。 这对我来说似乎很合理。

但我不明白我们必须明确做什么以及它会破坏什么。 我不是TFS设置和配置方面的专家。

回答

2

我也推荐使用下面的Scc,实际上它是默认的Scc设置,当你在TFS中添加一个项目到源代码控制。

<SccProjectName>SAK</SccProjectName> 
<SccLocalPath>SAK</SccLocalPath> 
<SccAuxPath>SAK</SccAuxPath> 
<SccProvider>SAK</SccProvider> 

在你的情况,你可以尝试在SccProjectName设定的主,另一个分支删除分支名称,如果这是没有任何政策限制的选项。

另一种方法是尝试排除.vcxproj文件,如果没有任何其他更改需要合并回主干。

  • 我们在这种情况下所做的是我们执行合并,然后撤消对我们要排除的那些文件的 更改。一旦完成,我们 签入更改。当您执行合并时,它只会合并到您的 工作区中。它没有去检查服务器,直到你签入。
  • 您可以使用tf.exe通过命令行来强制不被包括在合并操作中.vcxproj文件 : tf.exe merge /discard <path to .vcxproj file > <destination branch>

    详见Merge Command。还引用了这个线程:Exclude a config file from the merge process

对于MSSCCPRJ.SCC相关信息,请参阅this article,希望帮助。

+0

嘿,谢谢。我想有一些更深入的了解,而不是尝试一些事情。 忽略/还原更改vcxproj文件是我到目前为止所做的。但是,如果对需要合并的vcxproj文件进行实际更改,这种做法并不令人满意。 – Scrontch

+0

@Scrontch那么上面提到的默认Scc呢?如果没有SccProjectName设置,则应解决该问题。 –

相关问题