【问题标题】:Perforce - Receiving error "Can't update committed change" when trying to append to change list descriptionPerforce - 尝试附加到更改列表描述时收到错误“无法更新已提交的更改”
【发布时间】:2020-01-16 04:59:04
【问题描述】:

在 Perforce 中,我想更新一些文本信息并将其附加到已在 depot 中提交的现有更改列表描述

我的文本信息示例: “[版本 1.0]”

我正在尝试通过 Perforce 的 CLI 执行此操作。我正在使用这个命令

p4 -F 描述="[版本 1.0]" 更改 -o 520760 | p4改变-i

但执行此命令后,我收到此错误:

更改规范中的错误。无法更新已提交的更改 520760。

命令中是否存在无效的内容,或者我是否遗漏了任何其他内容以使其正常工作?谢谢。

注意:我查看了 Perforce 的文档,发现他们提供了“p4 change -f”命令,但这需要我没有的管理员或超级用户权限。

【问题讨论】:

  • 删除了标签p4vperforce-client-specperforce-integrateperforce-stream,因为这些标签都与这个问题无关。 :)
  • @Sam Stafford 好的,谢谢。

标签: perforce


【解决方案1】:

如果您拥有更改,则可以使用 change -u 标志更新说明。 (您需要change -f 命令来更新其他人的更改,或者更新描述以外的字段。)

如果您是作为一个普通人来做这件事,则无需尝试弄清楚如何编写一个聪明的 shell 脚本来做到这一点。运行:

p4 change -u 520760

这将弹出一个编辑器。进行编辑、保存、退出。简单!

如果您需要以非人类的身份执行此操作,我相信语法是:

p4 --field "Description+=[version 1.0]" change -o 520760 | p4 change -iu

但我实际上并不肯定+= 会在那里做你想做的事;你可能需要试验一下。

【讨论】:

  • - 是的,这样做是为了自动化。不幸的是,我不拥有更改。我使用“p4 change -if”尝试了您的命令,但收到“您无权执行此操作”。这是否意味着如果没有管理员或超级用户权限就无法完成?
  • 正确。您的自动化用户需要被授予管理员权限才能与其他用户提交的更改列表混淆。也许另一种方法是在描述提交之前编辑描述的触发器?
  • 谢谢。管理员是唯一可以设置此触发器的人吗?
  • 是的,设置触发器需要 super 访问权限,因为触发器可以直接访问服务器计算机并且可以与任何正在进行的命令混淆——触发器本身不会一定需要有管理员/超级用户凭据! (例如,触发器可以在保存时直接修改更改描述的文本,而不是运行p4 change -f 命令。)
  • 完美!再次感谢您的帮助。
猜你喜欢
  • 2019-12-11
  • 2018-08-16
  • 1970-01-01
  • 2015-04-24
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2019-12-09
  • 1970-01-01
相关资源
最近更新 更多