由于硬盘错误,我最近丢失了很多文件,但仍然有一个包含特定项目文件的Perforce文件夹。问题是,它不是实际的项目文件,而是某种Perforce存储格式,文件以",d"结尾。和"v"
有什么方法可以从我拥有的恢复原始文件吗?
我想象Perforce可以将文件夹作为仓库打开,我可以简单地将文件放入新的工作区,但是我看不到任何打开现有仓库的方法。我试着编辑仓库的"版本文件的存储位置";指向文件夹,但仓库仍然显示为空。
我只是简单地使用过Perforce(与Git比较),所以我并不真正理解它是如何工作的。如有任何帮助或建议,我将不胜感激。
您缺少的是数据库(db.*
文件),当您启动服务器时,它需要位于服务器根目录(P4ROOT
)中。如果在P4ROOT
中没有数据库文件,服务器将在启动时创建一个空数据库。数据库是Perforce服务器的真实来源,所以如果它是空的,服务器就是空的。
如果你有一个检查点(称为checkpoint.N
的文件)和/或journal
文件,其中包含重构数据库所需的元数据;使用p4d -jr checkpoint.N journal
恢复服务器,然后可以使用p4 depot
命令确保仓库的Map
指向存档文件所在的目录,并使用其他命令检查实际文件(从p4 verify
开始查看哪些文件在数据库中,但在存档备份中丢失/损坏)。
,v
文件是RCS格式的(使用co
命令检索其内容),,d
目录包含常规的旧.gz
文件,每个版本一个。
使用深度魔法从归档文件中自己合成数据库也是一种可能性,但是RCS/CVS转换脚本太旧了,我预计需要大量的修改才能使它们与当前版本的Perforce一起工作。