Изучение программного продукта CVS

Автор работы: Пользователь скрыл имя, 26 Января 2014 в 23:05, лабораторная работа

Краткое описание

ЦЕЛЬ РАБОТЫ:
изучить программный продукт CVS (Concurrent Versions System, «Система Конкурирующих Версий») и на примере клиентской программы (front-end client) TortoiseCVS получить навыки пользования базовыми функциями: создание репозитория; создание локального модуля, используя репозиторий; перемещать в локальный модуль созданные файлы и добавлять их в CVS. Получить знания о командах, основной ветке, branch ветке.

Вложенные файлы: 1 файл

Лаба солод.doc

— 722.00 Кб (Скачать файл)

ФЕДЕРАЛЬНОЕ АГЕНСТВО ПО ОБРАЗОВАНИЮ

Государственное образовательное учреждение

высшего профессионального образования

ПЕРМСКИЙ  ГОСУДАРСТВЕННЫЙ ТЕХНИЧЕСКИЙ УНИВЕРСИТЕТ

 

 

 

 

ЛАБОРАТОРНАЯ  РАБОТА

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

на тему: ИЗУЧЕНИЕ ПРОГРАММНОГО ПРОДУКТА CVS (CONCURRENT VERSIONS SYSTEM, «СИСТЕМА КОНКУРИРУЮЩИХ ВЕРСИЙ»)


 

 


 

 

 

 

 

 

 

 

 

 

 

 

Пермь 2014

СОДЕРЖАНИЕ

 

Цель работы:

изучить  программный продукт CVS (Concurrent Versions System, «Система Конкурирующих Версий») и на примере клиентской программы (front-end client) TortoiseCVS получить навыки пользования базовыми функциями: создание репозитория; создание локального модуля, используя репозиторий;  перемещать в локальный модуль созданные файлы и добавлять их в CVS. Получить знания о командах, основной ветке, branch ветке.

 

ПРАКТИЧЕСКОЕ ЗАДАНИЕ:

1. Создать репозиторий  в папке C:\Stud \

2. Создать локальный  модуль, используя репозиторий, созданный  в п.1

3. Переместить  в локальный модуль файлы, созданные на лабораторной работе, добавить их в CVS.

4. Изменить файлы,  подтвердить внесение изменений  в CVS. Создать версии 1.2, 1.3. Создать подветку в дереве ревизий.

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

Краткая теория

CVS (Concurrent Versions System, «Система Конкурирующих Версий») — программный продукт, относящийся к разряду систем управления версиями (англ. version control system). Хранит историю изменений определённого набора файлов, как правило, исходного кода программного обеспечения, и облегчает совместную работу группы людей (часто — программистов) над одним проектом. CVS популярна в мире открытого ПО. Система распространяется на условиях лицензии GNU GPL.

CVS использует  архитектуру клиент-сервер. Обычно  клиент и сервер соединяются  через локальную сеть или через  Интернет, но могут работать и на одной машине, если необходимо вести историю версий локального проекта. Серверное ПО обычно работает под управлением Unix (хотя существует CVS сервер и для Windows NT), тогда как CVS клиенты доступны во всех популярных операционных системах.

Сервер хранит в специальном хранилище (репозитории) текущую версию (версии) проекта  и историю изменений, а клиент соединяется с ним, чтобы получить нужную ему версию или записать новую. Получив с сервера нужную версию (данная процедура называется check-out), клиент создаёт локальную копию проекта (или его части) — так называемую рабочую копию. После того как в файлы, находящиеся в рабочей копии, внесены необходимые изменения, они пересылаются на сервер (check-in).

Несколько клиентов могут работать над копиями проекта одновременно. Когда они отправляют результаты, сервер пытается слить их изменения в репозитории вместе. Если это не удаётся, например, в случае, когда два клиента изменили одни и те же строки в определённом файле, сервер не примет изменения от последней check-in операции и сообщит клиенту о конфликте, который должен быть исправлен вручную. Если check-in операция завершилась успешно, то номера версий всех затронутых файлов автоматически увеличиваются, и сервер записывает комментарий, дату и имя пользователя в свой журнал (data logging).

Клиенты также  могут сравнить различные версии файлов, запросить полную историю  изменений или получить исторический образ проекта на определённое число  или по номеру ревизии. Многие Open Source проекты разрешают анонимный доступ на чтение, который впервые был применён OpenBSD. Это означает, что клиенты могут запрашивать и сравнивать версии файлов без пароля; только check-in операции, ведущие к изменению данных в репозитории, требуют пароль.

Также для синхронизации локальной копии проекта с информацией на сервере клиенты могут использовать команду update, что позволяет избежать повторного скачивания всего проекта.

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

