Perforce:修复破碎的历史

问题描述 投票:1回答:1

我有一组文件,有人想要整合,但偶然只是“添加”,这失去了所有的历史。

不幸的是,这发生在很久以前,所以游戏中时光倒流视图和历史记录都会在该副本中结束。

有没有办法修复这个错误?我可以以某种方式告诉Perforce“这个变化实际上是这个变更列表中此文件的集成”吗?

perforce history
1个回答
2
投票

追溯性地执行此操作的唯一方法是通过检查点黑客攻击 - 您需要合成“添加”db.integed记录。

https://www.perforce.com/perforce/doc.current/schema/#db.integed

由于检查点黑客入侵这个相对容易,因为你只需要添加到一个表(从现有的“添加”转换中挂起“添加”记录就可以了),但你需要对Perforce的p4d -j*命令和Perforce的数据非常熟悉模型。请注意,为了保持一致性,您需要“添加自”和“添加到”记录(其中一个是另一个的反转)。

如果您对它完全陌生,最简单的方法是熟悉它的工作方式是启动测试服务器,通过执行以下操作创建“添加自”记录:

echo asdf > foo
p4 add foo
p4 submit -d "add"
p4 integ foo bar
p4 add bar
p4 submit -d "add from"

然后拿一个检查站(p4d -jc)并查看检查点文件,特别是db.revdb.integed之间的关系。这一切都非常简单,你可以应用相同的逻辑来合成你的真实软件仓库中添加的文件的db.integed记录(然后使用p4d -jr将你的黑客日记应用到实际的数据库)。

© www.soinside.com 2019 - 2024. All rights reserved.