如何在Perforce中从更改列表中删除文件而不丢失修改?

16

我不小心创建了一个新的更改列表,其中包含来自WORKSPACE而非DEPOT的文件,现在在更改列表中显示了4500个修改过的文件(所有dll、pdb等文件以及我实际编辑的文件)。

我正在使用p4v GUI。 有没有办法撤消此操作,而不必备份所有文件,然后使用Perforce将它们还原,放回并使用DEPOT创建一个新的更改列表。

非常感谢,希望有解决方法:)。


哎呀,听起来你是在没有检出文件的情况下修改了它们(通过 p4 edit),对吧?祝你好运。我不会在我的客户端规范中设置 allwrite 选项,而是每次需要重新构建时,都会将所有 DLL、PDB 等文件检出以进行编辑,并在一个单独的变更列表中进行。我讨厌追踪那些被修改但未被检出以供编辑的文件。但这并不是你问题的答案。 - bk1e
5个回答

36

我不确定这是否符合您的要求,但是您可以从变更列表中删除已检出的文件而不移除编辑内容:

p4 revert -k -c changelist# //...

谢谢!!我使用了:p4 revert -k -c default/...。消息是“filename#none - 已添加,已废弃”。 - Engineer
2
看起来正确的语法是 "p4 revert -k -c default //..."。 - Cameron
1
@Cameron 在你的情况下,默认是变更列表#。 - John K

7
如果您还没有提交changelist,并且在“待处理”选项卡中changelist中的所有文件都标记为'+',那么您可以点击changelist上的'Revert'按钮。只要这些文件被标记为添加('+'),它们将保留在您的工作区中。

4

有多种方法。

从菜单栏中选择View->Pending Changelists以查看您的挂起更改列表选项卡。您应该会看到所有已检出的文件按更改列表分组。进入所需的更改列表并展开到文件。

您可以Ctrl+左键单击多个文件,然后在其中一个文件上右键单击并选择Move to another changelist...

您也可以选择Submit...文件,当对话框出现时,每个文件旁边都会有复选框。取消选择不想提交的文件即可。

正如其他回答者所提到的,如果您不小心将文件添加到Perforce中,而又不想删除它们(只有在执行p4 deletep4 move命令时才会真正删除文件),您确实可以还原这些文件。


3
如果更改列表中有很多文件,Perforce不会列出所有的文件,它只显示文件数量。有没有办法强制Perforce显示所有文件? - Thor
3
@Thor,尝试右键单击更改列表,然后选择“编辑更改列表”。我认为这样会显示所有更改项。我不是完全确定,因为我现在没有一个大的更改列表。 - Chance
2
@Thor 它不允许你修改文件,只能显示它们。 - tatigo

1
我遇到了类似的问题,我使用的解决方法如下: 1. 使用p4v导航到工作区 2. 在其中一个文件夹或文件上右键单击,然后点击“在此处打开命令窗口” 3. 运行以下命令以分别查看dll或pdb p4 revert //....dll p4 revert //....pdb
谢谢, Lyon

0

如果你在P4V中右键单击待处理变更清单,应该会有一个选项叫做还原未更改的文件,它正是字面意思。


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