Π§ΠΈΡ‚Π°ΠΉΡ‚Π΅ ΠΊΠ½ΠΈΠ³ΠΈ ΠΎΠ½Π»Π°ΠΉΠ½ Π½Π° Bookidrom.ru! БСсплатныС ΠΊΠ½ΠΈΠ³ΠΈ Π² ΠΎΠ΄Π½ΠΎΠΌ ΠΊΠ»ΠΈΠΊΠ΅

Π§ΠΈΡ‚Π°Ρ‚ΡŒ ΠΎΠ½Π»Π°ΠΉΠ½ Β«ΠžΡΠ½ΠΎΠ²Ρ‹ программирования Π² LinuxΒ». Π‘Ρ‚Ρ€Π°Π½ΠΈΡ†Π° 107

Автор НСйл ΠœΡΡ‚ΡŒΡŽ

-r--r--r-- 1 neil users 105 2007-07-09 07:52 important.с,v

$

ΠŸΡ€ΠΈΠΌΠ΅Ρ‡Π°Π½ΠΈΠ΅

Если Π²Ρ‹ ΠΏΡ€Π΅Π΄ΠΏΠΎΡ‡ΠΈΡ‚Π°Π΅Ρ‚Π΅ ΡΠΎΡ…Ρ€Π°Π½ΡΡ‚ΡŒ RCS-Ρ„Π°ΠΉΠ»Ρ‹ Π² ΠΎΡ‚Π΄Π΅Π»ΡŒΠ½ΠΎΠΌ ΠΊΠ°Ρ‚Π°Π»ΠΎΠ³Π΅, просто создайтС ΠΏΠΎΠ΄ΠΊΠ°Ρ‚Π°Π»ΠΎΠ³ с ΠΈΠΌΠ΅Π½Π΅ΠΌ RCS ΠΏΠ΅Ρ€Π΅Π΄ ΠΏΠ΅Ρ€Π²Ρ‹ΠΌ ΠΏΡ€ΠΈΠΌΠ΅Π½Π΅Π½ΠΈΠ΅ΠΌ ΠΊΠΎΠΌΠ°Π½Π΄Ρ‹ rcs. ВсС ΠΊΠΎΠΌΠ°Π½Π΄Ρ‹ rcs Π±ΡƒΠ΄ΡƒΡ‚ автоматичСски ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ ΠΏΠΎΠ΄ΠΊΠ°Ρ‚Π°Π»ΠΎΠ³ RCS для RCS-Ρ„Π°ΠΉΠ»ΠΎΠ².

Команда сi

Π’Π΅ΠΏΠ΅Ρ€ΡŒ Π²Ρ‹ ΠΌΠΎΠΆΠ΅Ρ‚Π΅ Π²Ρ‹ΠΏΠΎΠ»Π½ΠΈΡ‚ΡŒ рСгистрируСмый Π²Π²ΠΎΠ΄ Π² RCS-Ρ„Π°ΠΉΠ» (check-in) вашСго Ρ„Π°ΠΉΠ»Π° с ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ ΠΊΠΎΠΌΠ°Π½Π΄Ρ‹ ci для сохранСния Π΅Π³ΠΎ Ρ‚Π΅ΠΊΡƒΡ‰Π΅ΠΉ вСрсии.

$ ci important.с

important.c,v <-- important.c

initial revision: 1.1

done

$

Если Π²Ρ‹ Π·Π°Π±Ρ‹Π»ΠΈ Π²Ρ‹ΠΏΠΎΠ»Π½ΠΈΡ‚ΡŒ ΠΏΠ΅Ρ€Π²ΠΎΠΉ ΠΊΠΎΠΌΠ°Π½Π΄Ρƒ rcs -i, RCS запросит описаниС Ρ„Π°ΠΉΠ»Π°. Если Ρ‚Π΅ΠΏΠ΅Ρ€ΡŒ Π·Π°Π³Π»ΡΠ½ΡƒΡ‚ΡŒ Π² ΠΊΠ°Ρ‚Π°Π»ΠΎΠ³, Ρ‚ΠΎ ΠΌΠΎΠΆΠ½ΠΎ ΡƒΠ²ΠΈΠ΄Π΅Ρ‚ΡŒ, Ρ‡Ρ‚ΠΎ Ρ„Π°ΠΉΠ» important.c ΡƒΠ΄Π°Π»Π΅Π½.

