1

我需要一些关于我在使用 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_Main从中导入代码Component1_Release-1_0。每当Component1_Release-1_0更新时,它将自动可用ProductA(但只读)。

现在。我遇到的问题是,由于ProductA_Release-1_0继承自Main并因此也导入Component1_Release-1_0,因此对组件所做的任何代码或更改都会立即影响ProductA发布。这种副作用似乎非常危险。

有没有办法隔离代码,以便在发布流中跟踪所有代码更改(甚至是导入的代码),并且其他流库的副作用为 0,但对于主流和开​​发流,代码是进口的。这样,发布将有 0 副作用,而 main 和 dev 可以方便地导入在 depot 中所做的任何更改。

我知道一种选择是在软件仓库中创建某种特定于产品的发布流Component1,但这似乎有点混乱,因为Component1不需要对ProductA.

4

1 回答 1

0

如果您只是希望能够重建以前的版本,您可以使用标签将流同步回它当时的确切情况,方法是向p4 sync.

如果您正在寻找明确的更改跟踪,您可能希望将组件分支到您的发布行。这将使库的发布副本完全不受其他流中的更改的影响,除非您选择从那里分支和协调数据。如果您认为您可能会对库进行独立更改以修补错误,那么这可能是需要考虑的事情。当然,perforce 不会在服务器上复制数据库中的文件,只是在元数据中指向它们,并且由于您已经将它们导入流中,因此您已经将文件的副本放在构建机器上,所以除了元数据前面不应该有任何“浪费”。

最后,这看起来像是一个政策问题。可以通过同步回以前的版本来完成重建,但是如果您想将库修复浮动到主代码行,请保持原样;如果您想锁定库并使更改明确,我只需将库分支。

集成到您的发布分支

在回答评论中的问题时,如果您选择直接集成到发布分支中,则需要import从流规范中删除该行并将其替换为isolate将代码放置在发布分支中的行。然后,您将使用标准命令(或p4v )从to集成。p4 integrate//Component1/Release-1_0/...//ProductA/Main/Component1/...

固定单独的组分流

最后一个想法是,您可以//Component1在线上创建另一个流作为发布的占位符。

于 2014-01-11T14:05:03.087 回答