0

我正在使用 p4v。当我在工作区中签出某些文件时,p4v 会在日志中显示下一个命令: p4 edit -c default d:\p4\depot...\file.txt

我需要在 cmd 中做同样的事情所有环境变量都设置为:

P4CHARSET=utf8 (set -s)
P4CLIENT=workspace_name (set)
P4PASSWD=passwd (set)
P4PORT=port (set)
P4USER=name (set)

然后我使用相同的命令“p4 edit -c default d:\p4\depot...\file.txt”,p4 输出://depot/.../file.txt#5 - open for edit 如果我签入 p4v 我看到该文件已在仓库中签出,而不是在我的工作区中。

这个问题的解决方案是什么?

4

1 回答 1

2

Perforce 中的文件在工作区和软件仓库之间映射,软件仓库和工作区路径可以互换使用。当使用“p4 edit”“签出”文件时,会发生以下情况:

  1. 您的本地文件 (d:\p4\depot...\file.txt) 可写。
  2. 仓库文件 (//depot/.../file.txt#5) 被标记为您正在打开。
  3. Perforce 服务器“记住”了所有这些。

也就是说,该文件确实在您的工作区和软件仓库中都被“签出”——两者之间没有区别。这是同一个文件。如果您查看您的工作区文件,您应该会看到它现在是可写的(这是您的工作区中它已签出的信号)。您可以从命令行运行“p4 opens”来查看当前工作空间中打开了哪些文件。如果您不确定 depot 路径如何映射到单个文件的本地路径,您可以运行“p4 have”来查看您在工作区中的哪个位置拥有给定的 depot 文件以及您拥有的版本。

当你提交时,服务器会知道 depot 文件需要更新,它会知道新的内容将来自你的工作空间文件。如果 depot 文件有新修订版(比 #5 更新),服务器将安排解析,以便您可以在提交前合并新内容。

换句话说,没有“在仓库中签出”而不是在工作区中签出这样的事情。根据定义,“签出”的仓库文件被签出到特定工作区。

于 2014-09-24T22:42:13.387 回答