Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
lection11_компиляторы.doc
Скачиваний:
3
Добавлен:
01.03.2025
Размер:
234.5 Кб
Скачать

Система контроля версий: rcs

При работе над большим проектом приходится постоянно корректировать исходные коды программ. При этом выполняется обнаружение ошибок, добавляются новые воз­можности. Но иногда внесенные изменения приводят к возникновению новых ошибок. Регистрация всех выполняемых изменений могла бы быть полезной для отслеживания сбоев и выяснения причин возникающих ошибок. Система контроля версий RCS (Re­vision Control System) — утилита Linux, отслеживающая все изменения, которые дела­ются в программе. Практически RCS поддерживает множество последовательных версий программы. Каждую из них можно просмотреть, а также проверить изменения, вне­сенные на очередном шаге.

Утилита RCS особенно полезна в том случае, если в разработке программы участвует большой коллектив разработчиков. Каждый из программистов может внести изменения в программу в любое время. При этом RCS регистрирует каждое из изменений, а также время выполнения изменений. В этом случае могут быть сохранены заметки о прове­денном изменении.

Утилита RCS сохраняет исходную версию файла, и затем фиксирует все изменения, внесенные в этот файл. Используя эту информацию, можно восстановить любую из версий данного файла. На самом деле различные полнофункциональные версии файла не сохраняются. Вместо этого RCS использует исходный файл и информацию об из­менениях для создания полного варианта требуемой версии файла. Команды, с помощью которых RCS управляет файлами, перечислены в табл. 3.

Таблица 3. Утилита RCS Команда Описание

RCS Утилита Revision Control System (RCS) позволяет пользователю контролировать раз-

работку программ. С помощью RCS можно устанавливать различные версии про­граммы по мере выполнения изменений. Можно выбирать различные версии про­грамм либо получать записи о том, как были разработаны программы. Файл RCS создается с помощью команды ci, а его обработка может выполняться с помощью команды rcs. Версии выбираются с помощью команды со, а их удаление осу­ществляется с помощью команды rcs

ci Команда ci обновляет файл RCS, создавая новые версии. Если файл RCS не был

создан ранее, команда ci делает это, используя расширение v. Команда ci обычно применяется для сохранения измененной копии файла, который был ранее выбран с помощью команды со, примененной вместе с опцией -1. Сохранение изменен­ной копии приведет к созданию новой версии файла внутри файла RCS

$ ci main.с

Опции

rверсия Эта опция позволяет указывать номер выпуска и версии, с которого ведется отсчет (начиная с момента создания новой версии)

$ ci -r5.2 main.с

со Команда со применяется для выборки версии файла RCS. При использовании

без опций она выполняет выборку версии кода, предназначенной только для чте­ния. Если версия не указана, выполняется выборка последней версии

Опции

-1 Эта опция позволяет выполнить выборку редактируемой версии файла

RCS. При этом файл блокируется, в результате чего предотвращается возможность его изменения со стороны других пользователей. Файл ос­тается заблокированным до вызова на выполнения утилиты ci

$ со -е main

гсs Команда гcs применяется для управления файлами RCS, а также пригодна для

управления доступом к файлу RCS со стороны других толкователей

Опции

-aимя_ Эта опция позволяет добавлять имя пользователя в перечень пользова- пользова- телей, могущих получать доступ к указанному файлу RCS теля $ rcs -arobert main.с

-eимя_ Эта опция удаляет параметр имя пользователя из перечня пользовате- полъзова- лей, которые могут иметь доступ к указанному файлу RCS теля $ rcs -erobert main.с

-1выпуск Эта опция блокирует указанный выпуск от доступа со стороны каких-либо пользователей, исключая создателя файла $ rcs -12 main.с

-uвыпуск Эта опция отменяет блокировку указанного выпуска

$ rcs -u2 main.с

-Lвыпуск Эта опция блокирует доступ к файлу со стороны любых пользователей, включая создателя файла $ rcs -L2 main.с

-oвыпуск Эта опция разблокирует доступ к указанному выпуску со стороны лю­бого пользователя, включая создателя файла

$ rcs -U2 main.с

-овыпуск Эта опция позволяет удалить выпуск из файла RCS

