我正在考虑在 TeamCity Visual Stuio 插件中添加“为 Mercurial 远程运行(个人构建)”功能的想法。
从 v6.5 开始,TeamCity 支持“远程运行分支触发器”,如果推送与 TeamCity 中的触发器匹配的命名分支,TeamCity 将运行该分支的个人构建。
这个想法是从当前分支(比如说default
)获取当前传出的变更集,并将它们移动到一个名为remote-run
. 然后将其推送到 CI,因此触发个人构建,如果个人构建成功,则将更改移回原始分支,并remote-run
删除该分支。
我对此有几个问题:
- 它甚至有意义吗?
- 我应该为此使用哪个扩展?我相信 MqExtension 可以满足我的所有需求,但有其他选择吗?
- 如果用户在远程运行期间提交了额外的更改会发生什么?“临时分支”变更集如何合并回原始分支?
我目前的目标场景如下:在默认分支上工作时,用户添加了 3 个新版本。然后,他想在 TeamCity 上将这些更改作为个人构建运行,但他忘记将这些修订提交到一个特别命名的分支。相反,我的插件将接受那些传出的更改,并将它们放在命名的分支中。一旦个人构建成功,这些更改就会被放回原始(默认)分支,并推送到远程存储库。
像这样的东西:
[default] A---B---C---D
假设B
和是新修订版C
,D
我希望该工具执行以下操作:
[default] A
\
[remote-run] B---C---D
完成后,将其恢复到原始状态,即:
[default] A---B---C---D
编辑:我设法使用 Mq 将更改移动到另一个分支,这最终变得非常容易。不幸的是,我不知道如何恢复此更改:)
希望这是有道理的!