Чтение онлайн

на главную - закладки

Жанры

Основы программирования в Linux
Шрифт:

В дополнение к только что перечисленным командам у команды

sссs
одноименной системы есть некоторое пересечение с командами
rcs
и
со
системы RCS. Например, команды
sссs edit
и
sссs create
эквивалентны командам
со -l
и
rcs -i
соответственно.

CVS

Альтернатива применения системы RCS для управления изменениями в файлах — система CVS, которая означает Concurrent Versions System (система

параллельных версий). CVS стала очень популярной, может быть, потому, что у нее есть одно явное преимущество по сравнению с системой RCS: на практике CVS используется в Интернете, а не только в совместно используемом локальном каталоге как RCS. В системе CVS также разрешены параллельные разработки, т. е. многие программисты могут работать с одним и тем же файлом одновременно, в то время как RCS разрешает лишь одному пользователю работать с конкретным файлом в определенный момент времени. Команды CVS похожи на команды RCS, поскольку первоначально CVS была разработана как внешний интерфейс RCS.

Поскольку она способна гибко функционировать в сети, система CVS подходит для применения в тех случаях, когда у разработчиков есть единственная связь — через Интернет. Многие проекты Linux и GNU используют систему CVS, чтобы помочь разработчикам координировать их работу. В основном использование CVS для управления удаленными файлами аналогично применению системы для обработки локальных файлов.

В этой главе мы кратко рассмотрим основы системы CVS, чтобы вы могли начать работать с локальными репозитариями и понимали, как получить копию самых свежих исходных файлов проекта, если сервер CVS доступен в Интернете. Дополнительная информация хранится в руководстве по CVS, написанном Пером Седерквистом (Per Cederqvist) и др. и доступном по адресу http://ximbiot.com/cvs/manual/, там вы найдете файлы FAQ (часто задаваемые вопросы) и другие полезные файлы.

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

Локальное использование CVS

Начните с создания репозитария. Для простоты пусть это будет локальный репозитарий, и поскольку вы будете использовать только один, удобно поместить его в каталог /usr/local. В большинстве дистрибутивов Linux все обычные пользователи являются членами группы users, поэтому примените ее как группу репозитария, чтобы у всех пользователей был доступ к нему.

Как суперпользователь создайте каталог для репозитария:

# mkdir /usr/local/repository

# chgrp users /usr/local/repository

# chmod g+w /usr/local/repository

И превратившись снова в обычного пользователя, инициализируйте его как репозитарий CVS. У вас должно быть право на запись в каталог usr/local/repository, если вы не входите в группу обычных пользователей.

$ cvs -d /usr/local/repository init

Опция

– d
информирует CVS о том, где вы хотите создать репозитарий.

После создания репозитария можно сохранить начальные версии файлов проекта в системе CVS. Но в этот момент можно сэкономить на наборе. У всех команд

cvs
есть два способа поиска каталога системы CVS. Во-первых, они ищут опцию
– d <путь>
в командной строке (как и в команде
init
), если опций
– d
нет, ищется переменная окружения
CVSROOT
. Вместо постоянного применения опции -а вы задаете переменную окружения. Приведенную далее команду можно использовать, если в качестве командной оболочки вы применяете bash:

$ export CVSROOT=/usr/local/repository

Прежде всего, вы изменяете каталог, в котором находится проект; далее вы сообщаете CVS о необходимости импортировать все файлы проекта в этот каталог. Для системы CVS проект — это любая коллекция связанных файлов и каталогов. Обычно она включает все файлы, необходимые для создания приложения. Термин "импорт" означает передачу всех файлов под контроль системы CVS и копирование их в CVS-репозитарий. В данном примере у вас есть каталог cvs-sp (простой проект CVS), содержащий два файла — hello.c и Makefile.

$ cd cvs-sp

$ ls -l

– rw-r--r-- 1 neil users 68 2003-02-15 11:07 Makefile

– rw-r--r-- 1 neil users 109 2003-02-15 11:04 hello.c

Команда импорта в CVS (

cvs import
) применяется следующим образом: 

$ cvs import -m"Initial version of Simple Project" wrox/chap9-cvs wrox start

Это заклинание заставляет CVS импортировать все файлы в текущий каталог (cvs-sp) и передает системе регистрационное сообщение (log message).

Аргумент

wrox/chap9-cvs
информирует CVS о том, где относительно корня дерева CVS сохранять новый проект. Напоминаем, что при желании в одном репозитарии можно хранить несколько проектов. Параметр
wrox
— тег поставщика, применяемый для идентификации автора первоначальной версии импортируемых файлов, а
start
— тег версии. Теги версии можно применять для идентификации в виде группы наборов связанных файлов, создающих конкретную версию приложения. Система CVS отвечает строками

N wrox/chap9-cvs/hello.c

N wrox/chap9-cvs/Makefile

Nо conflicts created by this import

информируя вас о том, что два файла импортированы корректно.

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

$ mkdir junk

$ cd junk

Поделиться:
Популярные книги

Гримуар темного лорда IV

Грехов Тимофей
4. Гримуар темного лорда
Фантастика:
фэнтези
боевая фантастика
попаданцы
аниме
5.25
рейтинг книги
Гримуар темного лорда IV

Прогрессивный сатанизм. Том 1

Мильхар
Религия и эзотерика:
прочая религиозная литература
5.00
рейтинг книги
Прогрессивный сатанизм. Том 1

Переписка и деловые бумаги

Чехов Антон Павлович
Документальная литература:
публицистика
5.00
рейтинг книги
Переписка и деловые бумаги

Международное частное право

Богуславский Марк Моисеевич
Научно-образовательная:
юриспруденция
учебники
5.00
рейтинг книги
Международное частное право

Отряд К10

Volaris
Фантастика:
боевая фантастика
юмористическая фантастика
5.00
рейтинг книги
Отряд К10

Воронцов. Перезагрузка. Книга 5

Тарасов Ник
5. Воронцов. Перезагрузка
Фантастика:
попаданцы
альтернативная история
фэнтези
фантастика: прочее
6.20
рейтинг книги
Воронцов. Перезагрузка. Книга 5

Гранд-адмирал. Том первый

Модус Илья Сергеевич
1. Тринадцатый
Фантастика:
боевая фантастика
космическая фантастика
7.00
рейтинг книги
Гранд-адмирал. Том первый

Ведьмак из Большого Киева (сборник)

Васильев Владимир Николаевич
Фантастика:
фэнтези
технофэнтези
5.00
рейтинг книги
Ведьмак из Большого Киева (сборник)

Тактик

Земляной Андрей Борисович
2. Офицер
Фантастика:
альтернативная история
7.70
рейтинг книги
Тактик

Падший

Райт Сюзанна
7. Тьма в тебе
Любовные романы:
любовно-фантастические романы
эро литература
5.00
рейтинг книги
Падший

Sindroma unicuma. Finalizi

Хол Блэки
3. Sindroma unicuma
Фантастика:
юмористическое фэнтези
городское фэнтези
9.01
рейтинг книги
Sindroma unicuma. Finalizi

Играть... в тебя

Зайцева Мария
3. Звериные повадки Симоновых
Любовные романы:
современные любовные романы
5.25
рейтинг книги
Играть... в тебя

100 знаменитых отечественных художников

Вагман Илья Яковлевич
Документальная литература:
биографии и мемуары
5.00
рейтинг книги
100 знаменитых отечественных художников

Разбуди в себе исполина

Роббинс Энтони
Научно-образовательная:
психология
5.00
рейтинг книги
Разбуди в себе исполина