如何使用 P4V 将文件夹移动到另一个更改列表?

How can I move a folder to another changelist using P4V?

我不小心在我的默认更改列表中添加了一些我不想提交到服务器的文件夹。如何将这些更改移动到另一个更改列表,或将它们从更改列表中删除而不影响磁盘上的文件?

我已经创建了一个新的更改列表并将一些单独的文件/更改移动到此列表,但该文件夹包含许多自动生成的文件,逐个文件执行这将花费太长时间。

我也考虑过使用 "revert" 选项,但我认为其中一些文件之前可能已错误地添加到服务器。恢复似乎会将磁盘上的这些文件更改为以前的服务器版本。

从 P4V 中,您可以 multi-select 未决更改中的文件 window,然后将它们拖到新的更改列表中。如果它们都在同一个目录中,它们将被分组在一起,因为它是按软件仓库路径排序的。

如果您只想让它们不被打开但又不想在磁盘上修改它们,请转到命令行并执行以下操作:

p4 revert -k //depot/path/...

-k 选项可让您 keep 您的本地文件。据我所知,这在 P4V 中不可用(因为它使您的工作区与仓库状态不同步,通常 是个坏主意)。

如果您在工作区中生成了不应该进入软件仓库的文件,您应该将它们从客户的视图中排除,例如:

View:
    //depot/... //myclient/...
    -//depot/path_to_generated_files/... //myclient/path_to_generated_files/...

这基本上会 "hide" 来自所有 Perforce 操作的这些文件;您将永远无法从此工作区路径添加文件,如果其他人将文件添加到该库路径,您将无法将它们同步到您的工作区。两个注意事项:

  1. 如果您的库中已有其中一些文件并且它们当前已同步,则将它们从您的视图中排除,然后同步您的客户端会将它们从您的客户端中删除。您可以使用 sync -k,与 revert -k 非常相似,以保留您的本地副本,同时告诉服务器您的客户端已正确更新。
  2. 如果您正在使用流,则可以通过添加 Ignored 路径为流的所有客户端执行此操作。

您可以在"Find File"中指定文件夹路径。

并使用“*”匹配包含字段中的所有文件。

现在您可以 select 使用 "Ctrl+A"

文件夹中的所有文件