go to the first, previous, next, last section, table of contents.
обработка двоичных файловосновное применение для cvs -- хранить текстовые файлы. при работе с текстовыми файлами cvs может объединять ревизии, показывать различия между ревизиями в доступном для человека формате, и совершать прочие подобные операции. однако, если вы согласитесь отказаться от некоторых возможностей, то cvs может хранить двоичные файлы. например, можно хранить в cvs целый web-сайт, причем как страницы, так и двоичные картинки. вопросы использования двоичных файловесли вы постоянно работаете с двоичными файлами, то необходимость их использования очевидна. если же вы хотите хранить историю изменений таких файлов, возникают дополнительные вопросы.
одной из основных функций контроля версий -- просмотр различий
между двумя ревизиями. например, если кто-то еще создает новую
ревизию файла, то вам хотелось бы взглянуть на то, что изменилось
и выяснить, верно ли были сделаны изменения. для текстовых
файлов cvs обеспечивает такую функциональность с помощью
команды другая возможность системы контроля версий -- объединение двух ревизий. для cvs это происходит в двух контекстах. во-первых, пользователи редактируют файлы в различных рабочих каталогах (see section несколько разработчиков). во-вторых, объединения совершаются явно, используя команду `update -j' (see section создание ветвей и слияние). в случае текстовых файлов cvs может объединить изменения, совершенные независимо друг от друга, и сигнализировать о конфликте, если нужно. в случае двоичных файлов лучшее, что может сделать cvs -- выдать две различных копии файла и предоставить пользователю справиться с конфликтом. пользователь может выбрать ту или иную копию, или использовать специальный инструмент для слияния файлов этого конкретного формата, если таковой инструмент существует. заметьте, что необходимость слияния изменений вручную полностью зависит от аккуратности пользователя, поэтому может привести к ошибкам. если вышеописанный процесс нежелателен, лучшим выходом было бы отказаться от автоматического слияния. чтобы избежать слияний, являющихся результатом работы в разных рабочих каталогах, посмотрите обсуждение блокирующих извлечений (блокировок файлов) в section несколько разработчиков. чтобы избежать слияний, образующихся в результате использования ветвей, ограничьте использование ветвей. как хранить двоичные файлыпри хранении двоичных файлов встает два вопроса. первый: cvs по умолчанию преобразует коды конца строк между канонической формой, в которой они хранятся в репозитории (только символ новой строки) и формой, соответствующей операционной системе клиента (например, возврат каретки, за которым следует перевод строки под windows nt). второй вопрос -- в двоичном файле могут оказаться данные, похожие на ключевое слово (see section подстановка ключевых слов), так что эта подстановка должна быть выключена. ключ командной строки `-kb', доступный при использовании некоторых команд cvs, позволяет убедиться, что ни преобразование концов строки, ни подстановка ключевых слов не производятся. вот пример создания нового файла с использование флага `-kb': $ echo '$id$' > kotest $ cvs add -kb -m"a test file" kotest $ cvs ci -m"первое фиксирование; файл содержит ключевое слово" kotest
если файл случайно будет добавлен без `-kb', можно
использовать команду $ 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', он не станет двоичным,
потому что вы не зафиксировали его как двоичный. команда
однако, используя
вы можете установить значения по умолчанию, которые используют
команды go to the first, previous, next, last section, table of contents. |