Ошибка при интеграции удаленного файла в perforce

Родительский проект выдает следующую ошибку при попытке интегрировать дочерний проект.

Исключение: ‹ ФАЙЛ > - невозможно интегрировать (уже открыт для удаления)

По какому сценарию это происходит?


person crk    schedule 06.07.2012    source источник


Ответы (2)


Когда Perforce интегрирует изменения, он пытается разрешить входящие изменения в файлах в локальной рабочей области. Это исключение в основном говорит о том, что оно не может попытаться разрешить изменения для данного файла, поскольку файл был помечен как удаленный в локальной рабочей области, поэтому ему негде его разрешить.

Есть флаги, которые вы можете передать команде интеграции, чтобы разрешить продолжение интеграции в любом случае. Тем не менее, я обнаружил, что интегрировать изменения поверх текущих изменений, как правило, не рекомендуется, поэтому я бы рекомендовал завершить (или отложить) текущие изменения, а затем попытаться выполнить интеграцию.

person Caleb Huitt - cjhuitt    schedule 06.07.2012
comment
Когда происходит отметка об удалении в локальной рабочей области? Я пытаюсь воспроизвести это, когда сталкиваюсь с этим в наших автоматизированных системах сборки. Я пробовал случаи, когда (а) ChildA и ChildB удаляли один и тот же файл и отправляли его. Затем Родитель объединяет оба проекта вместе. (b) Родительская синхронизация удаленного файла с родительской, а затем интеграция одного из дочерних проектов, которые также удалили тот же файл. Но я не мог воспроизвести ошибку. - person crk; 06.07.2012
comment
@crk: пометка как удаленная происходит, когда вы принудительно сообщаете, что удаляете файл, но до отправки изменений. Он удалит файл из локальной рабочей области и пометит его как ожидающий удаления в списке изменений, но, как и другие ожидающие изменения, ничего не сохраняется навсегда, пока вы не отправите изменения. - person Caleb Huitt - cjhuitt; 10.07.2012

Этот вопрос возникает первым в Google при поиске «уже открыто для удаления», поэтому я подумал, что могу опубликовать способ обойти это, если вы не интегрируетесь, а просто пытаетесь отменить свое собственное удаление:

cp file file.bak  # Make a backup of the file
p4 revert file    # Revert the file
mv file.bak file  # Recover from backup
p4 edit file      # Open the file for edit
person Alexander Taylor    schedule 21.10.2015