如何记录当前客户端状态并在以后重新同步

How to record current client state and re-sync at a later date

我的客户端工作区处于某种同步状态。一些 folders/files 可以同步到特定的更改列表。 我想记录我的客户端工作区的当前状态,以便我可以在以后复制。

p4 "record my state" > state.txt p4 同步 < state.txt

"p4 have" 的输出能否与 "p4 sync" 一起使用。 可以使用p4更改吗?

我也在考虑创建标签并使用 p4 labelsync。 标签是 "expensive" 吗? (服务器大小,或服务器性能) 我可以一天构建我的产品 N 次。如果我每次都创建一个新标签,我很快就会得到大量标签。

谢谢 德里克

按照您的建议,标准的做法是通过标签。你是对的,就 space 而言,这可能会变得昂贵,因为静态标签(即单独记录每个文件修订的标签)的大小与文件数量成线性比例关系。

将单个文件夹和文件同步到单个更改列表,虽然 Perforce 使之成为可能,但如果您将其作为需要可重现而不是一次性的例行构建过程的一部分进行,则可能是一种反模式调试运行。构建配置应该以某种方式进行版本控制——如果你将工作space中的所有内容同步到一个单一的变更列表,变更列表本身就是版本控制的单位(而一个变更列表只是一个单一的信息价值——非常space-高效)。

通常情况下,如果您需要不同版本的不同组件来构建特定版本,您会希望以流或分支的形式记录它,因为这些对象可以进行适当的版本控制并可能存储比一系列标签更有效。

如果格式正确,p4 havep4 changes 的输出都可以与 p4 sync 一起使用。 -F 全局格式化标志在那里很有用;例如,您可以 运行 像 p4 -F %depotFile%%haveRev% have 这样的命令将 p4 have 的输出转换为一个简单的 file#rev 参数列表,您可以通过管道将其传递给 p4 -x - sync。有关详细信息,请参阅 https://web.archive.org/web/20141008214721/https://www.perforce.com/blog/130826/fun-formatting