#perforce #history
#волей-неволей #история
Вопрос:
У меня есть набор файлов, которые кто-то намеревался интегрировать, но случайно просто «добавил», из-за чего вся история была потеряна.
К сожалению, это произошло давным-давно, поэтому такие вещи, как просмотр по времени и история, заканчиваются на этой копии.
Есть ли способ исправить эту ошибку? Могу ли я каким-то образом сообщить волей-неволей «это изменение на самом деле было интегрировано из этого файла в этот список изменений»?
Ответ №1:
Единственный способ сделать это задним числом — взломать контрольную точку — вам нужно будет синтезировать «добавить из» db.integed
записей.
https://www.perforce.com/perforce/doc.current/schema/#db.integed
При взломе контрольных точек это относительно просто, поскольку вам нужно добавить только в одну таблицу (можно повесить «добавить из» записей на существующую версию «добавить»), но вам нужно быть достаточно уверенным в p4d -j*
командах Perforce и модели данных 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
для применения вашего взломанного журнала к реальной базе данных).