Build 关于集成流上的构建失败并在UCM Clearcase环境中修复它
我们有一个很好的UCM Clearcase系统。我们在集成流上有适当的夜间构建,我已经为各种站点配置了CruiseControl.NET 问题是,在构建失败的情况下,没有应用基线。这迫使开发人员修复构建服务器本身的问题 这是极不可取的。我想应用一个基线,并将其设置为*REJECT*ed。然后请开发人员根据被拒绝的基线重新设置基准,以解决问题 在以下流配置中应如何执行此操作:Build 关于集成流上的构建失败并在UCM Clearcase环境中修复它,build,clearcase-ucm,Build,Clearcase Ucm,我们有一个很好的UCM Clearcase系统。我们在集成流上有适当的夜间构建,我已经为各种站点配置了CruiseControl.NET 问题是,在构建失败的情况下,没有应用基线。这迫使开发人员修复构建服务器本身的问题 这是极不可取的。我想应用一个基线,并将其设置为*REJECT*ed。然后请开发人员根据被拒绝的基线重新设置基准,以解决问题 在以下流配置中应如何执行此操作: MainStream | |---Germany_Stream |
MainStream
|
|---Germany_Stream
|
/ \
Multiple developer streams
|
|---USA_Stream
|
/ \
Multiple developer streams
开发人员将变更集交付到他们的站点。这是德国开发者对德国流和美国开发者对美国流
这些变化随后被推向主流。夜间建造发生在那里。应在主流应用基线,并在构建通过时推荐基线。如果失败,则需要应用基线并*REJECT*ed。如何使*REJECT*ed基线可供低于主流两级的开发人员使用
请让我知道如何让开发人员遵循最佳实践并阻止他们在构建服务器中进行更改
我如何使*REJECT*ed基线可供低于主流两个级别的开发人员使用
如果您正在考虑重新基址,您将需要在站点流(美国或德国)上重新基址,然后再重新基址开发流
这可能是一种很好的方法,因为每个流都可以选择从站点流重新基址(拉入方法)到其开发流。唯一的问题是,它需要在流(美国或德国)中进行合并,开发人员也使用该流进行交付:可能会发生冲突 我建议向Main创建一个子流,称为
Rejected\u Stream
,可以随意重新设置基础(并将获得最新的Rejected
基线)。从那里,任何开发人员都可以选择启动从该流到他们自己的开发人员流的交付 这种方法的问题在于每次交付都必须按顺序进行 我如何使*REJECT*ed基线可供低于主流两个级别的开发人员使用 如果您正在考虑重新基址,您将需要在站点流(美国或德国)上重新基址,然后再重新基址开发流 这可能是一种很好的方法,因为每个流都可以选择从站点流重新基址(拉入方法)到其开发流。
唯一的问题是,它需要在流(美国或德国)中进行合并,开发人员也使用该流进行交付:可能会发生冲突 我建议向Main创建一个子流,称为
Rejected\u Stream
,可以随意重新设置基础(并将获得最新的Rejected
基线)。从那里,任何开发人员都可以选择启动从该流到他们自己的开发人员流的交付
这种方法的问题是每次交付都必须按顺序进行。谢谢VonC。在解决主流上的构建问题时,最佳实践是什么?开发人员在生成服务器上修复此问题在任何情况下都可能不太好,因为它会不必要地向开发人员打开服务器,更重要的是,文件的历史记录会被弄乱。@msiyer问题是在主服务器上进行的修复的传播。固定在Main上的内容在dev上可能不再相关,而dev的发展可能有所不同。允许开发人员通过专用流上的基线
REJECT
)查看需要修复的内容,同时保持交付机制的单向性(dev=>site=>Main)允许更简单的历史记录。我的帖子和评论基于我在UCM中观察了几个月的代码流后做出的逻辑假设。我觉得我的假设是正确的。谢谢你,沃克。你一直是黑暗代码丛林中这个孤独的流浪者的希望灯塔:)谢谢你。在解决主流上的构建问题时,最佳实践是什么?开发人员在生成服务器上修复此问题在任何情况下都可能不太好,因为它会不必要地向开发人员打开服务器,更重要的是,文件的历史记录会被弄乱。@msiyer问题是在主服务器上进行的修复的传播。固定在Main上的内容在dev上可能不再相关,而dev的发展可能有所不同。允许开发人员通过专用流上的基线REJECT
)查看需要修复的内容,同时保持交付机制的单向性(dev=>site=>Main)允许更简单的历史记录。我的帖子和评论基于我在UCM中观察了几个月的代码流后做出的逻辑假设。我觉得我的假设是正确的。谢谢你,沃克。你一直是黑暗代码丛林中这位孤独游侠的希望灯塔:)