Управление исходными текстами. Часть 1. Краткое руководство по CVS
Шрифт:
Установка
Если Вы чувствуете себя комфортно в мире Open Source, можете скачать исходные тексты CVS с официальной web-страницыи собрать его для своей системы самостоятельно. Если же вам удобнее сразу получить исполняемый модуль, особенно если вы используете операционную систему Windows – проще всего взять готовый модуль на странице, посвящённой CVS для WindowsСкачайте архив, называющийся «Precompiled binaries w/o installer», и достаньте оттуда cvs.exe, который следует поместить в каталог, прописанный в каталогах поиска системы (path). Остальные файлы из архива пригодятся, если Вы надумаете устанавливать cvs server на Windows NT/2000/XP.
Вы можете спросить меня, зачем мучиться с командной строкой для работы с CVS, когда можно использовать какую-нибудь оболочку и получить все преимущества графического интерфейса пользователя? Мне кажется, используя оболочки сложнее понять принципы работы,
Исполнение команд
Общий синтаксис операций с CVS выглядит так:
ПРИМЕЧАНИЕ. Угловой скобкой в начале строки «>» я буду отмечать текст, набираемый в командной строке. Текст без угловой скобки, следующий за командой, является предполагаемым выводом.
Иными словами, после имени исполняемого модуля идут опции, общие для всех команд и определяющие функционирование системы в целом, а после имени команды – опции, определяющие поведение этой команды, и специфичные для команды аргументы. Ниже приводится список ключей для CVS.
ПРЕДУПРЕЖДЕНИЕ. Некоторые ключи имеют одинаковое наименование, но совершенно разный смысл, когда используются как ключи к CVS (cvs –key command) и как ключи к команде (cvs command –key). Будьте внимательны при использовании ключей и располагайте их в правильном месте.
Ключ | Описание |
---|---|
– d cvsroot | Указать CVSROOT явно. Если не указан, CVS пытается определить CVSROOT из текущего каталога, переменной окружения «CVSROOT» или файла .cvsrc |
– q | Показывать меньше информации во время работы (quiet). Подавляется дополнительная информация, например о сканировании дерева каталогов. |
– Q | Показывать еще меньше информации во время работы (really quiet). Выводятся только сообщения об ошибках. |
– r | Новые файлы, полученные из репозитория, помечаются флагом read-only. Используется для отслеживания редактирования файлов при помощи watchers/editors. |
– w | Новые файлы, полученные из репозитория, помечаются флагом read-write (включена по умолчанию). Используется для отключения опции –r при использовании переменных окружения или .cvsrc. |
– l | Не записывать информацию о выполненной команде в журнал (history log). Команда, тем не менее, выполняется, и все изменения файлов отслеживаются. |
– n | Не производить никаких фактических изменений в рабочем каталоге. Полезно для проверки наличия изменений в репозитории. |
– t | Показывать детально, что происходит во время операции. Особенно полезно для понимания работы CVS, рекомендуется использовать с ключом –n. |
– v | Показать версию CVS. |
– T tmpdir | Использовать tmpdir как временный каталог во время работы. |
– e editor | Использовать editor для редактирования дополнительной информации, например при отсутствии –m у команд, требующих комментария. |
– f | Не использовать .cvsrc (файл, в котором можно сохранить постоянно используемые настройки, в этой статье не обсуждается). |
– z | #Сжимать данные при передаче по сети (0 – не сжимать, 9 – максимальное сжатие). |
– x | Шифровать данные при передаче по сети (если поддерживается методом доступа). |
– a | Авторизоваться при каждом взаимодействии с сервером (если поддерживается методом доступа). |
– s VAR=VAL | Установить пользовательскую переменную для CVS (в этой статье не обсуждается). |
WINCVS. Можно использовать Admin\Command line… для выполнения команд CVS, набранных вручную.
Создание репозитория
Эксперименты проще всего производить с локальным репозиторием. Работа с удаленным CVS мало чем отличается, однако в этом случае Вам должен быть известен правильный CVSROOT. Например, администратор CVS-сервера может создать тестовый репозиторий и сообщить Вам необходимую информацию. Для работы с локальным репозиторием необходимо его проинициализировать самостоятельно. Создайте где-либо пустой каталог и выполните команду инициализации:
Ключ –d позволяет задать CVSROOT в командной строке. Команда init проводит первичную инициализацию репозитория. Вы может создать сколько угодно репозиториев в разных не пересекающихся каталогах и использовать их для различных категорий проектов, разных команд, как приватный и публичный и так далее.
В созданном пустом каталоге должен появиться подкаталог «CVSROOT», содержащий некоторое количество управляющих файлов. В этой статье устройство репозитория рассматриваться не будет.
WINCVS. Локальный репозиторий создается командой "Create\Create a new repository…".
Создание проекта
Прежде чем помещать проект под управление CVS, следует тщательно продумать конфигурацию проекта, именование файлов и структуру каталогов. Особенно это важно в отношении каталогов. В связи с тем, что CVS должен хранить редакции всех, даже удалённых файлов, каталоги никогда не удаляются. Поэтому переименование каталогов и перемещение файлов могут вызвать трудности.
СОВЕТ Если используется Windows - давайте всем файлам имена в нижнем регистре.
Начните с проекта, состоящего из одного текстового файла. В пустом каталоге с именем “test” создайте файл “readme.txt” следующего содержания:
Теперь необходимо поместить файл в репозиторий:
• Ключ -d со следующим за ним cvsroot, как обычно, задаёт репозиторий.
• Команда import указывает, что текущий каталог необходимо импортировать в репозиторий.
• Необязательный ключ -m со своим аргументом идёт после команды и относится к ней. Он указывает комментарий, который необходимо проассоциировать с данной редакцией. Если не указать комментарий в командной строке, CVS откроет редактор по умолчанию (например, notepad) и попросит вас ввести комментарий.
• Следующий параметр указывает путь относительно корня репозитория, где следует разместить файлы из каталога. Данные можно импортировать в любое место репозитория, все необходимые каталоги создадутся автоматически.
• Далее следуют две метки - поставщик (vendor) и символическое имя версии (release). Эти метки полезны, если вы импортируете исходные тексты сторонних разработчиков или свои проекты, уже имеющие определенную историю и нумерацию версий.
Выполнять эту команду следует из корневого каталога проекта, в этом примере - из каталога “test”.
В нашем случае эта команда может выглядеть так:
Вывод команды означает, что в репозитории был создан файл для хранения редакций readme.txt в каталоге test, и не произошло никаких неприятностей в процессе работы.
WINCVS Выберите пункт меню "Create\Import module…" Затем выберите каталог, который вы хотите импортировать в репозиторий. Далее появится список типов файлов, обнаруженных в каталоге. Вы можете выбрать, какие из них необходимо импортировать, а какие нет.