$ rcs -o2.3 main.с

rlog Команда rlog выводит информацию о различных выпусках и версиях, находя-

щихся в файле RCS. Используемая без параметра, данная команда выводит сум­марную информацию относительно каждой версии

Опции

-rверсия Эта опция предназначена для вывода информации об указанной версии

$ rlog -r2 main.с

-dдата Эта опция выводит информацию о версиях, созданных в указанное вре­мя. Формат даты, применяемый в этом случае, имеет вид год/месяц/ день, а также час:минута:секунда. Все параметры, за исключением года, являются необязательными для ввода $ rlog -d93/04/12 main.с

-d< Завершаемая знаком «меньше», эта опция выводит сведения о выпус-

ках, которые были созданы ранее указанной даты

$ rlog -d<93/04/12 main.с

->d Используемая вместе с ведущим знаком «больше», эта опция выводит

сведения о выпусках, которые были созданы позднее указанной даты

$ rlog ->d93/04/12 main.с

Очередной набор изменений, внесенных в файл, называется версией. Каждая версия имеет свой номер, который состоит из нескольких компонентов. Первые два компонента означают номер выпуска и номер варианта. По умолчанию первой версии присваивается номер выпуска 1 и номер варианта 1. Для ссылки на версию необходимо указать номер ее выпуска и варианта. Первая версия называется версией 1.1 или версией дельта 1.1. Последующие версии имеют тот же номер выпуска, но больший на единицу номер варианта. Следующая версия будет иметь номер 1.2, затем 1.3 и т. д. Номер выпуска может быть изменен вручную.

Перед созданием файла RCS необходимо создать каталог RCS. В этом каталоге размещаются файлы RCS для пользовательских программ. Затем с помощью команды ci создается файл RCS. Команда ci (которая начинает проверку) имеет один параметр (название исходного файла). Файл RCS будет создан в каталоге RCS с расширением ,v. Файлу main.с соответствует файл RCS main.c,v в каталоге RCS. Если программа поль­зователя изначально состоит из нескольких файлов исходного кода, необходимо создать файлы RCS для каждого из этих файлов, включив в название соответствующий суффикс. В следующем примере программист создает файл RCS для программы main.с.

$ ci main.с

RCS/main.c,v main.с

enter description, terminated with single '.' or end of file:

NOTE: This is NOT the log message!

>> Bookrecs main program

>> .

initial revision: 1.1

done

При редактировании файла исходного кода с применением RCS эта утилита вначале создает копию файла исходного кода. Она именуется так же, как и файл RCS, но без использования суффикса ,v. Для файла main.c,v RCS создает файл main.с. С целью сохранения копии программы после завершения редактирования происходит регистра­ция изменений в файле RCS.

Команда RCS со (выполняющая проверку) создает копию файла исходного кода. Эта команда имеет несколько параметров. Команда со без параметров просто создает копию файла исходного кода, которому присвоен атрибут «только для чтения». При использовании параметра -1 создается копия файла исходного кода, которую можно редактировать. Этот параметр используется для предотвращения доступа к файлу. Ме­ханизм блокировки в RCS разрешает одновременную работу с файлом лишь одному программисту. После завершения выполнения изменений происходит проверка про­граммного кода, выполняется регистрация изменений, а также разблокировка файла для остальных пользователей. В следующем примере команда со создает редактируемую копию файла с исходным кодом main.c,v.

$ со -l main

RCS/main.c,v --> main.с revision 1.1 (locked) done

После завершения редактирования исходного кода программы применяется команда ci с целью регистрации выполненных изменений. Для этого требуется ввести команду ci и название файла RCS. Затем последует приглашение ввести комментарий. По сути, при редактировании копии файла, созданного с помощью команды со, генерируется новая версия файла исходного кода, новый набор изменений, определяющих новую версию. В результате отображается новый номер версии (1.2). В следующем примере программист сохраняет изменения в файл main.с, причем создается новая версия про­граммы 1.2.

$ ci main.с

RCS/main.c,v main.с

new revision: 1.2; previous revision: 1.1

enter log message, terminated with single '.' or end of file:

>> Added prompts

» .

done

Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]