Проекты в CVS хранятся в виде модулей.

ТЕРМИНЫ:

Модуль —  это набор файлов проекта. Сервер CVS может обслуживать несколько  модулей; все модули хранятся в репозито́рии. Локальная копия модуля, полученная с помощью CVS клиента, называется рабочей  копией.

Check-out -извлечение  целого модуля из CVS и создание рабочей копии.

Check-in -фиксация  локальных изменений в репозиторий.

Update -обновление  локального проекта из CVS.

Branch- «ветка»  — независимое направление модификации  проекта, которое может содержать  ряд последовательных версий. «Ветка» может развиваться параллельно другим веткам. Главная ветка есть всегда.

Main trunk или HEAD- главная ветка.

Revision - «ревизия»:  одна из версий отдельного  файла.

Release - «релиз»:  одна из версий целого проекта.  Термин «версия» вообще не  используется.

Tag («тег») - специальная метка, обозначающая определённый релиз продукта. Текст метки желательно делать максимально понятным. Метку можно назначить и отдельному файлу. Тег помечает совокупность файлов определённых ревизий (версий).

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

ПОРЯДОК ВЫПОЛНЕНИЯ ЛАБОРАТОРНОЙ РАБОТЫ:

1. Настройка CVS-сервера

Настраиваем CVS-сервер. Для этого идем по пути Пуск -> Все программы -> CVSNT -> CVSNT Control Panel:

Откроется окно следующего вида:

 

2. Создание репозитория

Для начала работы нам необходимо создать CVS-репозиторий.

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

Переходим на вкладку Repository Configuration:

Нажимаем кнопку Add (Добавить репозиторий):

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

В графе Location пропишем путь C:\Stud\RepoExamples\INZ_09d

Нажимаем ОК. Если выскочит такое сообщение:

В списке репозиториев в итоге появился наш:

Нажмем ОК.

Репозиторий готов, теперь можно заняться непосредственно  работой с CVS.

 

3.Создание локального модуля

Для начала создадим в  папке С:\Stud\ INZ_09d папку INZ_09d. Вызовем на ней контекстное меню нажатием правой кнопки мыши и выберем CVS -> Создать новый модуль:

 

 

 

Появится окно следующего вида:

Выбираем:

Протокол:  Локальная папка (:local:)

Repository folder: (указываем путь к репозиторию): C:/Stud/ INZ_09d /StudRepo

Более нас ничего не интересует. Нажмем ОК.

Появится окно:

Нам главное  получить сообщение о том, что  операция по созданию модуля завершилась  успешно. Как видим, такое сообщение  присутствует. Нажмем ОК.

 

Поменялся значок у папки. Это значит, что папка стала модулем:

 

4. Создание и изменение файлов

 Зайдем в  папку.

Создадим простой  текстовый файл:

 

Назовем его, например, StudRepo.txt.

Сохраним. Закроем  текстовый редактор. Видим, что на файле стоит знак вопроса. Это  значит, что файл не контролируется CVS. Нам необходимо поставить его под ее контроль. Для этого вызовем контекстное меню правой кнопкой мыши на файле:

Появится окно:

Нажмем ОК, мы согласны добавить файл в CVS.

Должно появится окно об успешном завершении операции:

Жмем на ОК. Видим, как поменялся значок у нашего файла:

Это значит, что  мы его добавили в CVS.

Ну а теперь, когда все приготовления сделаны, давайте оценим CVS.

Откроем наш  файл, напишем 2 строчки:

Сохраним.  Вызовем  контекстное меню на файле и выберем CVS Зафиксировать.

Появится окно:

Можно написать какой-нибудь комментарий. Нажмем ОК. Получим сообщение, что все завершилось успешно. Нажмем ОК. Проделаем эту операцию еще 2 раза, т.е. добавим что-нибудь в файл и зафиксируем изменения.

5. Дерево ревизий

После этого  вызываем контекстное меню на нашем  файле и выбираем CVS -> Дерево ревизий. Откроется окно:

Исходный файл TextFile.txt является у нас головной веткой (HEAD Branch). Ниже идут ревизии (то, что мы добавляли каждый раз и фиксировали). Ревизии составляют ветку (Branch). Можно посмотреть на любую из ревизий, так как они все хранятся в репозитории. Для этого выделим, например ревизию 1.2, щелкнем по ней правой кнопкой мыши и выберем пункт View this revision. Перед нами откроется именно второе изменение (версия) файла.

Теперь давайте  рассмотрим создание подветок (Sub-branch). Допустим, мы хотим добавить еще версионности проекту, поскольку мы считаем, что не делаем таких громадных шагов (1.3 -> 1.4). То есть, мы еще создаём промежуточные версии. Для этого щелкаем правой кнопкой мыши по ревизии 1.3. Выбираем Ветка… Появится окно:

 

