我们可以在perforce中创建标签吗?

时间:2013-12-13 05:59:04

标签: perforce clearcase cleartool p4v

我在一个项目中工作。我们同时使用clearcase和perforce。

当我们正在开发不同的构建时,在clearcase中我们为每个版本创建一个标签。比如发布“X”,我们创建一个clearcase case“Label X”。标签X具有关于发布“X”的所有最新文件。当我们完成另一个版本说“Y”时,我们创建了另一个标签“Label Y”。标签“Y”再次具有释放“Y”的所有文件。但在任何时候我们都可以回到“标签X”。这意味着所有文件都将恢复为“标签X”。

我们可以在perforce中做同样的事情吗?我们可以在perforce中创建一个标签,因此在任何时候,我们都可以转到该标签,该标签将在该标签时间轴中提供文件。

3 个答案:

答案 0 :(得分:3)

Perforce还提供了一个有趣的指南“Migration Planning Guide: IBM Rational ClearCase to Perforce”,并提到p4 label不是唯一的选择:

标签策略

  

ClearCase和Perforce都提供标签,用于标识构成基线的文件版本。对于许多ClearCase用户,标签是必需的。应用标签非常耗时,通常占创建时间的30%或更多   稳定的构建。

     

在Perforce中,标签只是复制基线的一种方式。 更改列表可以通过对构建过程减少负担的方式实现相同的目标,并且比标签更快更容易引用

     

每个Perforce签入都会生成一个唯一的更改列表编号,该编号反映了某个时间点的存储库状态。任何更改列表都可用于描述状态   存储库中的每个文件,即使它只影响存储库的一小部分。

     

由于典型的配置规范是几行或更多行,因此这是一种过度紧张的原因   Perforce中的分支表示为目录,可以很容易地组合分支和变更清单号来表示基线   或者,标签可以引用限制在服务器中已识别范围的更改列表编号,其中范围通常是特定分支。

答案 1 :(得分:2)

是的,您可以在perforce中创建标签。

使用p4 label创建标签规范,然后使用p4 tag标记带有标签的文件。

您可以在labels中了解有关user guide的更多信息。

答案 2 :(得分:1)

想象一下,您有以下设置:

//depot/source/sourcefile.cpp
//depot/build/product.exe

早上8点,您检查sourcefile.cpp(现在是修订版2,在更改列表100中)。构建机器开始构建,并且在上午9点,构建机器检查更改列表104中的product.exe,版本2。冷却。可悲的是,您可能没有注意到,但在8:15,有人在更改列表103中检查了sourcefile.cpp的修订版3中。

你有什么选择?如果您只记录源(100)和产品(104)的更改列表,则可以将整个项目同步到源,然后进一步同步更改列表104的内容。此过程有点手动 - 您必须记录两个数字并做两步操作。

你可以制作一个标签,但遗憾的是,标签不允许进行多次修改,因此它不是真的可行。

最后,在您签入修订版104后的某个时刻,您可以创建一个分支。这基本上是您感兴趣的修订的元数据副本,以便您以后可以进行单击同步。您可以锁定分支以防止更改。

p4 integ //depot/source/...@102 //depot/milestone1/source/...
p4 integ //depot/build/...@104 //depot/milestone1/build/...

令人讨厌的细节 - 您可以在perforce中配置文件以保存有限数量的修订 - 例如,您可能只需要product.exe的最后16个修订版。 (将文件类型更改为+ S16)。如果您(或其他人这样做),您前两个程序最终将失败,因为修订已被删除,因为修订过多。如果您使用分支,则product.exe将不会老化。