恢复老一定得宝

  • 本文关键字:恢复 perforce recovery
  • 更新时间 :
  • 英文 :


由于硬盘错误,我最近丢失了很多文件,但仍然有一个包含特定项目文件的Perforce文件夹。问题是,它不是实际的项目文件,而是某种Perforce存储格式,文件以",d"结尾。和"v"

有什么方法可以从我拥有的恢复原始文件吗?

我想象Perforce可以将文件夹作为仓库打开,我可以简单地将文件放入新的工作区,但是我看不到任何打开现有仓库的方法。我试着编辑仓库的"版本文件的存储位置";指向文件夹,但仓库仍然显示为空。

我只是简单地使用过Perforce(与Git比较),所以我并不真正理解它是如何工作的。如有任何帮助或建议,我将不胜感激。

您缺少的是数据库(db.*文件),当您启动服务器时,它需要位于服务器根目录(P4ROOT)中。如果在P4ROOT中没有数据库文件,服务器将在启动时创建一个空数据库。数据库是Perforce服务器的真实来源,所以如果它是空的,服务器就是空的。

如果你有一个检查点(称为checkpoint.N的文件)和/或journal文件,其中包含重构数据库所需的元数据;使用p4d -jr checkpoint.N journal恢复服务器,然后可以使用p4 depot命令确保仓库的Map指向存档文件所在的目录,并使用其他命令检查实际文件(从p4 verify开始查看哪些文件在数据库中,但在存档备份中丢失/损坏)。

如果你的只有有存档文件,但没有数据库(也没有可以从中恢复的检查点或日志),你就处于一个更困难的位置,因为数据库是将存档文件映射到实际仓库结构的东西(例如,它包括所有的引用复制指针,这些指针构成了Perforce中的分支)。但是,您可以使用常规工具一次提取一个文件的归档文件的内容;,v文件是RCS格式的(使用co命令检索其内容),,d目录包含常规的旧.gz文件,每个版本一个。

使用深度魔法从归档文件中自己合成数据库也是一种可能性,但是RCS/CVS转换脚本太旧了,我预计需要大量的修改才能使它们与当前版本的Perforce一起工作。

相关内容

  • 没有找到相关文章

最新更新