在 perforce 中重命名工作区根路径

Renaming workspace root path in perforce

我在 Windows 上的同一目录中有两个 perforce 工作区根目录。例如:

C:\Perforce_windows_workspaces\wkspc1

C:\Perforce_windows_workspaces\wkspc2

我需要重命名 文件夹 "Perforce_windows_workspaces" 为更小的名称(比如 p4wkspcs),这样到根目录的新路径将是:

C:\p4wkspcs\wkspc1

C:\p4wkspcs\wkspc2

分别

直接在文件系统中重命名文件夹会导致根映射出现任何问题吗?如果是这样,我怎样才能在 P4V 应用程序中反映这些变化?

Perforce 工作空间的定义形式包含可以更改的根目录字段。

要在不从 perforce 传输所有数据的情况下更改工作区根目录,请执行以下步骤:

  1. 转到 P4V,查看 > 工作区。然后右键单击工作区并选择 "Edit workspace '...'"。 更改工作区根目录并在不同步工作区的情况下确认更改。 (系统会提示您同步工作区;取消该操作)
  2. 重命名文件系统上的目录
  3. 执行同步检查以验证一切正常。

    p4 sync -n //client.name/...

  4. P4V 仍会在工作区视图中显示旧路径。转到"Search->Filter Workspace->Workspace Root",它将被更新。

步骤 1 和步骤 2 的顺序无关紧要。

从命令行:

p4 -c wkspc1 --field Root=C:\p4wkspcs\wkspc1 client -o | client -i
p4 -c wkspc2 --field Root=C:\p4wkspcs\wkspc2 client -o | client -i
ren C:\Perforce_windows_workspaces C:\p4wkspcs

这会处理实际的重命名——如果您有大量的工作区,这显然很容易编写脚本。如果您使用的是旧客户端并且 --field 不起作用,您可以执行前两个命令:

p4 -c wkspc1 client
p4 -c wkspc2 client

并手动编辑 "Root:" 字段。

要仔细检查您没有打错字以及重命名是否正确,请执行以下操作:

p4 -c wkspc1 diff -sd
p4 -c wkspc2 diff -sd

这些都应该 return 没有输出(它们正在检查您之前同步的任何文件是否不再存在于它们的预期位置)。


从 P4V 开始,您将需要单独切换到每个工作区并编辑工作区以更改 Root 字段。您不能从 P4V 重命名文件夹本身;打开资源管理器 window 并在那里进行重命名。一切都完成后,您可以使用 "Reconcile" 或 "Folder Diff" 来验证正确性。