Perforce 如何执行命令'';P4变更“;工作

Perforce 如何执行命令'';P4变更“;工作,perforce,changelist,Perforce,Changelist,我正在开发一个应该与Performance集成的应用程序。在基本性能命令的学习阶段,我有一个问题,“p4更改”是如何工作的。一旦一个变更列表被提交,比如说,影响 “//depot/Web/content/main.css” “//depot/Tool/app/init.py” 如果我们现在发出命令: 'p4更改//仓库/Web/…' 然后,更改列表将显示在结果中。那么Performance如何管理这些信息呢?它是否会分解路径并存储?或者它做一个在线子字符串查询 我看到Perforce数据库模式中

我正在开发一个应该与Performance集成的应用程序。在基本性能命令的学习阶段,我有一个问题,“p4更改”是如何工作的。一旦一个变更列表被提交,比如说,影响

  • “//depot/Web/content/main.css”
  • “//depot/Tool/app/init.py”
  • 如果我们现在发出命令:

    'p4更改//仓库/Web/…'

    然后,更改列表将显示在结果中。那么Performance如何管理这些信息呢?它是否会分解路径并存储?或者它做一个在线子字符串查询

    我看到Perforce数据库模式中有一个字段“common path”,在本例中,该值应为:

    “//仓库/…”


    那么在这种情况下,Perforce是如何获得信息的呢?

    对于每次更改,Perforce服务器都会记录哪些文件受到该更改的影响

    这是记录在服务器数据库中的许多关于变更列表的元数据之一

    “p4 descriple”等命令使用这些信息来查找正确的文件集

    Perforce server包含一个复杂的模式匹配引擎,该引擎可以快速搜索数据库,以定位影响特定文件集的一组更改,如文件模式所述


    这是服务器的核心操作,因此它针对这种行为进行了高度优化。

    对我来说似乎是个好问题。为什么要进行向下投票?仍然不清楚:“p4 changes”命令使用的是“公共路径”(即db.change[x]中的“root”)吗?谢谢您的输入。如果使用“公共路径”,那么对于所有带有前缀为“公共路径”的“路径”参数的“p4更改”查询,它必须首先找到所有带有该“公共路径”的“可能”更改列表,并对其进行迭代,以检查受该更改列表影响的任何文件路径是否位于作为参数提供的路径中。这将显著降低性能。大多数优化都是以这种方式进行的吗?我相信,根据“p4更改”参数的细节,会有各种各样的优化。这些优化经过多年的扩展和调整,因此如果您担心某条评论的性能,最好联系performance support以获得优化查询的帮助。常用路径用于p4 changes命令,但主要用于安全目的,而不是搜索。