При хранении двоичных файлов встает два вопроса. Первый: CVS по умолчанию преобразует коды конца строк между канонической формой, в которой они хранятся в репозитории (только символ новой строки) и формой, соответствующей операционной системе клиента (например, возврат каретки, за которым следует перевод строки под Windows NT).
Второй вопрос -- в двоичном файле могут оказаться данные, похожие на ключевое слово (see section Подстановка ключевых слов), так что эта подстановка должна быть выключена.
Ключ командной строки `-kb', доступный при использовании некоторых команд CVS, позволяет убедиться, что ни преобразование концов строки, ни подстановка ключевых слов не производятся.
Вот пример создания нового файла с использование флага `-kb':
$ echo '$Id$' > kotest $ cvs add -kb -m"A test file" kotest $ cvs ci -m"Первое фиксирование; файл содержит ключевое слово" kotest
Если файл случайно будет добавлен без `-kb', можно
использовать команду cvs admin
для восстановления.
Например,
$ echo '$Id$' > kotest $ cvs add -m"A test file" kotest $ cvs commit -m"Первое фиксирование; содержит ключевое слово" kotest $ cvs admin -kb kotest $ cvs update -A kotest # Для не-UNIX систем: # Скопировать откуда-нибудь хорошую копию файла $ cvs commit -m "Сделать файл двоичным" kotest
Когда вы извлечете файл `kotest', он не станет двоичным,
потому что вы не зафиксировали его как двоичный. Команда
cvs admin -kb
устанавливает метод подстановки ключевых
слов по умолчанию для этого файла, но не изменяет рабочую копию
файла, которая у вас есть. Если вам нужно справиться с символами
конца строки (при использовании CVS на не-UNIX
системах), вам требуется зафиксировать новую копию файла, как
показано выше в команде cvs commit
.
Под UNIX достаточно выполнить cvs update -A
.
Однако, используя cvs admin -k
для изменения режима
подстановки ключевых слов, знайте, что этот режим не подчиняется
контролю версий. Это означает, что если, скажем, в старых
версиях пакета какой-то файл был текстовым, а затем в новых
версиях появился двоичный файл с тем же именем, то CVS не
обеспечивает способа извлечь файл в двоичном или текстовом режиме
в зависимости от версии пакета, которую вы извлекаете. Для
обхода этой проблемы хорошего решения не существует.
Вы можете установить значения по умолчанию, которые используют
команды cvs add
и cvs import
, для выяснения,
является ли файл текстовым или двоичным, основываясь на его
имени. Например, можно гарантировать, что файлы, чьи имена
заканчиваются на `.exe' являются двоичными.
See section Файл `cvswrappers'. В настоящий момент нет способа для определения,
является ли файл текстовым или двоичным, в зависимости от его
содержимого. Основная трудность при разработке такой возможности
--- неясно, как различить такие файлы, потому что способы сильно
различаются в разных операционных системах.
Go to the first, previous, next, last section, table of contents.