$ ls -l

-r--r--r-- 1 neil users 443 2007-07-07 07:54 important.с,v

$

Π‘ΠΎΠ΄Π΅Ρ€ΠΆΠΈΠΌΠΎΠ΅ Ρ„Π°ΠΉΠ»Π° ΠΈ ΡƒΠΏΡ€Π°Π²Π»ΡΡŽΡ‰Π°Ρ информация хранятся Π² RCS-Ρ„Π°ΠΉΠ»Π΅ important.c,v.

Команда со

Если Π²Ρ‹ Ρ…ΠΎΡ‚ΠΈΡ‚Π΅ ΠΈΠ·ΠΌΠ΅Π½ΠΈΡ‚ΡŒ Ρ„Π°ΠΉΠ», ΠΏΡ€Π΅ΠΆΠ΄Π΅ всСго Π΅Π³ΠΎ Π½Π°Π΄ΠΎ ΠΈΠ·Π²Π»Π΅Ρ‡ΡŒ (check out). Если Π½ΡƒΠΆΠ½ΠΎ просто ΠΏΡ€ΠΎΡ‡ΠΈΡ‚Π°Ρ‚ΡŒ Ρ„Π°ΠΉΠ», ΠΌΠΎΠΆΠ½ΠΎ ΠΏΡ€ΠΈΠΌΠ΅Π½ΠΈΡ‚ΡŒ ΠΊΠΎΠΌΠ°Π½Π΄Ρƒ со для ΠΏΠΎΠ²Ρ‚ΠΎΡ€Π½ΠΎΠ³ΠΎ создания Ρ‚Π΅ΠΊΡƒΡ‰Π΅ΠΉ вСрсии Ρ„Π°ΠΉΠ»Π° ΠΈ измСнСния Π΅Π΅ ΠΏΡ€Π°Π² доступа Π½Π° read-only (Ρ‚ΠΎΠ»ΡŒΠΊΠΎ Ρ‡Ρ‚Π΅Π½ΠΈΠ΅). Если ΠΆΠ΅ Ρ„Π°ΠΉΠ» Π½ΡƒΠΆΠ½ΠΎ Ρ€Π΅Π΄Π°ΠΊΡ‚ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ, слСдуСт Π·Π°Π±Π»ΠΎΠΊΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ Ρ„Π°ΠΉΠ» с ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ ΠΊΠΎΠΌΠ°Π½Π΄Ρ‹ со -l. ΠŸΡ€ΠΈΡ‡ΠΈΠ½Π° Π·Π°ΠΊΠ»ΡŽΡ‡Π°Π΅Ρ‚ΡΡ Π² Ρ‚ΠΎΠΌ, Ρ‡Ρ‚ΠΎ Π² ΠΊΠΎΠΌΠ°Π½Π΄Π½Ρ‹Ρ… ΠΏΡ€ΠΎΠ΅ΠΊΡ‚Π°Ρ… Π²Π°ΠΆΠ½ΠΎ Π±Ρ‹Ρ‚ΡŒ ΡƒΠ²Π΅Ρ€Π΅Π½Π½Ρ‹ΠΌ Π² Ρ‚ΠΎΠΌ, Ρ‡Ρ‚ΠΎ Π² ΠΎΠΏΡ€Π΅Π΄Π΅Π»Π΅Π½Π½Ρ‹ΠΉ ΠΌΠΎΠΌΠ΅Π½Ρ‚ Π²Ρ€Π΅ΠΌΠ΅Π½ΠΈ Ρ‚ΠΎΠ»ΡŒΠΊΠΎ ΠΎΠ΄ΠΈΠ½ Ρ‡Π΅Π»ΠΎΠ²Π΅ΠΊ ΠΊΠΎΡ€Ρ€Π΅ΠΊΡ‚ΠΈΡ€ΡƒΠ΅Ρ‚ Π΄Π°Π½Π½Ρ‹ΠΉ Ρ„Π°ΠΉΠ». Π’ΠΎΡ‚ ΠΏΠΎΡ‡Π΅ΠΌΡƒ Ρ‚ΠΎΠ»ΡŒΠΊΠΎ Ρƒ ΠΎΠ΄Π½ΠΎΠΉ ΠΊΠΎΠΏΠΈΠΈ Π΄Π°Π½Π½ΠΎΠΉ вСрсии Ρ„Π°ΠΉΠ»Π° Π΅ΡΡ‚ΡŒ ΠΏΡ€Π°Π²ΠΎ Π½Π° запись. Когда Ρ„Π°ΠΉΠ» ΠΈΠ·Π²Π»Π΅Ρ‡Π΅Π½ Π² ΠΊΠ°Ρ‚Π°Π»ΠΎΠ³ с ΠΏΡ€Π°Π²ΠΎΠΌ Π½Π° запись, RCS-Ρ„Π°ΠΉΠ» блокируСтся. Π—Π°Π±Π»ΠΎΠΊΠΈΡ€ΡƒΠΉΡ‚Π΅ копию Ρ„Π°ΠΉΠ»Π°

