Perforce: файл, измененный после разрешения - отредактируйте или отмените
Я делаю интеграцию в Perforce, и меня встречают со следующими:
p4 integrate -1 -d -i -t -r -b my_branchspec
//Foo/file.txt#6 - integrate from //Bar/file.txt#6
p4 resolve -am
/Foo/file.txt - merging //Bar/file.txt#6
/Foo/file.txt tampered with before resolve - edit or revert.
Кажется, что бы я ни делал, я не могу решить эту проблему: следующая прямая интеграция покажет подобное сообщение.
Файл представляет собой текстовый файл. Я могу подтвердить, что хеш MD5 для обоих файлов перед интеграцией одинаков. Какие другие проблемы могут возникать с этим файлом, которые я могу решить, чтобы исправить это надоедливое сообщение?
4 ответа
Делаем принудительную повторную синхронизацию (sync -f
) этого конкретного файла, а затем решить их (resolve -at
) (поскольку я не трогал файл), проблема исчезла.
Случайно ли вы работаете в смешанной среде ОС, в частности, Mac и ПК?
В настоящее время мы изучаем проблему, при которой файлы исчезают после разрешения (без ошибки!) На ПК. Тип файла - "яблоко" (но не должно было быть / не должно быть. К сожалению, у нас много таких файлов уже в хранилище).
Текущий обходной путь - сделать интеграцию на Mac.
Вы можете столкнуться с этой проблемой, если при попытке объединить изменения вы откажетесь от инструмента слияния и вместо этого воспользуетесь внешним редактором для применения изменений.
Я не знаю, как избавиться от ошибки, чтобы она просто приняла мою ручную "подделку".
Что, кажется, работает (и это небольшая PITA), так это
- Возьмите копию всего исходного дерева;
- Отменить все изменения в P4V;
- Сравните это с копией и повторно примените все изменения к дереву рабочей области P4V;
- В P4V выберите «Согласовать автономную работу»;
- Зафиксируйте изменения;
- Повторите попытку объединения необходимых наборов изменений;
- Разрешите все конфликты, выбрав «принять цель»;
- Зафиксируйте неизмененные файлы.
Последние шаги необходимы для того, чтобы P4V знал, что наборы изменений были объединены.
Надеюсь, кто-нибудь из Perforce это прочитает. Отсутствие возможности через графический интерфейс отменить ошибку «вмешательства» — это полная PITA.
Трудно сказать, что вызвало это - возможно, права на файл были изменены?
В любом случае, если вы вернетесь //Foo/file.txt, все будет в порядке.