【问题标题】:How to block a changeset from merging in TFS?如何阻止变更集在 TFS 中合并?
【发布时间】:2011-04-30 19:24:55
【问题描述】:

在 TFS 2010 中,如何标记变更集以使其不能从一个分支合并到另一个分支?例如,当使用“选定的变更集”选项时,它不会显示在 Visual Studio 的“合并向导”中。基本上,我希望它看起来像有问题的变更集已经合并到另一个分支中。

我们的构建过程会自动增加所有 AssemblyInfo.cs 文件中的版本号。发布分支中仅包含版本增量的变更集不应合并到主干(当然,或另一个发布分支)。

我相信这类似于 TortoiseSVN 中的“仅记录合并(阻止修订被合并)”复选框。

【问题讨论】:

    标签: version-control tfs merge


    【解决方案1】:

    我想我找到了问题的答案。 tf.exe 命令有一个开关“/discard”,它被记录为“不执行合并操作,但更新合并历史记录以跟踪合并发生”。这正是我一直在寻找的。如果这不是我所期望的,我会尝试并发布更新。

    http://msdn.microsoft.com/en-us/library/bd6dxhfy(v=vs.80).aspx

    【讨论】:

    • 这是它的语法示例(为了我自己的利益,当我下一次谷歌这个时......)tf merge $/sourceBranch $/targetBranch /discard /recursive /version:Cx~Cy Cx~Cy 是可以是一个范围的变更集数字,例如C100~C102 或仅用于丢弃单个变更集的单个变更集编号,例如C100~C100
    • 对于单个变更集,请尝试仅指定 /version:C100。如果您为单个变更集指定范围,AzureDevOps 会告诉您“没有要合并的更改”
    • @StingyJack(真奇怪,两年后我发现自己又回到了这个评论(通过谷歌),就在有人看到它的一个小时后!)我目前的要求是/丢弃一个非连续的一组变更集,例如C100、C200 和 C300。你知道我是否可以指定/version:C100~C300 忽略所有这些,而不引起任何副作用,或者我应该/discard /version:C100,然后/discard /version:C200 等(在我目前的情况下是30 次)。提前致谢!
    【解决方案2】:

    对于您要完成的工作,TFS 中确实没有类似物。在 TFS 中,文件的每个后续变更集都是前一个变更集的增量(依此类推,直到基本修订)。因此,您不能真正“跳过”变更集。

    在这种情况下,我不确定您所说的“版本增量”究竟是什么意思。您是在谈论文件/程序集版本,还是其他?

    【讨论】:

    • 感谢您的回复。我并不是说一起跳过一个变更集——只是为了使一个变更集不能从一个分支合并到另一个分支(至少在 GUI 中)。对于版本增量,是的,它是文件/程序集版本。我会更新问题以更清楚地说明这些问题。
    猜你喜欢
    • 1970-01-01
    • 2011-04-23
    • 2020-05-20
    • 2014-07-31
    • 2012-05-08
    • 1970-01-01
    • 1970-01-01
    • 2015-10-13
    • 1970-01-01
    相关资源
    最近更新 更多