$ со -l important.c

important.с,v --> important.c

revision 1.1 (locked) done

$

ΠΈ заглянитС Π² ΠΊΠ°Ρ‚Π°Π»ΠΎΠ³:

$ ls -l

-rw-r--r-- 1 neil users 225 2007-07-09 07:55 important.c

-r--r--r-- 1 neil users 453 2007-07-09 07:55 important.с,v

$

Π’Π΅ΠΏΠ΅Ρ€ΡŒ Ρƒ вас появился Ρ„Π°ΠΉΠ» для рСдактирования ΠΈ внСсСния Π½ΠΎΠ²Ρ‹Ρ… ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΠΉ. Π’Ρ‹ΠΏΠΎΠ»Π½ΠΈΡ‚Π΅ ΠΊΠΎΡ€Ρ€Π΅ΠΊΡ‚ΠΈΡ€ΠΎΠ²ΠΊΡƒ, сохранитС Π½ΠΎΠ²ΡƒΡŽ Π²Π΅Ρ€ΡΠΈΡŽ ΠΈ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠΉΡ‚Π΅ ΠΊΠΎΠΌΠ°Π½Π΄Ρƒ ci Π΅Ρ‰Π΅ Ρ€Π°Π· для сохранСния ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΠΉ. БСкция Π²Ρ‹Π²ΠΎΠ΄Π° Π² Ρ„Π°ΠΉΠ»Π΅ important.c Ρ‚Π΅ΠΏΠ΅Ρ€ΡŒ ΡΠ»Π΅Π΄ΡƒΡŽΡ‰Π°Ρ:

printf("Hello World\n");

printf("This is an extra line added later\n");

ΠŸΡ€ΠΈΠΌΠ΅Π½ΠΈΡ‚Π΅ ci ΡΠ»Π΅Π΄ΡƒΡŽΡ‰ΠΈΠΌ ΠΎΠ±Ρ€Π°Π·ΠΎΠΌ:

$ ci important.с

important.с,v <-- important.c

new revision: 1.2;

previous revision: 1.1

enter log message, terminated with single or end of file:

>> Added an extra line to be printed out.

>> .

done

$

ΠŸΡ€ΠΈΠΌΠ΅Ρ‡Π°Π½ΠΈΠ΅

