Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/ssis/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Perforce Streams-隔离导入的库_Perforce_Perforce Stream - Fatal编程技术网

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

我需要一些关于我在使用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 ...

//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
行上创建另一个流,作为发布的占位符。

如何将组件分支到我的发布行中?这是发布流定义的一部分吗?