【问题标题】:Perforce: Any way to run 'p4 changes' without a clientspec?Perforce:有什么方法可以在没有客户端规范的情况下运行“p4 更改”?
【发布时间】:2016-05-26 18:15:51
【问题描述】:

我知道,一般来说,在运行 p4 changes 时,您需要指定客户端规范,以便 Perforce 可以正确限制结果。

然而,在 P4V 中,您可以在“未选择工作区”模式下操作,并且可以查看更改等。

我想通过脚本做类似的事情,但我能想到的唯一方法是:

  1. 创建一个临时的客户端规范,带有一些通用的//depot/... 映射
  2. 执行我的操作(例如:p4 changes blabla
  3. 删除临时客户端规范

但我不想一直创建/销毁所有这些临时客户端规范。 P4V 在其“未选择工作区”模式下似乎没有这样做。

有没有办法从命令行完成相同的操作?

【问题讨论】:

  • p4 changes -m1 //... 似乎对我有用,即使没有客户端集。你遇到了什么错误?
  • 嗯,也许我的问题真的归结为“我如何告诉 Perforce 使用 no clientspec”。如果我现在运行p4 client -o,它会给我一个基于一些默认选择的客户端规范,它映射了错误的东西。我想明确说明:根本没有客户规范,请
  • 运行p4 set,它不仅应该告诉你你的P4CLIENT设置为什么(你可能知道),而且还给你一个关于哪个mechanism的提示(环境变量,@987654329 @、注册表等)已用于设置它。然后撤消该设置。
  • “撤消该设置”是一个棘手的问题——我不想进行任何永久性更改(例如更改注册表设置、移动 .p4config 文件等)。我只想在没有客户端规范的情况下暂时运行。或者也许等效地,使用“一切”客户端规范。也许这是不可能的。
  • 如果您想暂时使用不同的客户端规范运行,请使用“-c”全局选项(请参阅“p4 帮助用法”),例如“p4 -c tempcli 更改”。但这对于“p4 changes”命令来说并不是必需的——请参阅我的回答。

标签: perforce perforce-client-spec


【解决方案1】:

如果您提供“p4 更改”命令的库路径,那么您的客户端规范根本就无关紧要。运行:

p4 changes //depot/...

或您将使用临时“//depot/...”映射客户端规范运行的任何命令。

只有当您使用明确与客户端相关的参数(例如本地文件路径、#have 修订说明符等)时,您的客户端规范才会发挥作用。如果您不使用相对于客户端的参数,那么您的客户端规范是否未定义、仅映射一个文件或映射整个世界都无关紧要,您将从“p4 更改”中获得相同的结果无论如何。

【讨论】:

  • 啊,看来是对的。我一直很困惑,因为我使用的是-c myclient//myclient/...,但是那个clispec 是空的。
猜你喜欢
  • 1970-01-01
  • 2018-05-03
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2011-01-04
  • 2012-02-02
相关资源
最近更新 更多