Для записи ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΠΉ ΠΈ сохранСния Π±Π»ΠΎΠΊΠΈΡ€ΠΎΠ²ΠΊΠΈ, Ρ€Π°Π·Ρ€Π΅ΡˆΠ°ΡŽΡ‰Π΅ΠΉ ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»ΡŽ ΠΏΡ€ΠΎΠ΄ΠΎΠ»ΠΆΠΈΡ‚ΡŒ Ρ€Π°Π±ΠΎΡ‚Ρƒ с Ρ„Π°ΠΉΠ»ΠΎΠΌ, слСдуСт Π²Ρ‹Π·Π²Π°Ρ‚ΡŒ ΠΊΠΎΠΌΠ°Π½Π΄Ρƒ ci с ΠΎΠΏΡ†ΠΈΠ΅ΠΉ -l. Π€Π°ΠΉΠ» Π±ΡƒΠ΄Π΅Ρ‚ автоматичСски снова ΠΈΠ·Π²Π»Π΅Ρ‡Π΅Π½ Π² ΠΊΠ°Ρ‚Π°Π»ΠΎΠ³ для Ρ‚ΠΎΠ³ΠΎ ΠΆΠ΅ самого ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»Ρ.

Π’Ρ‹ сохранили ΠΎΠ±Π½ΠΎΠ²Π»Π΅Π½Π½ΡƒΡŽ Π²Π΅Ρ€ΡΠΈΡŽ Ρ„Π°ΠΉΠ»Π°. Если сСйчас Π·Π°Π³Π»ΡΠ½ΡƒΡ‚ΡŒ Π² ΠΊΠ°Ρ‚Π°Π»ΠΎΠ³, ΠΌΠΎΠΆΠ½ΠΎ ΡƒΠ²ΠΈΠ΄Π΅Ρ‚ΡŒ, Ρ‡Ρ‚ΠΎ Ρ„Π°ΠΉΠ» important.c снова ΡƒΠ΄Π°Π»Π΅Π½.

$ ls -l

-r--r--r-- 1 neil users 635 2007-07-09 07:55 important.с,v

$

Команда rlog

Часто Π±Ρ‹Π²Π°Π΅Ρ‚ ΠΏΠΎΠ»Π΅Π·Π½ΠΎ ΠΏΡ€ΠΎΡΠΌΠΎΡ‚Ρ€Π΅Ρ‚ΡŒ сводку ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΠΉ, внСсСнных Π² Ρ„Π°ΠΉΠ». Π‘Π΄Π΅Π»Π°Ρ‚ΡŒ это ΠΌΠΎΠΆΠ½ΠΎ с ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ ΠΊΠΎΠΌΠ°Π½Π΄Ρ‹ rlog.

$ rlog important.с

RCS file: important.c,v

Working file: important.c

head: 1.2

branch:

locks: strict

access list:

symbolic names:

keyword substitution: kv

total revisions: 2; selected revisions: 2

description:

This is an important demonstration file

------------------------

revision 1.2

date: 2007/07/09 06:57:33; author: neil; state: Exp; lines: +1 -0

Added an extra line to be printed out.

------------------------

revision 1.1

date: 2007/07/09 06:54:36; author: neil; state: Exp;

Initial revision

==================================================================

$

Π’ ΠΏΠ΅Ρ€Π²ΠΎΠΉ части даСтся описаниС Ρ„Π°ΠΉΠ»Π° ΠΈ ΠΎΠΏΡ†ΠΈΠΉ, ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅ΠΌΡ‹Ρ… ΠΊΠΎΠΌΠ°Π½Π΄ΠΎΠΉ rcs. Π”Π°Π»Π΅Π΅ ΠΊΠΎΠΌΠ°Π½Π΄Π° rlog пСрСчисляСт вСрсии Ρ„Π°ΠΉΠ»Π°, начиная с самой свСТСй, вмСстС с тСкстом, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ Π²Ρ‹ Π²Π²ΠΎΠ΄ΠΈΡ‚Π΅ ΠΏΡ€ΠΈ сохранСнии вСрсии. lines:+1-0 Π² вСрсии 1.2 ΠΈΠ½Ρ„ΠΎΡ€ΠΌΠΈΡ€ΡƒΠ΅Ρ‚ вас ΠΎ Ρ‚ΠΎΠΌ, Ρ‡Ρ‚ΠΎ Π±Ρ‹Π»Π° вставлСна ΠΎΠ΄Π½Π° строка ΠΈ Π½ΠΈ ΠΎΠ΄Π½Π° строка Π½Π΅ Π±Ρ‹Π»Π° ΡƒΠ΄Π°Π»Π΅Π½Π°.