Назовем как-нибудь нашу ветку. Нажмем ОК. В результате, у нас получится нечто такое (мы назвали ветку veto4ka):

Затем нажмем ОК. Снова дважды повторим операцию, добавим  несколько строчек в файл и  зафиксируем.

Зайдем в Дерево ревизий:

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

6. Список консольных команд CVS

Все эти команды  вводятся из командной строки: Пуск -> Выполнить… -> cmd. Далее указывается путь к CVS-серверу, например, cd C:\Program Files\CVSNT, после команды вводятся в соответствии с нижеописанным синтаксисом.

Команды CVS выглядят таким образом:  
cvs [global-options] COMMAND [COMMAND-OPTIONS] [command-args]  
Далее следует список команд системы CVS.

cvs –d :local:{путь к репозиторию} init

Создать новый репозиторий

 

add [options] [files]

Добавить в хранилище  новый файл/каталог.

-k kflag Установить подстановку ключевых слов.

-m msg Установить описание файла (комментарий).

admin [options] [files ...]

Администрирование протокольными  файлами в хранилище.

-b[rev] Установить ветвь по умолчанию. -cstring Установить начало комментария. -ksubst Определить подстановку ключевых слов. -l[rev] Ограничить доступ версии rev или последней версии. -mrev:msg Заменить комментарий в хранилище. -orange Удалить версии из хранилища. -q Выполняться с минимумом сообщений. -sstate[:rev]Установить состояние файла. -t Установить ввод описания (комментария) со стандартного ввода. -tfile Установить ввод описания (комментария) из файла file. -t-string Заменить описание (комментарий) на строку string. -u[rev] Открыть доступ к версии rev или к последней версии.

annotate [options] [files ...]

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

-D date Показать наиболее свежую версию, но не позднее даты date. -f Использовать версию из основного ствола разработки, если указанный тег или дата не найдены. -l Выполнять локально, без подкаталогов. -R Выполнять рекурсивно, с подкаталогами. -r tag Показать измен©нные строки из версии tag.

checkout [options] MODULES...

Получить копию исходных текстов.

-A Сбросить любые липкие теги, даты, параметры. -c Вывести базу данных с именами модулей. -D date Получить копию исходных текстов до даты date (липкий параметр). -d dir Получить копию исходных текстов в каталог dir. -f Использовать версии из основного ствола, если указанные теги или даты не найдены. -j rev Объединить изменения. -k kflag Использовать строку kflag для постановки ключевых слов. -l Выполнять локально; без подкаталогов. -N Не сокращать путь к модулю, если используется -d. -n Не выполнять программу модуля, если она есть. -P Пропустить пустые каталоги. -p Вывести копию исходных текстов на стандартное устройство вывода (избегая липкости). -R Выполнять рекурсивно; включая подкаталоги (умолчание). -r tag Получить копию исходных текстов версии tag (липкий параметр). -s То же что -c, но включая состояние модуля.

commit [options] [files ...]

Проверить есть ли изменения  в рабочем каталоге и перенести  изменения файлов из рабочего каталога (если они имели место) в хранилище.

-F file Прочесть комментарий на изменение из файла file. -f Отметить файл проверенным; запретить рекурсию. -l Выполнять локально; без подкаталогов. -m msg Использовать строку msg в качестве комментария, который будет записан в журнал (log). -n Не выполнять программу модуля, если таковая есть. -R Выполнять рекурсивно; с подкаталогами (умолчание). -r rev Выполнить commit для версии rev.

diff [options] [files ...]

Показать различия между  версиями файлов. В дополнение к  нижеописанным параметрам имеется  ряд дополнительных параметров, которые  используются для описания вывода программы.

-D date1 Получить diff между версией с определ©нной датой и версией в рабочем каталоге. -D date2 Получить diff между date1/rev1 и date2. -l Выполнять локально; без подкаталогов. -N Включить diff для добавленных и удал©нных файлов. -R Выполнять рекурсивно; с подкаталогами (умолчание). -r rev1 Получить diff между версией rev1 и рабочим каталогом. -r rev2 Получить diff между версией date1/rev1 и rev2.

edit [options] [files ...]

Приготовиться редактировать наблюдаемый (watched) файл.

-a actions Определить действия для временного наблюдения, где действия могут быть такими: EDIT, UNEDIT, COMMIT, ALL, NONE. -l Выполнять локально; без подкаталогов. -R Выполнять рекурсивно; с подкаталогами (умолчание).

Информация о работе Изучение программного продукта CVS