4

我对 TFS 不是很有经验,也找不到做我想做的事的方法。

好的,所以我们在 TFS 中有一个主分支,我们在这个分支上开始了新的开发。在开始修改之前,我们完全忘记了创建一个新的。

最后我想要的是修改前状态下的主分支(我有确切的变更集编号),以及正在进行工作的开发分支......

这是我所做的:

  • 将当前状态的主分支分支到开发分支
  • 在我们开始修改之前将主分支回滚到最新的变更集

在这一点上,我认为我还可以,但是当我尝试将 Development 分支合并到主分支时,VS 正确地指出,它找不到任何已签入到我的 Development 分支而不是我的主要的,因为回滚并没有删除变更集,而是添加了一个新的变更集,并进行了回滚操作。

我想也许在开发分支中签入一些新的东西会解除阻塞,但不幸的是,只有最新的(分支后)签入似乎有资格合并。

我肯定做错了什么,或者方法不对。

有人对如何实现我的目标有解释和想法吗?

4

3 回答 3

3

因为您的情况经常发生(在主分支上工作,后来才意识到您应该已经分支),这是 TFS 支持的用例(命令行和 Visual Studio 中)。

您不想指定By Latest(默认) 或, ,而是指定并选择应包含在分支中的最后一次签入。之后的所有签入都从分支中排除,但可以在之后合并(必要时挑选变更集)。By: Latest VersionBy: Changeset

或者,您可以在工作区中获取特定版本(获取特定版本)并By: Workspace在创建分支时指定。按日期或标签也是有效的选择,但我不经常使用它们。

于 2015-05-05T08:19:53.113 回答
0

回滚不是您传统上对回滚的看法。它将代码恢复到您想要的状态,但您需要签入回滚作为新更改。这保留了代码的完整历史记录,包括回滚。

我建议你:

  1. 删除您的子分支
  2. 将您的父分支置于您想要的状态,即使您有一些额外的签入和回滚。
  3. 一旦一切都完全签入,然后分支到您的子分支。
于 2013-07-08T16:35:03.127 回答
0

回滚是一个正常的变更集,您可以像任何其他变更集一样回滚它。这是你可以做的:

  1. 从您的主分支创建一个开发分支。
  2. 回滚主分支中不需要的更改。
  3. 签入主分支中的回滚。这将创建变更集#XYZ。

此时,在开发分支中继续您的开发。您还可以在主分支中签入更改。完成开发后:

  1. 在主分支中回滚回滚(变更集#XYZ)。
  2. 合并从开发分支到主分支的更改。

最后一个动作应该只合并分支后在开发分支中所做的更改。

根据更改和分支配置的复杂性,这可能是最简单的方法。

于 2018-08-09T14:05:49.697 回答