ΠŸΡ€ΠΈΠΌΠ΅Ρ‡Π°Π½ΠΈΠ΅

Π£Ρ‡Ρ‚ΠΈΡ‚Π΅, Ρ‡Ρ‚ΠΎ врСмя ΠΌΠΎΠ΄ΠΈΡ„ΠΈΠΊΠ°Ρ†ΠΈΠΈ Ρ„Π°ΠΉΠ»Π° записываСтся Π±Π΅Π· ΡƒΡ‡Π΅Ρ‚Π° Π»Π΅Ρ‚Π½Π΅Π³ΠΎ Π²Ρ€Π΅ΠΌΠ΅Π½ΠΈ, Ρ‡Ρ‚ΠΎΠ±Ρ‹ ΠΈΠ·Π±Π΅ΠΆΠ°Ρ‚ΡŒ ΠΏΡ€ΠΎΠ±Π»Π΅ΠΌ ΠΏΡ€ΠΈ ΠΏΠ΅Ρ€Π΅Π²ΠΎΠ΄Π΅ часов.

Π’Π΅ΠΏΠ΅Ρ€ΡŒ, Ссли Π²Ρ‹ Ρ…ΠΎΡ‚ΠΈΡ‚Π΅ Π²Π΅Ρ€Π½ΡƒΡ‚ΡŒ ΠΏΠ΅Ρ€Π²ΡƒΡŽ Π²Π΅Ρ€ΡΠΈΡŽ Ρ„Π°ΠΉΠ»Π°, ΠΌΠΎΠΆΠ½ΠΎ Π·Π°ΠΏΡ€ΠΎΡΠΈΡ‚ΡŒ ΠΊΠΎΠΌΠ°Π½Π΄Ρƒ со, ΡƒΠΊΠ°Π·Π°Π² Π½ΡƒΠΆΠ½ΡƒΡŽ Π²Π΅Ρ€ΡΠΈΡŽ.

$ со -r1.1 important.c

important.с,v --> important.c

revision 1.1

done

$

Π£ ΠΊΠΎΠΌΠ°Π½Π΄Ρ‹ ci Ρ‚ΠΎΠΆΠ΅ Π΅ΡΡ‚ΡŒ опция -r, которая присваиваСт Π½ΠΎΠΌΠ΅Ρ€Ρƒ вСрсии Π·Π°Π΄Π°Π½Π½ΠΎΠ΅ Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅. НапримСр, ΠΊΠΎΠΌΠ°Π½Π΄Π°

ci -r2 important.c

сохранит Ρ„Π°ΠΉΠ» important.c ΠΊΠ°ΠΊ Π²Π΅Ρ€ΡΠΈΡŽ 2.1. ОбС систСмы, RCS ΠΈ SCCS, ΠΏΠΎ ΡƒΠΌΠΎΠ»Ρ‡Π°Π½ΠΈΡŽ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΡŽΡ‚ 1 ΠΊΠ°ΠΊ наимСньший Π½ΠΎΠΌΠ΅Ρ€ вСрсии.

Команда rcsdiff

Если Π²Ρ‹ Ρ…ΠΎΡ‚ΠΈΡ‚Π΅ Π·Π½Π°Ρ‚ΡŒ, Ρ‡Π΅ΠΌ ΠΎΡ‚Π»ΠΈΡ‡Π°ΡŽΡ‚ΡΡ Π΄Π²Π΅ вСрсии, ΠΌΠΎΠΆΠ½ΠΎ ΠΏΡ€ΠΈΠΌΠ΅Π½ΠΈΡ‚ΡŒ ΠΊΠΎΠΌΠ°Π½Π΄Ρƒ rcsdiff:

