Статья: Введение в CVS Конспект первого дня двухдневного курса по CVS

$ ls -l

total 8

drwxr-xr-x 2 jimb 512 Oct 31 11:04 CVS

-rw-r--r-- 1 jimb 89 Oct 31 10:42 Makefile

-rw-r--r-- 1 jimb 4432 Oct 31 10:45 httpc.c

-rwxr-xr-x 1 jimb 460 Oct 30 10:21 poll-server

Большинство этих файлов -- рабочие копии исходных текстов `httpc'. Однако, подкаталог с именем `CVS' (самый первый) имеет другое назначение. CVS использует его для хранения дополнительной информации о каждом файле в этом каталоге, чтобы определять, какие изменения вы внесли в них с тех пор, как извлекли их из репозитория.

Редактирование файлов

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

Например, предположим, что мы хотим скомпилировать проект, который мы только что извлекли:

$ make

gcc -g -Wall -lnsl -lsocket httpc.c -o httpc

httpc.c: In function `tcp_connection':

httpc.c:48: warning: passing arg 2 of `connect' from incompatible

pointer type

$

Кажется, `httpc.c' еще не был перенесен на эту операционную систему. Нам нужно сделать приведение типов для одного из аргументов функции connect. Чтобы сделать это, надо изменить строку 48, заменив

if (connect (sock, &name, sizeof (name)) >= 0)

на

if (connect (sock, (struct sockaddr *) &name, sizeof (name)) >= 0)

$ make gcc -g -Wall -lnsl -lsocket

httpc.c -o httpc $ httpc GET http://www.cyclic.com

...здесь находится текст HTML с домашней страницы Cyclic Software ...

$

Объединение изменений

Так как каждый разработчик использует свой собственный рабочий каталог, изменения, которые вы делаете в своем каталоги, не становятся автоматически видимыми всем остальным в вашей команде. CVS не публикует изменений, пока они не закончены. Когда вы протестируете изменения, вы должны "зафиксировать" (commit) их в репозитории и сделать их доступными остальным. Мы опишем команду cvs commit далее.

Однако, что если другой разработчик изменил тот же файл, что и вы, и, может быть, даже изменил те же самые строки? Чьи изменения будет использованы? Обычно ответить на этот вопрос автоматически невозможно, и CVS совершенно точно некомпетентен, чтобы принимать такие решения. Поэтому перед тем, как фиксировать ваши изменения, CVS требует, чтобы исходные тексты были синхронизированы со всеми изменениями, которые сделали остальные члены группы. Команда cvs update позаботится об этом:

$ cvs update

cvs update: Updating .

U Makefile

RCS file: /u/src/master/httpc/httpc.c,v

К-во Просмотров: 395
Бесплатно скачать Статья: Введение в CVS Конспект первого дня двухдневного курса по CVS