Perforce не может разрешить перемещенные файлы - PullRequest
2 голосов
/ 22 июня 2019

Я пытаюсь интегрировать ветку с несколькими перемещенными файлами. Они не были изменены в целевой ветви, но выглядят как конфликты. При нажатии «принять исходный файл» файл автоматически исчезает из диалогового окна конфликтов, но все еще остается отмеченным как конфликт в списке изменений. Один из способов, которым я могу это исправить, - добавить флаг -Di, но это большая проблема в моей команде. Я также попытался разрешить p4 через командную строку, с тем же результатом (без ошибок или чего-то еще, но ничего не решается).

Что происходит и как я могу решить, сохраняя историю ходов?

1 Ответ

0 голосов
/ 24 июня 2019

Do:

p4 resolve -as

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

(обновление для добавления дополнительной информации из комментария)

Если после этого вы получаете сообщение об ошибке:

не может двигаться (открыт для удаления);должен принимать другие разрешения или игнорировать

, это означает, что файл был перемещен в источнике (что означает, что обычно resolve -as будет перемещать файл рабочей области, чтобы соответствовать ему), но файлв вашей рабочей области не может быть перемещено, потому что она уже открыта для удаления (вы не можете переместить удаленный файл).Это довольно редкая ситуация, которая возникает, если вы перемещаете файл, удаляете его, а затем пытаетесь разрешить эти две операции независимо (но без промежуточной отправки).В этом случае вы, вероятно, захотите специально «игнорировать» разрешение перемещения (как показано в сообщении об ошибке), выполнив:

p4 resolve -ay

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

p4 revert FILE
p4 integrate -b BRANCH FILE
p4 resolve -as
...