$ rcsdiff -r1.1 -r1.2 important.c

=================================================

RCS file: important.c,v

retrieving revision 1.1

retrieving revision 1.2

diff -r1.1 -r1.2

11a12

> printf("This is an extra line added later\n");

$

Π’Ρ‹Π²ΠΎΠ΄ ΠΈΠ½Ρ„ΠΎΡ€ΠΌΠΈΡ€ΡƒΠ΅Ρ‚ вас ΠΎ Ρ‚ΠΎΠΌ, Ρ‡Ρ‚ΠΎ Π±Ρ‹Π»Π° Π΄ΠΎΠ±Π°Π²Π»Π΅Π½Π° ΠΎΠ΄Π½Π° строка послС исходной строки 11.

ΠžΠ±ΠΎΠ·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ вСрсий

БистСма RCS ΠΌΠΎΠΆΠ΅Ρ‚ ΠΏΡ€ΠΈΠΌΠ΅Π½ΡΡ‚ΡŒ ΡΠΏΠ΅Ρ†ΠΈΠ°Π»ΡŒΠ½Ρ‹Π΅ строки (макросы) Π²Π½ΡƒΡ‚Ρ€ΠΈ исходного Ρ„Π°ΠΉΠ»Π°, ΠΏΠΎΠΌΠΎΠ³Π°ΡŽΡ‰ΠΈΠ΅ ΠΎΡ‚ΡΠ»Π΅ΠΆΠΈΠ²Π°Ρ‚ΡŒ измСнСния. НаиболСС популярны Π΄Π²Π° макроса: $RCSfile$ ΠΈ $Id$. ΠœΠ°ΠΊΡ€ΠΎΡ $RCSfile$ замСщаСтся ΠΈΠΌΠ΅Π½Π΅ΠΌ Ρ„Π°ΠΉΠ»Π°, Π° макрос $Id$ β€” строкой, ΠΎΠ±ΠΎΠ·Π½Π°Ρ‡Π°ΡŽΡ‰Π΅ΠΉ Π²Π΅Ρ€ΡΠΈΡŽ. ΠŸΠΎΠ»Π½Ρ‹ΠΉ список ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΈΠ²Π°Π΅ΠΌΡ‹Ρ… ΡΠΏΠ΅Ρ†ΠΈΠ°Π»ΡŒΠ½Ρ‹Ρ… строк ΠΌΠΎΠΆΠ½ΠΎ Π½Π°ΠΉΡ‚ΠΈ Π² ΠΈΠ½Ρ‚Π΅Ρ€Π°ΠΊΡ‚ΠΈΠ²Π½ΠΎΠΌ руководствС. ΠœΠ°ΠΊΡ€ΠΎΡΡ‹ Π·Π°ΠΌΠ΅Ρ‰Π°ΡŽΡ‚ΡΡ, ΠΊΠΎΠ³Π΄Π° вСрсия Ρ„Π°ΠΉΠ»Π° извлСкаСтся ΠΈΠ· RCS-Ρ„Π°ΠΉΠ»Π°, ΠΈ ΠΎΠ±Π½ΠΎΠ²Π»ΡΡŽΡ‚ΡΡ автоматичСски, ΠΊΠΎΠ³Π΄Π° вСрсия рСгистрируСтся ΠΈ сохраняСтся Π² RCS-Ρ„Π°ΠΉΠ»Π΅.

Π”Π°Π²Π°ΠΉΡ‚Π΅ Π² Ρ‚Ρ€Π΅Ρ‚ΠΈΠΉ Ρ€Π°Π· ΠΈΠ·ΠΌΠ΅Π½ΠΈΠΌ Ρ„Π°ΠΉΠ» ΠΈ Π΄ΠΎΠ±Π°Π²ΠΈΠΌ нСсколько Ρ‚Π°ΠΊΠΈΡ… макросов:

$ со -l important.с

important.c,v --> important.с

revision 1.2 (locked)

done

