【发布时间】:2021-04-11 14:57:29
【问题描述】:
我正在尝试将我的个人 Perforce Server 从 Windows 迁移到 Linux (Ubuntu 20.04),但在 Linux 服务器上从 Windows Server 重放检查点文件时遇到问题。
我想继承 Linux 的案例处理,根据 Perforces 的文档,这应该可以使用 p4migrate 工具来实现。我已经在 Linux 服务器上安装了该工具并按照文档步骤进行操作(此时已多次),但仍然遇到以下错误。
请注意,当使用 p4migrate 创建编辑的检查点文件时,它报告没有报告的案例问题/冲突。在第一次尝试时,它还成功地重命名了所有存档文件以匹配 Linux 的案例处理(我已经更改了行尾)。
这只是似乎无法恢复的数据库。我正在使用以下命令从 p4migrate 创建的检查点文件重建数据库:
p4d -r /mnt/Disk/PerforceServer/root -jr checkpoint.4.edited
但这样做会产生以下输出:
Perforce db files in '/mnt/Disk/PerforceServer/root' will be created if missing...
Recovering from checkpoint.4.edited...
Perforce server error:
Journal file 'checkpoint.4.edited' replay failed at line 5145!
Case-handling mismatch: server uses Unix-style (-C0) but journal flags are Windows-style (-C1)!
我做了几次尝试,但结果总是一样。它创建所有 .db 文件,但随后几乎立即停止。我自然而然地检查了它报告的行,并用细齿梳检查了检查点文件(大约 45mb),但没有发现任何问题。
我怀疑这里还有其他东西在起作用,但似乎没有办法获得更详细的日志记录。有没有人遇到过这个问题并找到了解决方案?
附录:我还运行了 p4d -jv checkpoint.4.edited,它只报告了以下内容:trailer found on line 196624(文件末尾)
【问题讨论】:
-
这听起来像是在第 5145 行的检查点中,将检查点编码为不区分大小写。您能否在问题中包含该行?了解所涉及的 P4D 版本也很有帮助。
-
@Samwise 这是第 5145 行,与文件中的大多数其他行几乎相同。上次发生这种情况时使用了不同的检查点文件,它在不同的行上中断,但仍然在 ~5000 行附近。
@pv@ 0 @db.integed@ @//Stormtide/HTGame/HTGame/Plugins/ST_Inventory/Source/ST_Inventory/Private/Components/ST_InventoryComponent.cpp@ @//Stormtide/HTGame/HTGame/Plugins/ST_Inventory/Source/ST_Inventory/Private/Inventory/ST_InventoryComponent.cpp@ 0 1 8 9 15 1147我正在使用每个平台可用的最新版本(Windows 上为 2020.2.205.7778)
标签: linux windows server migration perforce