Основы программирования в Linux
Основы программирования в Linux читать книгу онлайн
Внимание! Книга может содержать контент только для совершеннолетних. Для несовершеннолетних чтение данного контента СТРОГО ЗАПРЕЩЕНО! Если в книге присутствует наличие пропаганды ЛГБТ и другого, запрещенного контента - просьба написать на почту [email protected] для удаления материала
-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
wrox
start
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
$ <b>cvs update -Pd wrox/chap9-cv3</b>
CVS обновит файлы, извлекая из репозитария файлы, измененные другими пользователями, а не вами, и помещая их в ваш локальный каталог. Конечно, некоторые изменения могут оказаться несовместимыми с вашими, но это проблема, над которой вам придется потрудиться. Система CVS хороша, но она не умеет творить чудеса!
К этому моменту вы уже увидели, что использование CVS очень похоже на применение RCS. Но у нее есть существенное отличие, о котором мы пока не. упоминали, — способность функционировать в сети без смонтированной файловой системы.
Вы сообщили системе CVS, где находится репозитарий, применяя опцию
-d
CVSROOT