【问题标题】:How to obliterate a changelist in perforce如何在 perforce 中删除更改列表
【发布时间】:2017-07-25 05:21:58
【问题描述】:

我似乎无法弄清楚是否有办法在 perforce 中消除更改列表。 p4 obliterate 是关键,但它似乎需要文件名。在我错误的更改列表中,有很多文件,因此输入它们是不可行的。我可以通过更改列表删除吗?我确实看到了类似的question,但它们似乎是通过文件名+修订来完成的。

请注意,在我的情况下,我正在删除最新提交的内容,所以我知道它之后没有任何内容,这就是它安全的原因。我只需要通过更改列表而不是按名称获取 100 多个文件。

【问题讨论】:

  • 您是否真的需要从历史记录中删除更改列表(例如,因为您签入了包含硬编码密码的文件)?如果您只是想撤消更改(因为它破坏了某些东西),您可以将其撤消。 kb.perforce.com/article/14/backing-out-submitted-changelists
  • @jamesdlin 实际上我签入的文件根本没有变化,它们与以前的修订版相同。文件有新修订但没有变化时,它只是不干净。

标签: perforce


【解决方案1】:

试试这个:

p4 obliterate //...@=changelist

//... 允许它在任何文件上运行(非常危险!),但 @= 修订说明符将其限制为该更改列表中包含的特定文件。

【讨论】:

  • 所以我想如果我这样做 p4 obliterate //...@=changelist 它应该让我知道它会在不提交的情况下做什么?
  • 是的,如果您不提供 -y,您将预览将要删除的内容。
【解决方案2】:

作为一个完整的答案,您需要在命令行上执行此操作,我在 UI 中看不到任何方法。

要调用命令行,请转到 perforce 安装文件夹(通常是 C:\Program Files\Perforce)并在此处启动 windows 命令窗口。

您需要为命令行设置环境,以便它可以与您的源数据库一起使用。我希望有一种方法可以从 Perforce UI 开始,但我在那里找不到。这样,它可能已经为您设置了环境变量。

运行p4 Set 命令查看环境变量及其当前值(本质上是强制设置)。

您可能需要更改p4portp4passwd

p4 set p4port=<your-src-server>:1666 // to configure server

如果需要,类似地更改 perforce 密码和用户名。现在你应该可以通过命令行连接到 perforce 服务器了。

现在你发出 obliterate 命令。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2017-09-24
    • 1970-01-01
    • 2010-11-27
    • 1970-01-01
    • 1970-01-01
    • 2015-04-16
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多