我设置了perforce客户端,并且在尝试从客户端根目录的子目录中执行“p4 edit file.txt”时出现问题,其中file.txt是该目录本地的签入文件。换句话说,如果我做“p4 have”,我会在列表中看到“//depot/folder/file.txt#2 - /proj/folder/file.txt”。 p4同步似乎很好。但是,“p4 edit file.txt”会给出错误“文件不在客户端上。”
我最终通过使用软件仓库名称获得了p4编辑工作。 “p4 edit //depot/folder/file.txt”DID工作,奇怪的是它修改了本地文件以具有写入权限。
知道问题是什么吗?通过引用本地文件名,我在同一系统上有其他客户端,可以按照您期望的方式工作。
答案 0 :(得分:3)
我使用叠加映射遇到了这样的问题(客户端视图中带有前导加号的条目。
我也通过更改客户端视图遇到了这样的问题,但之后没有执行完整的“p4同步”来重新安排工作站上的所有文件以匹配更新的视图。
你有没有适合这两种场景?
您是否尝试过运行'p4 where file.txt'和'p4 where //depot/folder/file.txt'?通常,该命令对于确定命令行上的文件名语法未成功解析为存储库文件名的原因非常有用。
答案 1 :(得分:1)
我有一个类似的问题,我想在这里记录它,因为它是一个追踪的bugger,谷歌搜索可能会引导有相同错误的人。
我有一个分支,让我们调用它// depot / foo然后我创建了另一个分支来生成一个变体,称之为// depot / foo_bar。从foo分支foo_bar的步骤:
p4 branch foo_bar
要创建分支规范,请
p4 integrate -b foo_bar
p4 submit
我还将foo_bar添加到我的客户端工作区。
在此之后,我可以在P4V中的foo_bar分支上编辑,访问,等等,但是我尝试使用p4的任何命令行命令都得到错误'文件不在客户端'。
要清楚 - 在P4V中工作 - 在p4命令行中的“不在客户端上的文件”。
事实证明,分支规范中存在错误,我添加了额外的'。' e.g。
View:
//depot/foo/... //depot/foo_bar/....
我尝试删除虚假的句号并重新整合。这导致命令行工作正常,但P4V有两个分支中的每个文件的副本,一个普通文件和一个带有'。'的文件名。在末尾。再次,要清楚,第一次文件看起来很正常 - 没有虚假'。'在文件名上,重新集成后 - 文件数量增加一倍但仅在p4v库视图中 - 磁盘上工作区中每个文件只有一个副本。
最后,我删除了分支并从头开始。
系统配置