Как обрабатывать изменения типа файла в Perforce?

Когда вы добавляете файл в Perforce, он пытается определить тип файла (текстовый, двоичный, utf16 и т. д.). Он хорошо с этим справляется, но, по-видимому, никогда больше не проверяет тип файла после первоначальной отправки в систему контроля версий. Недавно коллега внес изменение в текстовый файл, преобразовав его в Unicode (utf16). Perforce не распознал это и по-прежнему считал, что это тип text, поэтому, когда другие извлекали файл, он был поврежден.

Мы устранили проблему, повторно отправив файл и явно изменив тип файла на utf16, но предпочли бы, чтобы это происходило автоматически. Есть способы заставить его всегда использовать определенный тип кодировки, но я не знаю, нравится ли мне эта идея. Кто-нибудь сталкивался и нашел решение этой проблемы?


person raven    schedule 05.11.2008    source источник


Ответы (1)


Техническая поддержка Perforce сказала следующее:

Perforce не проверяет содержимое файла при отправке редактирования.

Проверка содержимого каждого отдельного файла потенциально очень затратна. «текст» и «utf16» - не единственные типы файлов, на которые следует обратить внимание, например, файл потенциально может изменить тип с «текстового» на «двоичный».

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

По этим причинам Perforce будет определять тип файла только при добавлении файла и учитывать «карту типов» и параметр команды «-t».

С другой стороны, вы можете предотвратить повторение вашей ситуации, используя триггер «change-content». Этот триггер проверит содержимое файла и сравнит его с указанным типом файла, отклонив любую отправку, создающую несоответствие.

person raven    schedule 05.11.2008
comment
Может ли кто-нибудь указать, как это сделать? Я не знаком с триггерами или проверкой содержимого на предмет типа текста. - person Alan Baljeu; 05.12.2011