如何在Perforce中克隆工作区

12
如何在Perforce中克隆我的同事的工作区?我知道要克隆的工作区名称,该怎么做?我尝试使用命令行'p4 client -t coworker_workspace_name'进行操作,但是出现了错误'Client '?coworker_workspace_name' doesn't exit.'。
谢谢。

1
它在“p4 clients”中显示,但无法在“p4 client -t”中使用?奇怪。如果您尝试“p4 client -o coworker_workspace_name”会怎样?此外,请尝试使用鼠标将工作区名称从“p4 clients”精确复制并粘贴到“p4 client -t”中,以防您犯了简单的拼写错误。 - Bryan Pendleton
2个回答

21
您可以通过 P4V GUI 客户端来完成此操作。我本想贴一张截图,但我需要至少10个声望 :'(
  1. 转到 Workspace 选项卡。
  2. 如果您找不到它,则可以通过“View -> Workspaces”来显示。
  3. 取消过滤选项,例如“仅显示可在此计算机上使用的工作区”(参见图)。您应该会看到您的同事的工作区(假设它在您连接的同一 Perforce 服务器上)。
  4. 右键单击它,并选择“从 '...' 创建/更新工作区”。
  5. 选择“创建工作区”单选按钮以创建新工作区。

1

使用Linux/Bash命令行:

p4 client -o -t 源客户端 目标客户端名称 | sed 's,Root.*,Root:\t期望路径,' | p4 client -i

p4 client -o -t 源客户端 目标客户端名称
复制源客户端并更改其名称的任何引用为“目标客户端名称”。
例如,“clientA”的所有引用都变成了“clientB”。

sed 's,Root.\*,Root\:\tDesired_Root_Path,'
将“期望根路径”替换为您想要的根目录。我喜欢将我的工作区分组到“/workarea/allmyworkspaces/”中,因此这就是我提供的内容。
逗号是sed命令的分隔符。

p4 client -i
从标准输入读取客户端规范,因此这将管道之前命令的所有输出到规范创建中。
要测试您的值是否正确,请在命令中省略此部分,所有内容都将打印到stdout,您可以进行检查。


很棒的答案!我编辑了一下,去掉了sed 's,Root.*,Root\:\tDesired_Root_Path,'命令中前面的转义\。原始的sed命令sed 's,Root.\*,Root\:\tDesired_Root_Path,'中在正则表达式前面的反斜杠会阻止它进行更改。还要注意Root是p4 client -o输出的一部分。只是提醒一下。 - undefined

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接