Perforce: восстановить сломанную историю - PullRequest
1 голос
/ 29 марта 2019

У меня есть набор файлов, которые кто-то намеревался интегрировать, но случайно просто «добавил», что потеряло всю историю.

К сожалению, это произошло очень давно, поэтому такие вещи, как представление с интервальной съемкой и история, заканчиваются на этой копии.

Есть ли способ исправить эту ошибку? Могу ли я как-то сказать Perforce «это изменение было фактически интегрировано из этого файла в этот список изменений»?

1 Ответ

2 голосов
/ 29 марта 2019

Единственный способ сделать это задним числом - это взлом контрольных точек - вам нужно синтезировать «добавить из» db.integed записей.

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

По мере взлома контрольных точекэто относительно просто, так как вам нужно добавить только одну таблицу (можно повесить записи "add from" на существующую версию "add"), но вы должны быть достаточно удобны с командами 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, чтобы применить взломанный журнал к фактической базе данных).

...