$

ΠžΡ‚Ρ€Π΅Π΄Π°ΠΊΡ‚ΠΈΡ€ΡƒΠΉΡ‚Π΅ Ρ„Π°ΠΉΠ» Π² соотвСтствии с ΠΏΡ€ΠΈΠ²Π΅Π΄Π΅Π½Π½Ρ‹ΠΌ Π΄Π°Π»Π΅Π΅ ΠΊΠΎΠ΄ΠΎΠΌ:

#include <stdlib.h>

#include <stdio.h>


/*

 Π­Ρ‚ΠΎ Π²Π°ΠΆΠ½Ρ‹ΠΉ Ρ„Π°ΠΉΠ» для управлСния Π΄Π°Π½Π½Ρ‹ΠΌ ΠΏΡ€ΠΎΠ΅ΠΊΡ‚ΠΎΠΌ.

 Π’ Π½Π΅ΠΌ Ρ€Π΅Π°Π»ΠΈΠ·ΠΎΠ²Π°Π½Π° каноничСская ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ° "Hello World".

 Filename: $RCSfile$

*/

static char *RCSinfo = "$Id$";


int main() {

 printf ("Hello World\n");

 printf("This is an extra line added later\n");

 printf("This file is under RCS control. Its ID is\n%s\n", RCSinfo);

 exit(EXIT_SUCCESS);

}

Π’Π΅ΠΏΠ΅Ρ€ΡŒ сохранитС эту Π²Π΅Ρ€ΡΠΈΡŽ ΠΈ посмотритС, ΠΊΠ°ΠΊ RCS управляСт ΡΠΏΠ΅Ρ†ΠΈΠ°Π»ΡŒΠ½Ρ‹ΠΌΠΈ строками:

$ ci important.с

important.с,v <-- important.c

new revision: 1.3;

previous revision: 1.2

enter log message, terminated with single '.' or end of file:

>> Added $RCSfile$ and $Id$ strings

>> .

done

$

Если заглянСтС Π² ΠΊΠ°Ρ‚Π°Π»ΠΎΠ³, Ρ‚ΠΎ Π½Π°ΠΉΠ΄Π΅Ρ‚Π΅ Ρ‚ΠΎΠ»ΡŒΠΊΠΎ RCS-Ρ„Π°ΠΉΠ».

$ ls -l

-r--r--r-- 1 neil users 907 2007-07-09 08:07 important.с,v

$

Если Π²Ρ‹ ΠΈΠ·Π²Π»Π΅Ρ‡Π΅Ρ‚Π΅ Ρ‚Π΅ΠΊΡƒΡ‰ΡƒΡŽ Π²Π΅Ρ€ΡΠΈΡŽ исходного Ρ„Π°ΠΉΠ»Π° (с ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ ΠΊΠΎΠΌΠ°Π½Π΄Ρ‹ со) ΠΈ просмотритС Π΅Π³ΠΎ, Ρ‚ΠΎ ΡƒΠ²ΠΈΠ΄ΠΈΡ‚Π΅, Ρ‡Ρ‚ΠΎ макросы раскрыты:

#include <stdlib.h>

#include <stdio.h>


/*

 Π­Ρ‚ΠΎ Π²Π°ΠΆΠ½Ρ‹ΠΉ Ρ„Π°ΠΉΠ» для управлСния Π΄Π°Π½Π½Ρ‹ΠΌ ΠΏΡ€ΠΎΠ΅ΠΊΡ‚ΠΎΠΌ.

 Π’ Π½Π΅ΠΌ Ρ€Π΅Π°Π»ΠΈΠ·ΠΎΠ²Π°Π½Π° каноничСская ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ° "Hello World".

 Filename: $RCSfile: important.с,v $

*/

static char *RCSinfo = "$Id: important.c,v 1.3 2007/07/09. 07:07:08 neil Exp $";


int main() {

 printf("Hello World\n");

 printf("This is an extra line added later\n");

 printf("This file is under RCS control. Its ID is\n%s\n", RCSinfo);

 exit(EXIT_SUCCESS);

}

