我们在使用TFVC的分支之间挑选樱桃变更集的历史悠久。我正在努力改变这种做法,但是在一种情况下,我很难提出一个干净的解决方案。
理想情况下,生产中所需的修补程序将在我们用于此目的的分支中开始其寿命。开发人员将检查应包含在该分支中的修补程序中的更改,并且应直接部署该更改,而无需先将其与其他分支合并。
尽管在许多情况下,尚不清楚工作何时开始,该更改将包含在修补程序中,并且开发人员将其检入其他分支。
过去,我们会选择此变更集(合并变更集的子集作为合并候选者)到可以从中部署到生产的分支。
我想知道我还有哪些其他选择。
[merge]
标志,以使没有merge credit应用于变更集。我认为,如果能够做到这一点,那么我将获得与上述第1点相同的效果,而不会有太大的出错风险。在这两个中,第二个似乎最有吸引力,但到目前为止我还没有做到这一点。这是我尝试过的一些东西。
使用tf
命令行工具查找选项。我得到的最接近的命令是以下命令,至少可以让我看到将应用合并功劳。
tf vc状态/递归/格式:详细
搁置暂挂的更改,而不将它们保留在本地。取消搁板集的放置,并在此过程中放下合并贷方。我开始想象当我在/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,但我发现它非常相关。