首页 / 知识
确定在Perforce中同步到的最后一个变更列表
2023-04-14 09:34:00

Determining the last changelist synced to in Perforce偶尔会出现的一个问题是确定上次在Perforce中同步到的变更列表的最佳方法是什么。这通常是需要的,例如通过自动构建系统将变更列表编号注入修订信息中。 对于自动构建系统,我建议相反:首先应使用以下命令从服务器获取最新的变更列表:
然后同步到该更改并将其记录在修订信息中。原因如下。尽管Perforce建议使用以下方法来确定将工作空间同步到的更改列表:
请注意一些注意事项:
还有一个他们没有提到的附加陷阱:
如果您必须先同步并稍后进行记录,Perforce建议运行以下命令来确定您是否被上述陷阱所困扰;它应该表明没有同步或删除任何内容:
请自己回答这个问题,以符合Jeff的建议,即使用Stackoverflow作为保留技术摘要的地方.... 在命令行中使用:
,只需将其替换为客户规范的名称即可。这将产生以下形式的输出:
可以很容易地解析出其中的变更列表编号。 您可以尝试在" p4文件"命令的输出中找到最大更改数。但是,工作目录不应包含同步后的提交。比 好一点
因为后者似乎在服务器上运行,并且由于" MaxResults"限制,可能在大型源树上失败。
其中p4lastchange.py基于2005年4月15日柯达信息网/ Ofoto的J.T. Goldstone的"使用P4G.py从命令行进行演示"中的代码。
如果您使用的是P4V,则可以通过图形方式进行:
这就是我用的:
同一客户需要2.1秒 您还可以使用cstat命令: p4帮助cstat
对于认真的构建(正在准备进行测试的构建),请明确指定所需的标签或变更列表编号,与标签同步,并将其嵌入到构建工件中。 如果未提供更改列表(或标签),请使用 我认为您无法完全实现所需的功能,因为一般而言,整个工作区不会同步到特定的变更列表编号。可以将某些文件显式同步到较旧的版本,然后只有一个变更列表编号是没有意义的。这就是为什么需要新的 关于评论:是的,我的答案供配置管理器使用,以准备进行质量检查。我们的开发人员通常不会在构建过程中进行同步;他们会在提交之前进行构建-这样他们可以确保所做的更改不会破坏构建或测试。在这种情况下,我们不必费心嵌入存储库标签。 使用您的方法,您假设整个工作区在上次提交更改列表时已同步到头部,并且该更改列表包含了所有打开的文件。在这些假设中容易被误解,很难被??发现,并且在浪费的时间方面损失惨重。另一方面,解决问题很容易,没有缺点。而且由于可以明确指定变更列表编号,所以无论您需要哪个修订版本或代码库的更改速度都没有关系。 对于整个软件仓库(不仅仅是您的工作空间/客户端)
完成工作,只是告诉最后一个变更列表。 到目前为止,我发现最好的方法是将您的同步到要构建的任何更改列表,然后使用更改-m1 //...#必须获取当前的本地更改列表(修订版)。 p4同步@CHANGELIST_NUM 为您提供可以在任何地方使用的变更列表编号。我目前正在寻找一种比p4更改更简单的方法-m1 //...# have。 我不确定您是否能找到所需的答案,但我遇到了类似的问题。目的是在记录器中编写项目的特定版本。问题在于,当我们创建自己的makefile时,整个构建系统由我们的配置管理控制。这意味着所有说"同步到某物然后做某事"的解决方案都无法真正起作用,并且我不想在每次提交时手动更改版本(确定错误的可靠来源)。 |
最新内容
相关内容
linux系统中剪切命令?
linux系统中剪切命令?,工作,系统,地址,信息,命令,目录,管理,标准,工具,文件,Linux基本命令行操作(一)linux系统常用操作命令linux系统常用操作linux系统ll命令?
linux系统ll命令?,信息,系统,数据,时间,文件,命令,权限,观察,第一,数字,用ll命令查看在第一字段显示如下:+lrwx---+说明这个文件的类型为(+...linux命令行系统录屏?
linux命令行系统录屏?,工具,地方,系统,工作,地址,命令,服务,环境,状态,目录,在linux命令行下执行命令后结果太长屏幕不能看完全怎么办?1、Ctrl终止linux系统的命令?
终止linux系统的命令?,系统,传播,命令,电脑,软件,工作,管理,情况,进程,指令,linux系统如何停止指令linux系统停止指令步骤:输入ps命令获取进程linux系统光盘命令?
linux系统光盘命令?,系统,工作,信息,数据,地址,命令,一致,名称,盘中,传播,如何在Linux系统下挂载光盘如果Linux系统装的是虚拟机,有可能是光驱linux系统反回命令?
linux系统反回命令?,密码,系统,终端,环境,名称,状态,信息,电脑,一致,命令,linux,按了ctrl+alt+F1,进入了类似纯命令行的界面,让输入login信息,linux代码同步命令?
linux代码同步命令?,时间,服务,系统,地址,代码,网络,通信,图片,风险,管理,linux系统时钟同步命令1、因此使用ntpdate同步可能会引发风险,因此该linux同步代码命令?
linux同步代码命令?,时间,系统,通信,网络,标准,图片,服务,代码,线程,单位,Linux下线程同步的几种方法1、线程同步的方式包括:互斥锁、读写锁、命令查看linux系统?
命令查看linux系统?,系统,信息,第一,设备,名称,软件,状态,工具,电脑,命令,如何查看linux系统CPU信息cpu信息记录在/proc/cpuinfo中。linux怎么linux使用命令的方法?
linux使用命令的方法?,系统,信息,工具,标准,数据,命令,左下角,目录,文件夹,图标,linux的cd命令的使用方法1、cd ~:回到用户家目录。注:这得看你linux系统ln命令?
linux系统ln命令?,位置,信息,系统,名称,名字,发行,盘中,文件,链接,命令,如何使用ln命令在linux下创建快捷方式1、方法:右键单击桌面的空白处,在linux系统命令pwd?
linux系统命令pwd?,密码,系统,命令,目录,工作,环境,工具,位置,不了,路径,锁定linux账号的命令是1、锁定Linux用户的命令是passwd+用户名。这个