perforce - Perforce:修复破碎的历史
问题描述
我有一组文件,有人打算集成,但不小心只是“添加”,丢失了所有历史记录。
不幸的是,这发生在很久以前,所以像延时视图和历史这样的东西在那个副本上结束。
有没有办法修复这个错误?我可以以某种方式告诉 Perforce“这个更改实际上是这个文件在这个更改列表中的集成”吗?
解决方案
追溯执行此操作的唯一方法是通过检查点黑客攻击——您需要合成“添加自”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.rev
db.integed
db.integed
p4d -jr
推荐阅读
- java - 解析 xml 文件时出现异常(3 字节 UTF-8 序列的字节 2 无效)
- python - 寻找一个 dnf 插件来访问 s3 托管的 repos
- c# - 使用 C# 以编程方式在 Xamarin 上编写对象 ID 名称
- javascript - 我想修改这个文本
- javascript - matNoDataRow 显示“未找到数据”,即使数据源(Angular 10.0.8)中有记录使用角度材料在多个选项卡之间切换
- github - 在 PR 合并后,有没有办法在另一个 repo 中的 PR 上触发 CircleCI 工作流程?
- sql - 在 PostgreSQL 中如何检索具有特殊字符和字母的列
- javascript - 使用 Javascript 显示每个按钮单击的 HTML 内容
- java - 将 Qute TypeSafe 模板与 Kotlin 一起使用时出现 java.lang.UnsatisfiedLinkError
- c++ - 在 Windows 上使用 _vscwprintf 处理 utf-8 编码字符串时失败