如何在不合并/樱桃的情况下将变更集应用于另一个分支?

时间:2019-02-08 13:16:02

标签: azure-devops tfvc

我们在使用TFVC的分支之间挑选樱桃变更集的历史悠久。我正在努力改变这种做法,但是在一种情况下,我很难提出一个干净的解决方案。

理想情况下,生产中所需的修补程序将在我们用于此目的的分支中开始其寿命。开发人员将检查应包含在该分支中的修补程序中的更改,并且应直接部署该更改,而无需先将其与其他分支合并。

尽管在许多情况下,尚不清楚工作何时开始,该更改将包含在修补程序中,并且开发人员将其检入其他分支。

过去,我们会选择此变更集(合并变更集的子集作为合并候选者)到可以从中部署到生产的分支。

我想知道我还有哪些其他选择。

  1. 手动重做目标分支中的更改?理想地使用复制和粘贴来减少无法自动解决的合并冲突的可能性。
  2. 合并(樱桃选择),但是以某种方式删除[merge]标志,以使没有merge credit应用于变更集。我认为,如果能够做到这一点,那么我将获得与上述第1点相同的效果,而不会有太大的出错风险。

在这两个中,第二个似乎最有吸引力,但到目前为止我还没有做到这一点。这是我尝试过的一些东西。

  1. 在Team Explorer的“ Pending Changes”窗格中四处寻找,以寻找一些删除合并信用的方法。
  2. 使用tf命令行工具查找选项。我得到的最接近的命令是以下命令,至少可以让我看到将应用合并功劳。

    tf vc状态/递归/格式:详细

enter image description here

  1. 搁置暂挂的更改,而不将它们保留在本地。取消搁板集的放置,并在此过程中放下合并贷方。我开始想象当我在/nomerge的{​​{1}}命令中看到tf选项时,这可能是一个选项。我的版本是15.129.28124.3。

    d:\ Projects \ Main> tf搁置/? Microsoft(R)TF-Team Foundation版本控制工具版本15.129.28124.3 版权所有(c)Microsoft Corporation。保留所有权利。

    还原搁置的文件修订,签入注释,注释和工作项 与当前工作空间的关联或从中删除现有的架子集 服务器。

    tf vc取消[/ move] [shelvesetname [; username]] [itemspec] [/ recursive]                [/ nomerge] [/ noautoresolve] [/ noprompt] [/ login:用户名,[密码]]

不幸的是,该选项没有我希望的效果-当我搁置时,合并贷记不会出现在挂起的更改中。该选项(和unshelve选项)在这里也不奇怪吗?

https://docs.microsoft.com/en-us/azure/devops/repos/tfvc/unshelve-command?view=azure-devops

有什么办法可以使它工作?还有其他方法可以达到我希望的效果吗?

注意:尽管Raymond Chen在他的Stop cherry-picking, start merging系列文章中介绍了GIT,但我发现它非常相关。

0 个答案:

没有答案