【问题标题】:"Move" changeset in wrong TFS branch错误 TFS 分支中的“移动”变更集
【发布时间】:2012-06-20 18:50:21
【问题描述】:

假设我在错误的 TFS 分支中签入了更改。我需要将我的更改转移到另一个分支,然后以某种方式从错误的分支中消除这些更改。这可以在不借助选择性复制/粘贴的情况下完成吗?最终,我确实想要我错误地将它们添加到的分支中的更改......只是还没有。

如果我没有签入更改,我可以搁置它们,然后use tfpt to unshelve into a different branch。但这在这里行不通,因为我已经检查了更改。


例子:

我有一个包含 MAIN 和 DEVELOPMENT 分支的环境。我需要创建一个名为 Buzzsaw 的新模块。我有一个解决方案打开并破解我的更改。然后我检查他们。哎呀。我意识到我刚刚将我的模块签入了 MAIN,但它应该已经签入了 DEVELOPMENT。我可以回滚错误的变更集,但是我需要手动将我的更改应用到 DEVELOPMENT。大多数受影响的文件在分支之间是相同的,但有足够的差异,我宁愿不复制/粘贴我的更改。

我可以将我的更改从 MAIN 合并到 DEV,然后回滚 MAIN。但是,当我真的希望它们存在时,现在很难将更改带回 MAIN(现在将 DEV 合并到 MAIN 并不会移动该更改集,因为它已经被合并了)。


我能做什么?有没有一种相当干净的方法来完成这个?

【问题讨论】:

  • 您确定:“现在将 DEV 合并到 MAIN 不会移动该变更集,因为它已经合并了”?
  • 我可能做错了什么,但我几乎可以肯定。如果分支 I 上的文件 A 在变更集 1 中并且我合并,则分支 II 上的文件 A 在变更集 2 中。现在,如果我要求 TFS 将 II 合并到 I,则没有待处理的更改。即使我在 I 上提交 A' 作为变更集 3,将 II 合并到 I 也不会有待处理的变更集。
  • 好的,但是如果您回滚 I 中的变更集 1,那么您仍然无法从 II 合并回 I 吗?
  • 你是对的。我确信我过去曾尝试过,但我要么做错了,要么没有真正尝试过。谢谢!如果您稍微扩展您的评论作为答案,我会接受它。
  • :) 实际上我已经输入了答案,我只需要发布它。

标签: tfs


【解决方案1】:

从错误分支合并到正确分支,然后对错误分支中的分支执行changeset rollback

当您需要时,您仍然可以将变更集从正确的分支合并回错误的分支。

【讨论】:

  • 我从错误的分支合并到正确的分支,然后回滚了错误分支上的更改。最后,我对回滚进行了合并丢弃,这样它们就不会意外地集成到正确的分支中。
【解决方案2】:

您可以“搁置”错误分支和unshelve them into the correct one中的更改。

【讨论】:

  • 我也想过这个。这里的问题是更改已经签入。我认为不可能将这些更改放入搁置集中。需要明确的是:如果尚未将 Buzzsaw 更改签入 MAIN,这将非常有用。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2014-11-01
  • 2012-10-01
  • 2015-11-12
相关资源
最近更新 更多