Perforce Streams-隔离导入的库
我需要一些关于我在使用Perforce Streams时遇到的用例的指导。假设我有以下结构:Perforce Streams-隔离导入的库,perforce,perforce-stream,Perforce,Perforce Stream,我需要一些关于我在使用Perforce Streams时遇到的用例的指导。假设我有以下结构: //ProductA/Dev: share ... //ProductA/Main share ... import Component1/... //Component1/Release-1_0/... //ProductA/Release-1_0 share ... //Component1/Dev share ... //Component1/Main share
//ProductA/Dev:
share ...
//ProductA/Main
share ...
import Component1/... //Component1/Release-1_0/...
//ProductA/Release-1_0
share ...
//Component1/Dev
share ...
//Component1/Main
share ...
//Component1/Release-1_0
share ...
ProductA\u Main
从Component1\u Release-1\u 0
导入代码。每当Component1\u Release-1\u 0
更新时,它将自动可用于ProductA
(但为只读)
现在。我遇到的问题是,由于ProductA\u Release-1\u 0
继承了Main
,因此也导入了Component1\u Release-1\u 0
,因此对组件所做的任何代码或更改都会立即影响ProductA
版本。这种副作用似乎很危险
是否有任何方法可以隔离代码,以便在发布流中跟踪所有代码更改(即使是导入的代码),并且其他流库没有任何副作用,但对于主流和开发流,则导入代码。这样,该版本将没有任何副作用,而main和dev可以方便地导入在仓库中所做的任何更改
我知道一种选择是在
组件1
仓库中创建某种特定于产品的发布流,但这似乎有点困难,因为如果您只是想重建以前的版本,那么组件1
不需要任何对产品a
的引用,通过向p4 sync
提供更改列表编号(或标签),可以使用标签将流同步回其当时的确切状态
如果您正在寻找明确的变更跟踪,您可能希望将组件分支到您的发布行中。这将使库的发布副本完全不受另一个流中的更改的影响,除非您选择从那里分支并协调数据。如果你认为你可以对图书馆进行独立的修改,以修补漏洞,这可能是值得考虑的事情。当然,perforce不会将数据库中的文件复制到服务器上,只是在元数据中指向它们,而且由于您已经将它们导入到流中,您已经将文件副本放在构建机器上,因此除了元数据方面,不应该有任何“浪费”
最后,这看起来像一个政策问题。重建可以通过同步回以前的版本来完成,但是如果您想将库修复浮动到主代码行中,请保持原样;如果您想锁定库并使更改显式化,我只需将库分支到中
集成到发布分支中
在回答评论中的问题时,如果选择直接集成到发布分支中,则需要从流规范中删除import
行,并将其替换为isolate
行,该行将仅将代码放置在发布分支中。然后您将使用标准的p4integrate
命令(或p4v)从//Component1/Release-1_0/…
集成到//ProductA/Main/Component1/…
巩固单独的组件流
最后一个想法是,您可以在
//Component1
行上创建另一个流,作为发布的占位符。如何将组件分支到我的发布行中?这是发布流定义的一部分吗?