А Ρ‚Π΅ΠΏΠ΅Ρ€ΡŒ Π²Ρ‹ΠΏΠΎΠ»Π½ΠΈΡ‚Π΅ ΡƒΠΏΡ€Π°ΠΆΠ½Π΅Π½ΠΈΠ΅ 9.6.

Π£ΠΏΡ€Π°ΠΆΠ½Π΅Π½ΠΈΠ΅ 9.6. GNU-вСрсия make с RCS

Π£ ΠΊΠΎΠΌΠ°Π½Π΄Ρ‹ make вСрсии GNU Π΅ΡΡ‚ΡŒ нСсколько встроСнных ΠΏΡ€Π°Π²ΠΈΠ» для управлСния RCS-Ρ„Π°ΠΉΠ»Π°ΠΌΠΈ. Π’ этом ΠΏΡ€ΠΈΠΌΠ΅Ρ€Π΅ Π²Ρ‹ ΡƒΠ²ΠΈΠ΄ΠΈΡ‚Π΅, ΠΊΠ°ΠΊ Ρ€Π°Π±ΠΎΡ‚Π°Ρ‚ΡŒ с ΠΎΡ‚ΡΡƒΡ‚ΡΡ‚Π²ΡƒΡŽΡ‰ΠΈΠΌ исходным Ρ„Π°ΠΉΠ»ΠΎΠΌ.

$ rm -f important.с

$ make important

со important.с,v important.c

important.с,v --> important.c

revision 1.3

done

сс -c important.c -o important.о сс important.о -о important

rm important.о important.с

$

Как это Ρ€Π°Π±ΠΎΡ‚Π°Π΅Ρ‚

Π£ ΠΊΠΎΠΌΠ°Π½Π΄Ρ‹ make Π΅ΡΡ‚ΡŒ стандартноС ΠΏΡ€Π°Π²ΠΈΠ»ΠΎ для создания Ρ„Π°ΠΉΠ»Π° Π±Π΅Π· Ρ€Π°ΡΡˆΠΈΡ€Π΅Π½ΠΈΡ с ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ компиляции Ρ„Π°ΠΉΠ»Π° с Ρ‚Π΅ΠΌ ΠΆΠ΅ ΠΈΠΌΠ΅Π½Π΅ΠΌ ΠΈ Ρ€Π°ΡΡˆΠΈΡ€Π΅Π½ΠΈΠ΅ΠΌ с. Π’Ρ‚ΠΎΡ€ΠΎΠ΅ стандартноС ΠΏΡ€Π°Π²ΠΈΠ»ΠΎ Ρ€Π°Π·Ρ€Π΅ΡˆΠ°Π΅Ρ‚ make ΡΠΎΠ·Π΄Π°Ρ‚ΡŒ Ρ„Π°ΠΉΠ» important.c ΠΈΠ· Ρ„Π°ΠΉΠ»Π° important.c,v, ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΡ RCS. ΠŸΠΎΡΠΊΠΎΠ»ΡŒΠΊΡƒ Π½Π΅Ρ‚ Ρ„Π°ΠΉΠ»Π° с ΠΈΠΌΠ΅Π½Π΅ΠΌ important.c, ΠΊΠΎΠΌΠ°Π½Π΄Π° make создала Ρ„Π°ΠΉΠ» с Ρ€Π°ΡΡˆΠΈΡ€Π΅Π½ΠΈΠ΅ΠΌ с, ΠΏΠΎΠ»ΡƒΡ‡ΠΈΠ² послСднюю Π²Π΅Ρ€ΡΠΈΡŽ Ρ„Π°ΠΉΠ»Π° с ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ ΠΊΠΎΠΌΠ°Π½Π΄Ρ‹ со. ПослС компиляции ΠΎΠ½Π° Π½Π°Π²Π΅Π»Π° порядок, ΡƒΠ΄Π°Π»ΠΈΠ² Ρ„Π°ΠΉΠ» important.c.