【问题标题】:When using branches with VS2013 and TFS2015, need to modify project files for branchVS2013和TFS2015使用分支时,需要修改分支项目文件
【发布时间】:2018-02-13 14:29:13
【问题描述】:

我们使用 TFS 2015 及其本机源代码控制(非 GIT)来托管我们的 VS 2013 解决方案。

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

我已经搜索并发现很多页面建议使用

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

Scc 绑定元数据位于其他位置 (MSSCCPRJ.scc?)。 这在我看来是合理的。

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

【问题讨论】:

    标签: visual-studio-2013 tfs version-control tfs-2015 branching-and-merging


    【解决方案1】:

    我也推荐在Scc下面使用,其实这是在TFS中添加项目到源代码管理时默认的Scc设置。

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

    在您的情况下,如果这是一个没有任何策略限制的选项,您可以尝试在 SccProjectName 设置中删除 Main 和另一个分支的分支名称。

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

    • 在这种情况下,我们要做的是执行合并,然后撤消 我们要排除的那些文件的更改。一旦完成,我们 检查更改。当您执行合并时,它只会合并到您的 工作区。在您签入之前,它不会进入服务器。
    • 您可以从命令行使用 tf.exe 来强制 .vcxproj 文件 不包含在合并操作中: tf.exe merge /discard &lt;path to .vcxproj file &gt; &lt;destination branch&gt;

      详情请参阅Merge Command。也参考这个线程:Exclude a config file from the merge process

    MSSCCPRJ.SCC相关信息请参考this article,希望对您有所帮助。

    【讨论】:

    • 嘿,谢谢。我想有一些更深入的了解,而不是仅仅尝试一些东西。忽略/还原对 vcxproj 文件所做的更改是我迄今为止所做的。但这在需要合并的 vcxproj 文件有实际更改的情况下并不令人满意。
    • @Scrontch 那么上面提到的默认Scc呢?如果没有 SccProjectName 设置,问题应该得到解决。
    猜你喜欢
    • 2014-10-24
    • 1970-01-01
    • 1970-01-01
    • 2023-04-01
    • 1970-01-01
    • 1970-01-01
    • 2013-05-17
    相关资源
    最近更新 更多