Perforce: Сохранение Perforce от изменения формата текстового файла

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

Чтобы уточнить: если я отредактирую и внеся изменения в файл *.txt на моем оконном клиенте, новые строки будут иметь CR + LF в соответствии с форматом DOS. Но если я P4 синхронизируется с клиентом Unix, он будет иметь только LF. Мне нужно, чтобы Perforce сохранял формат как есть, независимо от того, где живет клиент Perforce.

Тем не менее, у меня есть обход: задайте тип файла как двоичный; и/или создать ветку с текстовыми файлами, установленными как "текст", и периодически интегрировать обратно в основную линию, где текстовые файлы устанавливаются как "двоичные". Но это слишком сложная работа для того, что должно быть очень простой проблемой.

Наконец, я нахожусь в Perforce клиенте Windows 2006.2.

Спасибо заранее.

Ответы

Ответ 2

Клиент Perforce может корректно обрабатывать строку при синхронизации на разных платформах, если у вас есть опция LineEnd, установленная правильно на вашем клиенте. Возможно, вы ошиблись? Откройте свои спецификации клиента и установите опцию LineEnd в соответствии с вашими потребностями.

Обратитесь эту статью KB на свой веб-сайт для получения дополнительной информации. Вот выдержка:

На стороне сервера процессы Perforce все текстовые файлы с использованием Unix-стиля LF линия окончаний. Хотя Perforce хранит архивные файлы сервера на диске в рабочая строка операционной системы (CR/LF on Windows, LF в Unix), все строки-окончания нормализуются к Unix-стиле LF line-endings для внутреннего Perforce Операции сервера, такие как p4 sync, p4 submit и p4 diff.

На стороне рабочего пространства клиента Perforce определяется обработка строк по глобальному варианту для каждого clientspec. Когда вы синхронизируете текстовые файлы в рабочее пространство клиента с синхронизацией p4 или отправьте их обратно на Perforce Server с p4 submit, их окончание строк преобразованный, как указано в раздел спецификаций клиентов.

Ответ 3

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

Все наши клиенты - это ПК с ОС Windows, но Cygwin входит в Perforce Depot. Cygwin - это реализация Unix в Windows и требует, чтобы текстовые файлы использовали LF для окончаний строк.

Возможным решением для более старых версий Cygwin является установка корня с использованием опции "текст", что означает, что файлы могут иметь окончание строк CR + LF. Однако при обновлении до Cygwin 1.7.9 это больше не работало, так как mounts являются переходными, если они не записаны в /etc/fstab. Мне не удалось выполнить эту работу.

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

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

Ответ 4

При добавлении текстовых файлов, которые вы хотите считать бинарными для Perforce, используйте команду p4 add с опцией -t, чтобы переопределить таблицу сопоставления типов. См. Документацию здесь. Приведенный здесь пример p4 add -t binary file.pdf.

Ответ 5

Дайте файлам другое расширение.