【问题标题】:Changing workspace clobber option directly from Perforce command line直接从 Perforce 命令行更改工作区破坏选项
【发布时间】:2013-04-29 11:19:16
【问题描述】:

如何从命令行更改 perforce 规范? 我想要做的是,我有一个工作区,其clobber 选项设置为noclobber(默认值)。现在我想把它改成clobber

我知道我可以直接通过p4v 进行操作,但我不希望那样做。我也知道,如果我运行p4 client,它将在文本编辑器中打开P4CONFIG 文件,我可以在其中将noclobber 更改为clobber 并保存文件并完成,但我也不希望那样。

请告诉我不使用p4v或不编辑P4CONFIG直接将noclobber更改为clobber的具体命令。

【问题讨论】:

  • 当您调用“p4 客户端”时,您将编辑您正在使用的一个特定客户端的选项。它不会影响任何其他客户端。为什么在你的情况下这还不够?我不知道有其他方法可以做到这一点。

标签: perforce perforce-client-spec


【解决方案1】:

如果您想避免重复打开文本编辑器,您可以通过一点点sed 来实现您的目标,如下所示:

p4 client -o | \
sed 's/ noclobber/ clobber/' | \
p4 client -i

【讨论】:

  • 我无法在 Win 7 命令行提示符中运行此命令。这是一个 windows 命令,还是我应该制作一个 bat 文件并运行它?
  • @Niyojan,这是 shell(通常是 bash)命令。您可以从 Windows 上的任何bashzsh 运行它。例如,您可以使用 git-scm.com/download/win 中的 bash。或者您甚至可以使用更强大的cygwin.com(我建议使用 64 位版本以避免 32 位版本在 64 位窗口上出现问题)。
  • 您也可以只下载适用于 Windows 的 sed 的副本,该副本适用于任何 shell,包括 cmd。谷歌搜索“sed for windows”让我成为第一个热门,似乎是合法的:gnuwin32.sourceforge.net/packages/sed.htm
【解决方案2】:

使用 Perl、Python、Ruby 甚至 Powershell 编写脚本非常容易。这是 Powershell 中的单行代码:

p4 client -o | %{$_ -replace "noclobber", "clobber"} | p4 client -i

【讨论】:

  • 太好了,谢谢,这很好用,我为此创建了一个 python 脚本。
  • 这是完美的。非常感谢!
【解决方案3】:

最简单的解决方案:

P4EDITOR='sed -i s/noclobber/clobber/' p4 client

【讨论】:

  • 您能否添加更多有关P4EDITOR env var 的详细信息?它究竟是如何工作的?
  • P4EDITOR 定义了用于编辑所有 p4 命令的表单的编辑器程序。如果您使用此方法,请务必在之后取消设置,否则您将基本上无法使用p4。 IMO 最好只做p4 client -o | sed s/noclobber/clobber/ | p4 client -i
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2010-09-13
  • 1970-01-01
相关资源
最近更新 更多