Основы программирования в Linux - Мэтью Нейл
- Дата:08.09.2024
- Категория: Компьютеры и Интернет / Интернет
- Название: Основы программирования в Linux
- Автор: Мэтью Нейл
- Просмотров:0
- Комментариев:0
Шрифт:
Интервал:
Закладка:
-rw-r--r-- 1 neil users 109 2003-02-15 11:04 hello.c
Команда импорта в CVS (cvs import) применяется следующим образом:
$ <b>cvs import -m"Initial version of Simple Project" wrox/chap9-cvs wrox start</b>
Это заклинание заставляет 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 и вернуть в него файлы, чтобы убедиться в том, что все нормально:
$ <b>mkdir junk</b>
$ <b>cd junk</b>
$ <b>cvs checkout wrox/chap9-cvs</b>
U wrox/chap9-cvs/Makefile
U wrox/chap9-cvs/hello.с
Вы указываете CVS тот же путь, что и при копировании файлов в репозитарий. Система CVS создает в текущем каталоге каталог wrox/chap9-cvs и помещает туда файлы.
Теперь вы готовы внести некоторые изменения в ваш проект. Отредактируйте файл hello.c в каталоге wrox/chap9-cvs, вставив в него строку
printf("Have a nice dayn");
Затем откомпилируйте заново и выполните программу, чтобы убедиться в том, что все в порядке:
$ <b>make</b>
сс hello.c -о hello
$ <b>./hello</b>
Hello World
Have a nice day
$
Вы можете спросить у системы CVS о том, что изменилось в проекте. Не нужно сообщать CVS, какой именно файл вас интересует, она может работать со всем каталогом одновременно.
$ <b>cvs diff</b>
CVS отвечает следующими строками:
cvs diff: Diffing
Index: hello.c
========================================================
RCS file: /usr/local/repository/wrox/chap9-cvs/hello.c,v
retrieving revision 1.1.1.1
diff -r1.1.1.1 hello.c
6a7
> printf("Have a nice dayn");
Вы довольны внесенным изменением и хотите зафиксировать его в CVS.
Когда вы фиксируете изменение с помощью системы CVS, она запускает редактор, позволяющий вам ввести регистрационное сообщение. У вас есть возможность задать переменную окружения CVSEDITOR для запуска определенного редактора перед выполнением команды commit:
$ <b>cvs commit</b>
CVS сообщает о том, что она сохраняет:
cvs commit: Examining
Checking in hello.c;
/usr/local/repository/wrox/chap9-cvs/hello.c,v <-- hello.c
new revision: 1.2; previous revision: 1.1
done
Теперь вы можете запросить систему CVS об изменениях в проекте со времени его первого сохранения в репозитарии. Запросите набор изменений в каталоге wrox/chap9-cvs, начиная с версии 1.1 (начальная версия):
$ <b>cvs rdiff -r1.1 wrox/chap9-cvs</b>
Система CVS сообщает следующие подробности:
cvs rdiff: Diffing wrox/chap9-cvs
Index: wrox/chap9-cvs/hello.c
diff -с wrox/chap9-cvs/hello.с:1.1 wrox/chap9-cvs/hello.с:1.2
*** wrox/chap9-cvs/hello.с:1.1 Mon Jul 9 09:37:13 2007
--- wrox/chap9-cvs/hello.с Mon Jul 9 09:44:36 2007
************
*** 4,8 ****
--- 4,9 ---
int main() {
printf("Hello Worldn");
+ printf("Have a nice dayn");
exit (EXIT_SUCCESS);
}
Предположим, что у вас есть копия, извлеченная из системы CVS в локальный каталог на время, и вы хотите обновить файлы в вашем локальном каталоге, которые корректировались другими пользователями, а вы сами их не редактировали. CVS может сделать это для вас, применив команду update. Перейдите на верхний уровень пути, в данном случае в каталог, содержащий каталог wrox, и выполните следующую команду:
$ <b>cvs update -Pd wrox/chap9-cv3</b>
CVS обновит файлы, извлекая из репозитария файлы, измененные другими пользователями, а не вами, и помещая их в ваш локальный каталог. Конечно, некоторые изменения могут оказаться несовместимыми с вашими, но это проблема, над которой вам придется потрудиться. Система CVS хороша, но она не умеет творить чудеса!
К этому моменту вы уже увидели, что использование CVS очень похоже на применение RCS. Но у нее есть существенное отличие, о котором мы пока не. упоминали, — способность функционировать в сети без смонтированной файловой системы.
Доступ к CVS по сетиВы сообщили системе CVS, где находится репозитарий, применяя опцию -d в каждой команде или установив переменную окружения CVSROOT. Если вы хотите действовать через сеть, то просто используете расширенную синтаксическую запись для этого параметра. Например, во время написания книги все исходные файлы разработки GNOME (GNU Network Object Model Environment, сетевая объектная среда GNU — популярная графическая настольная система с открытым исходным кодом) были доступны в Интернете благодаря системе CVS. Вам нужно только задать месторасположение подходящего CVS-репозитария, указав некоторую сетевую информацию перед спецификатором пути к нему.
- Вопросы истории: UNIX, Linux, BSD и другие - Федорчук Алексей Викторович "alv" - Прочая околокомпьтерная литература
- Linux Mint и его Cinnamon. Очерки применителя - Алексей Федорчук - Программное обеспечение
- Язык программирования C++. Пятое издание - Стенли Липпман - Программирование
- Аквариум. (Новое издание, исправленное и переработанное) - Виктор Суворов (Резун) - Шпионский детектив
- Интерфейс: новые направления в проектировании компьютерных систем - Джефф Раскин - Техническая литература