2021-07-16:此答案可能已过时。
我有理由确定它在 2016 年是准确的,无论我使用的是什么版本的 Perforce(不一定是最新的)。但似乎这个问题或设计限制已在 Perforce 的后续版本中得到纠正。我不知道堆栈溢出的礼仪是什么——这个答案应该被删除吗?
2016 年回答
我觉得有必要添加一个答案,因为已接受的答案和其他一些答案存在我认为的一个重大问题:他们不理解只读查询命令和生成的命令之间的区别变化。
我不希望这个答案有任何功劳,但我希望通过遵循公认但恕我直言不正确的答案,它可以帮助其他人避免浪费时间和犯错误。
---+ 简介
在 perforce 工作区中查找所有未跟踪文件的最方便的方法可能是p4 reconcile -na。
-a 说“给我不在存储库中的文件,即应该添加的文件”。
-n 说“不做任何改变”——即试运行。 (虽然消息可能会说“opened for add”,但心理上你必须将其解释为“would be opens for add if not -n”)
可能是查找脱机时进行的所有本地更改的最便捷方式 - 不仅包括可能需要添加的文件,还包括可能需要删除的文件,或者在没有通过 @987654324 打开进行编辑的情况下已更改的文件@,是p4 reconcile -n。
几个答案提供了脚本,通常涉及p4 fstat。虽然我还没有验证所有这些脚本,但我经常使用类似的脚本来弥补 perforce 命令的不足,例如p4 reconcile -n - 例如我经常发现我想要本地路径而不是 Perforce 库路径或工作区路径。
---+警告
p4 status 不是其他版本控制系统上状态命令的对应物。
p4 status 不是只读查询。 p4 status 实际上找到了与p4 reconcile 相同的更改,并将它们添加到存储库中。 p4 status 似乎没有像 p4 reconcile 这样的 -n 试运行选项。
如果您使用p4 status,请查看文件并想“哦,我不需要这些”,然后如果您想继续在同一个工作区中进行编辑,则必须使用p4 revert 它们。否则,p4 status 添加到您的变更集中的更改将在下次检查。
除了本地工作区与仓库路径名的一些细节之外,似乎没有理由使用p4 status 而不是p4 reconcile -n。
我只能想象为非只读命令选择“状态”的人对英语和其他版本控制工具的掌握有限。
---+ P4V图形界面
在 GUI p4v 中,reconcile 命令查找可能需要添加、删除或打开以进行编辑的本地更改。幸运的是,默认情况下它不会将它们添加到更改列表中;但如果您不想提交更改,您仍可能需要在检查后小心关闭协调窗口。