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

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

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

N wrox/chap9-cvs/hello.c

N wrox/chap9-cvs/Makefile

NΠΎ conflicts created by this import

информируя вас ΠΎ Ρ‚ΠΎΠΌ, Ρ‡Ρ‚ΠΎ Π΄Π²Π° Ρ„Π°ΠΉΠ»Π° ΠΈΠΌΠΏΠΎΡ€Ρ‚ΠΈΡ€ΠΎΠ²Π°Π½Ρ‹ ΠΊΠΎΡ€Ρ€Π΅ΠΊΡ‚Π½ΠΎ.

БСйчас самоС врСмя ΠΏΡ€ΠΎΠ²Π΅Ρ€ΠΈΡ‚ΡŒ Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡ‚ΡŒ извлСчСния Π²Π°ΡˆΠΈΡ… Ρ„Π°ΠΉΠ»ΠΎΠ² ΠΈΠ· систСмы CVS. Π’Ρ‹ ΠΌΠΎΠΆΠ΅Ρ‚Π΅ ΡΠΎΠ·Π΄Π°Ρ‚ΡŒ ΠΊΠ°Ρ‚Π°Π»ΠΎΠ³ junk ΠΈ Π²Π΅Ρ€Π½ΡƒΡ‚ΡŒ Π² Π½Π΅Π³ΠΎ Ρ„Π°ΠΉΠ»Ρ‹, Ρ‡Ρ‚ΠΎΠ±Ρ‹ ΡƒΠ±Π΅Π΄ΠΈΡ‚ΡŒΡΡ Π² Ρ‚ΠΎΠΌ, Ρ‡Ρ‚ΠΎ всС Π½ΠΎΡ€ΠΌΠ°Π»ΡŒΠ½ΠΎ:

$ mkdir junk

$ cd junk

$ cvs checkout wrox/chap9-cvs

U wrox/chap9-cvs/Makefile

U wrox/chap9-cvs/hello.с

Π’Ρ‹ ΡƒΠΊΠ°Π·Ρ‹Π²Π°Π΅Ρ‚Π΅ CVS Ρ‚ΠΎΡ‚ ΠΆΠ΅ ΠΏΡƒΡ‚ΡŒ, Ρ‡Ρ‚ΠΎ ΠΈ ΠΏΡ€ΠΈ ΠΊΠΎΠΏΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠΈ Ρ„Π°ΠΉΠ»ΠΎΠ² Π² Ρ€Π΅ΠΏΠΎΠ·ΠΈΡ‚Π°Ρ€ΠΈΠΉ. БистСма CVS создаСт Π² Ρ‚Π΅ΠΊΡƒΡ‰Π΅ΠΌ ΠΊΠ°Ρ‚Π°Π»ΠΎΠ³Π΅ ΠΊΠ°Ρ‚Π°Π»ΠΎΠ³ wrox/chap9-cvs ΠΈ ΠΏΠΎΠΌΠ΅Ρ‰Π°Π΅Ρ‚ Ρ‚ΡƒΠ΄Π° Ρ„Π°ΠΉΠ»Ρ‹.

Π’Π΅ΠΏΠ΅Ρ€ΡŒ Π²Ρ‹ Π³ΠΎΡ‚ΠΎΠ²Ρ‹ внСсти Π½Π΅ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ измСнСния Π² ваш ΠΏΡ€ΠΎΠ΅ΠΊΡ‚. ΠžΡ‚Ρ€Π΅Π΄Π°ΠΊΡ‚ΠΈΡ€ΡƒΠΉΡ‚Π΅ Ρ„Π°ΠΉΠ» hello.c Π² ΠΊΠ°Ρ‚Π°Π»ΠΎΠ³Π΅ wrox/chap9-cvs, вставив Π² Π½Π΅Π³ΠΎ строку

printf("Have a nice day\n");

Π—Π°Ρ‚Π΅ΠΌ ΠΎΡ‚ΠΊΠΎΠΌΠΏΠΈΠ»ΠΈΡ€ΡƒΠΉΡ‚Π΅ Π·Π°Π½ΠΎΠ²ΠΎ ΠΈ Π²Ρ‹ΠΏΠΎΠ»Π½ΠΈΡ‚Π΅ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡƒ, Ρ‡Ρ‚ΠΎΠ±Ρ‹ ΡƒΠ±Π΅Π΄ΠΈΡ‚ΡŒΡΡ Π² Ρ‚ΠΎΠΌ, Ρ‡Ρ‚ΠΎ всС Π² порядкС:

$ make

сс hello.c -о hello

$ ./hello

Hello World

Have a nice day

$

Π’Ρ‹ ΠΌΠΎΠΆΠ΅Ρ‚Π΅ ΡΠΏΡ€ΠΎΡΠΈΡ‚ΡŒ Ρƒ систСмы CVS ΠΎ Ρ‚ΠΎΠΌ, Ρ‡Ρ‚ΠΎ измСнилось Π² ΠΏΡ€ΠΎΠ΅ΠΊΡ‚Π΅. НС Π½ΡƒΠΆΠ½ΠΎ ΡΠΎΠΎΠ±Ρ‰Π°Ρ‚ΡŒ CVS, ΠΊΠ°ΠΊΠΎΠΉ ΠΈΠΌΠ΅Π½Π½ΠΎ Ρ„Π°ΠΉΠ» вас интСрСсуСт, ΠΎΠ½Π° ΠΌΠΎΠΆΠ΅Ρ‚ Ρ€Π°Π±ΠΎΡ‚Π°Ρ‚ΡŒ со всСм ΠΊΠ°Ρ‚Π°Π»ΠΎΠ³ΠΎΠΌ ΠΎΠ΄Π½ΠΎΠ²Ρ€Π΅ΠΌΠ΅Π½Π½ΠΎ.

$ cvs diff

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 day\n");

Π’Ρ‹ Π΄ΠΎΠ²ΠΎΠ»ΡŒΠ½Ρ‹ внСсСнным ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΠ΅ΠΌ ΠΈ Ρ…ΠΎΡ‚ΠΈΡ‚Π΅ Π·Π°Ρ„ΠΈΠΊΡΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ Π΅Π³ΠΎ Π² CVS.

Когда Π²Ρ‹ фиксируСтС ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΠ΅ с ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ систСмы CVS, ΠΎΠ½Π° запускаСт Ρ€Π΅Π΄Π°ΠΊΡ‚ΠΎΡ€, ΠΏΠΎΠ·Π²ΠΎΠ»ΡΡŽΡ‰ΠΈΠΉ Π²Π°ΠΌ ввСсти рСгистрационноС сообщСниС. Π£ вас Π΅ΡΡ‚ΡŒ Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡ‚ΡŒ Π·Π°Π΄Π°Ρ‚ΡŒ ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½ΡƒΡŽ окруТСния CVSEDITOR для запуска ΠΎΠΏΡ€Π΅Π΄Π΅Π»Π΅Π½Π½ΠΎΠ³ΠΎ Ρ€Π΅Π΄Π°ΠΊΡ‚ΠΎΡ€Π° ΠΏΠ΅Ρ€Π΅Π΄ Π²Ρ‹ΠΏΠΎΠ»Π½Π΅Π½ΠΈΠ΅ΠΌ ΠΊΠΎΠΌΠ°Π½Π΄Ρ‹ commit:

$ cvs commit

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 (Π½Π°Ρ‡Π°Π»ΡŒΠ½Π°Ρ вСрсия):

$ cvs rdiff -r1.1 wrox/chap9-cvs

БистСма 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 World\n");

+ printf("Have a nice day\n");

 exit (EXIT_SUCCESS);

}

ΠŸΡ€Π΅Π΄ΠΏΠΎΠ»ΠΎΠΆΠΈΠΌ, Ρ‡Ρ‚ΠΎ Ρƒ вас Π΅ΡΡ‚ΡŒ копия, извлСчСнная ΠΈΠ· систСмы CVS Π² Π»ΠΎΠΊΠ°Π»ΡŒΠ½Ρ‹ΠΉ ΠΊΠ°Ρ‚Π°Π»ΠΎΠ³ Π½Π° врСмя, ΠΈ Π²Ρ‹ Ρ…ΠΎΡ‚ΠΈΡ‚Π΅ ΠΎΠ±Π½ΠΎΠ²ΠΈΡ‚ΡŒ Ρ„Π°ΠΉΠ»Ρ‹ Π² вашСм локальном ΠΊΠ°Ρ‚Π°Π»ΠΎΠ³Π΅, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ ΠΊΠΎΡ€Ρ€Π΅ΠΊΡ‚ΠΈΡ€ΠΎΠ²Π°Π»ΠΈΡΡŒ Π΄Ρ€ΡƒΠ³ΠΈΠΌΠΈ ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»ΡΠΌΠΈ, Π° Π²Ρ‹ сами ΠΈΡ… Π½Π΅ Ρ€Π΅Π΄Π°ΠΊΡ‚ΠΈΡ€ΠΎΠ²Π°Π»ΠΈ. CVS ΠΌΠΎΠΆΠ΅Ρ‚ ΡΠ΄Π΅Π»Π°Ρ‚ΡŒ это для вас, ΠΏΡ€ΠΈΠΌΠ΅Π½ΠΈΠ² ΠΊΠΎΠΌΠ°Π½Π΄Ρƒ update. ΠŸΠ΅Ρ€Π΅ΠΉΠ΄ΠΈΡ‚Π΅ Π½Π° Π²Π΅Ρ€Ρ…Π½ΠΈΠΉ ΡƒΡ€ΠΎΠ²Π΅Π½ΡŒ ΠΏΡƒΡ‚ΠΈ, Π² Π΄Π°Π½Π½ΠΎΠΌ случаС Π² ΠΊΠ°Ρ‚Π°Π»ΠΎΠ³, содСрТащий ΠΊΠ°Ρ‚Π°Π»ΠΎΠ³ wrox, ΠΈ Π²Ρ‹ΠΏΠΎΠ»Π½ΠΈΡ‚Π΅ ΡΠ»Π΅Π΄ΡƒΡŽΡ‰ΡƒΡŽ ΠΊΠΎΠΌΠ°Π½Π΄Ρƒ:

$ cvs update -Pd wrox/chap9-cv3

CVS ΠΎΠ±Π½ΠΎΠ²ΠΈΡ‚ Ρ„Π°ΠΉΠ»Ρ‹, извлСкая ΠΈΠ· рСпозитария Ρ„Π°ΠΉΠ»Ρ‹, ΠΈΠ·ΠΌΠ΅Π½Π΅Π½Π½Ρ‹Π΅ Π΄Ρ€ΡƒΠ³ΠΈΠΌΠΈ ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»ΡΠΌΠΈ, Π° Π½Π΅ Π²Π°ΠΌΠΈ, ΠΈ помСщая ΠΈΡ… Π² ваш Π»ΠΎΠΊΠ°Π»ΡŒΠ½Ρ‹ΠΉ ΠΊΠ°Ρ‚Π°Π»ΠΎΠ³. ΠšΠΎΠ½Π΅Ρ‡Π½ΠΎ, Π½Π΅ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ измСнСния ΠΌΠΎΠ³ΡƒΡ‚ ΠΎΠΊΠ°Π·Π°Ρ‚ΡŒΡΡ нСсовмСстимыми с вашими, Π½ΠΎ это ΠΏΡ€ΠΎΠ±Π»Π΅ΠΌΠ°, Π½Π°Π΄ ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠΉ Π²Π°ΠΌ придСтся ΠΏΠΎΡ‚Ρ€ΡƒΠ΄ΠΈΡ‚ΡŒΡΡ. БистСма CVS Ρ…ΠΎΡ€ΠΎΡˆΠ°, Π½ΠΎ ΠΎΠ½Π° Π½Π΅ ΡƒΠΌΠ΅Π΅Ρ‚ Ρ‚Π²ΠΎΡ€ΠΈΡ‚ΡŒ чудСса!

К этому ΠΌΠΎΠΌΠ΅Π½Ρ‚Ρƒ Π²Ρ‹ ΡƒΠΆΠ΅ ΡƒΠ²ΠΈΠ΄Π΅Π»ΠΈ, Ρ‡Ρ‚ΠΎ использованиС CVS ΠΎΡ‡Π΅Π½ΡŒ ΠΏΠΎΡ…ΠΎΠΆΠ΅ Π½Π° ΠΏΡ€ΠΈΠΌΠ΅Π½Π΅Π½ΠΈΠ΅ RCS. Но Ρƒ Π½Π΅Π΅ Π΅ΡΡ‚ΡŒ сущСствСнноС ΠΎΡ‚Π»ΠΈΡ‡ΠΈΠ΅, ΠΎ ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠΌ ΠΌΡ‹ ΠΏΠΎΠΊΠ° Π½Π΅. ΡƒΠΏΠΎΠΌΠΈΠ½Π°Π»ΠΈ, β€” ΡΠΏΠΎΡΠΎΠ±Π½ΠΎΡΡ‚ΡŒ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΎΠ½ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ Π² сСти Π±Π΅Π· смонтированной Ρ„Π°ΠΉΠ»ΠΎΠ²ΠΎΠΉ систСмы.

Доступ ΠΊ CVS ΠΏΠΎ сСти

Π’Ρ‹ сообщили систСмС CVS, Π³Π΄Π΅ находится Ρ€Π΅ΠΏΠΎΠ·ΠΈΡ‚Π°Ρ€ΠΈΠΉ, примСняя ΠΎΠΏΡ†ΠΈΡŽ -d Π² ΠΊΠ°ΠΆΠ΄ΠΎΠΉ ΠΊΠΎΠΌΠ°Π½Π΄Π΅ ΠΈΠ»ΠΈ установив ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½ΡƒΡŽ окруТСния CVSROOT. Если Π²Ρ‹ Ρ…ΠΎΡ‚ΠΈΡ‚Π΅ Π΄Π΅ΠΉΡΡ‚Π²ΠΎΠ²Π°Ρ‚ΡŒ Ρ‡Π΅Ρ€Π΅Π· ΡΠ΅Ρ‚ΡŒ, Ρ‚ΠΎ просто ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚Π΅ Ρ€Π°ΡΡˆΠΈΡ€Π΅Π½Π½ΡƒΡŽ ΡΠΈΠ½Ρ‚Π°ΠΊΡΠΈΡ‡Π΅ΡΠΊΡƒΡŽ запись для этого ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€Π°. НапримСр, Π²ΠΎ врСмя написания ΠΊΠ½ΠΈΠ³ΠΈ всС исходныС Ρ„Π°ΠΉΠ»Ρ‹ Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚ΠΊΠΈ GNOME (GNU Network Object Model Environment, сСтСвая ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Π½Π°Ρ срСда GNU β€” популярная графичСская Π½Π°ΡΡ‚ΠΎΠ»ΡŒΠ½Π°Ρ систСма с ΠΎΡ‚ΠΊΡ€Ρ‹Ρ‚Ρ‹ΠΌ исходным ΠΊΠΎΠ΄ΠΎΠΌ) Π±Ρ‹Π»ΠΈ доступны Π² Π˜Π½Ρ‚Π΅Ρ€Π½Π΅Ρ‚Π΅ благодаря систСмС CVS. Π’Π°ΠΌ Π½ΡƒΠΆΠ½ΠΎ Ρ‚ΠΎΠ»ΡŒΠΊΠΎ Π·Π°Π΄Π°Ρ‚ΡŒ мСсторасполоТСниС подходящСго CVS-рСпозитария, ΡƒΠΊΠ°Π·Π°Π² Π½Π΅ΠΊΠΎΡ‚ΠΎΡ€ΡƒΡŽ ΡΠ΅Ρ‚Π΅Π²ΡƒΡŽ ΠΈΠ½Ρ„ΠΎΡ€ΠΌΠ°Ρ†ΠΈΡŽ ΠΏΠ΅Ρ€Π΅Π΄ спСцификатором ΠΏΡƒΡ‚ΠΈ ΠΊ Π½Π΅ΠΌΡƒ.

Π”Ρ€ΡƒΠ³ΠΈΠΌ ΠΏΡ€ΠΈΠΌΠ΅Ρ€ΠΎΠΌ ΠΌΠΎΠΆΠ΅Ρ‚ ΡΠ»ΡƒΠΆΠΈΡ‚ΡŒ ΡƒΠΊΠ°Π·Π°Π½ΠΈΠ΅ Π½Π° CVS-Ρ€Π΅ΠΏΠΎΠ·ΠΈΡ‚Π°Ρ€ΠΈΠΉ Web-стандартов консорциума W3C, Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½ΠΎΠΉ CVSROOT ΠΏΡ€ΠΈ этом Π΄ΠΎΠ»ΠΆΠ½ΠΎ Π±Ρ‹Ρ‚ΡŒ Ρ€Π°Π²Π½ΠΎ :pserver: [email protected]:/sources/public. Оно ΠΈΠ½Ρ„ΠΎΡ€ΠΌΠΈΡ€ΡƒΠ΅Ρ‚ систСму CVS ΠΎ Ρ‚ΠΎΠΌ, Ρ‡Ρ‚ΠΎ для доступа ΠΊ Ρ€Π΅ΠΏΠΎΠ·ΠΈΡ‚Π°Ρ€ΠΈΡŽ примСняСтся аутСнтификация (pserver) с ΠΏΠ°Ρ€ΠΎΠ»Π΅ΠΌ ΠΈ Ρ‡Ρ‚ΠΎ Ρ€Π΅ΠΏΠΎΠ·ΠΈΡ‚Π°Ρ€ΠΈΠΉ находится Π½Π° сСрвСрС ΠΏΠΎ адрСсу dev.w3.org.

ΠŸΡ€Π΅ΠΆΠ΄Π΅ Ρ‡Π΅ΠΌ ΠΏΠΎΠ»ΡƒΡ‡ΠΈΡ‚ΡŒ доступ ΠΊ исходным Ρ„Π°ΠΉΠ»Π°ΠΌ, слСдуСт Π·Π°Ρ€Π΅Π³ΠΈΡΡ‚Ρ€ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒΡΡ ΡΠ»Π΅Π΄ΡƒΡŽΡ‰ΠΈΠΌ ΠΎΠ±Ρ€Π°Π·ΠΎΠΌ:

$ export CVSROOT=:pserver: [email protected]:/sources/public

$ cvs login

Когда появится ΠΏΡ€ΠΈΠ³Π»Π°ΡˆΠ΅Π½ΠΈΠ΅ для Π²Π²ΠΎΠ΄Π° пароля, Π²Π²Π΅Π΄ΠΈΡ‚Π΅ anonymous.

Π’Π΅ΠΏΠ΅Ρ€ΡŒ Π²Ρ‹ Π³ΠΎΡ‚ΠΎΠ²Ρ‹ ΠΏΡ€ΠΈΠΌΠ΅Π½ΡΡ‚ΡŒ ΠΊΠΎΠΌΠ°Π½Π΄Ρ‹ cvs Π²ΠΎ ΠΌΠ½ΠΎΠ³ΠΎΠΌ Ρ‚Π°ΠΊ ΠΆΠ΅, ΠΊΠ°ΠΊ ΠΏΡ€ΠΈ Ρ€Π°Π±ΠΎΡ‚Π΅ с Π»ΠΎΠΊΠ°Π»ΡŒΠ½Ρ‹ΠΌ ΠΊΠ°Ρ‚Π°Π»ΠΎΠ³ΠΎΠΌ, Π·Π° ΠΈΡΠΊΠ»ΡŽΡ‡Π΅Π½ΠΈΠ΅ΠΌ Ρ‚ΠΎΠ³ΠΎ, Ρ‡Ρ‚ΠΎ слСдуСт Π΄ΠΎΠ±Π°Π²Π»ΡΡ‚ΡŒ ΠΎΠΏΡ†ΠΈΡŽ -z3 ΠΊΠΎ всСм ΠΊΠΎΠΌΠ°Π½Π΄Π°ΠΌ cvs, Ρ‡Ρ‚ΠΎΠ±Ρ‹ Π΄ΠΎΠ±ΠΈΡ‚ΡŒΡΡ сТатия для экономии полосы пропускания сСти.

Если Π²Ρ‹ Ρ…ΠΎΡ‚ΠΈΡ‚Π΅ ΠΏΠΎΠ»ΡƒΡ‡ΠΈΡ‚ΡŒ исходныС Ρ„Π°ΠΉΠ»Ρ‹ HTML-Π²Π°Π»ΠΈΠ΄Π°Ρ‚ΠΎΡ€Π° W3C (систСмы ΠΏΡ€ΠΎΠ²Π΅Ρ€ΠΊΠΈ допустимости HTML-Ρ„Π°ΠΉΠ»ΠΎΠ²), Π½Π°Π±Π΅Ρ€ΠΈΡ‚Π΅ ΠΏΡ€ΠΈΠ²Π΅Π΄Π΅Π½Π½ΡƒΡŽ Π΄Π°Π»Π΅Π΅ ΠΊΠΎΠΌΠ°Π½Π΄Ρƒ:

$ cvs -z3 checkout validator

Если Ρ…ΠΎΡ‚ΠΈΡ‚Π΅ ΡΠ΄Π΅Π»Π°Ρ‚ΡŒ доступным Π² сСти собствСнный Ρ€Π΅ΠΏΠΎΠ·ΠΈΡ‚Π°Ρ€ΠΈΠΉ, Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΠΎ Π·Π°ΠΏΡƒΡΡ‚ΠΈΡ‚ΡŒ CVS-сСрвСр Π½Π° своСй машинС. Π‘Π΄Π΅Π»Π°Ρ‚ΡŒ это слСдуСт с ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ супСрдСмона xinetd ΠΈΠ»ΠΈ inetd Π² зависимости ΠΎΡ‚ ΠΊΠΎΠ½Ρ„ΠΈΠ³ΡƒΡ€Π°Ρ†ΠΈΠΈ вашСй ОБ Linux. Для примСнСния Ρ…inetd ΠΎΡ‚Ρ€Π΅Π΄Π°ΠΊΡ‚ΠΈΡ€ΡƒΠΉΡ‚Π΅ Ρ„Π°ΠΉΠ» /etp/xinetd.d/cvs, ΡƒΠΊΠ°Π·Π°Π² Π² Π½Π΅ΠΌ мСстополоТСниС CVS-рСпозитария, ΠΈ Π²ΠΎΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠΉΡ‚Π΅ΡΡŒ срСдством настройки систСмы для Π°ΠΊΡ‚ΠΈΠ²ΠΈΠ·Π°Ρ†ΠΈΠΈ ΠΈ запуска сСрвиса cvs. Для примСнСния супСрдСмона inetd просто Π΄ΠΎΠ±Π°Π²ΡŒΡ‚Π΅ строку Π² Ρ„Π°ΠΉΠ» etc/inetd.conf ΠΈ пСрСзапуститС inetd. Π”Π°Π»Π΅Π΅ ΠΏΡ€ΠΈΠ²Π΅Π΄Π΅Π½Π° нСобходимая строка:

2401 stream tcp nowait root /usr/bin/cvs cvs -b /usr/bin --allow-root=/usr/local/repository pserver

Она ΠΈΠ½Ρ„ΠΎΡ€ΠΌΠΈΡ€ΡƒΠ΅Ρ‚ inetd ΠΎΠ± автоматичСском запускС CVS-сСанса для ΠΊΠ»ΠΈΠ΅Π½Ρ‚ΠΎΠ², ΠΏΠΎΠ΄ΠΊΠ»ΡŽΡ‡Π°ΡŽΡ‰ΠΈΡ…ΡΡ ΠΊ ΠΏΠΎΡ€Ρ‚Ρƒ 2401, стандартному ΠΏΠΎΡ€Ρ‚Ρƒ CVS-сСрвСра. Π”ΠΎΠΏΠΎΠ»Π½ΠΈΡ‚Π΅Π»ΡŒΠ½ΡƒΡŽ ΠΈΠ½Ρ„ΠΎΡ€ΠΌΠ°Ρ†ΠΈΡŽ ΠΎ запускС сСтСвых сСрвисов с ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ супСрдСмона inetd см. Π² ΠΈΠ½Ρ‚Π΅Ρ€Π°ΠΊΡ‚ΠΈΠ²Π½ΠΎΠΌ справочном руководствС ΠΊ inetd ΠΈ inetd.conf.

Для использования систСмы CVS с вашим Ρ€Π΅ΠΏΠΎΠ·ΠΈΡ‚Π°Ρ€ΠΈΠ΅ΠΌ ΠΈ сСтСвым доступом ΠΊ Π½Π΅ΠΌΡƒ Π²Ρ‹ Π΄ΠΎΠ»ΠΆΠ½Ρ‹ Π·Π°Π΄Π°Ρ‚ΡŒ ΡΠΎΠΎΡ‚Π²Π΅Ρ‚ΡΡ‚Π²ΡƒΡŽΡ‰Π΅Π΅ Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½ΠΎΠΉ окруТСния CVSROOT. НапримСр,

$ export CVSFOOT=:pserver: [email protected]:/usr/local/repository

Π’ этом ΠΊΠΎΡ€ΠΎΡ‚ΠΊΠΎΠΌ Ρ€Π°Π·Π΄Π΅Π»Π΅ ΠΌΡ‹ смогли Π΄Π°Ρ‚ΡŒ лишь повСрхностноС описаниС Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΎΠ½Π°Π»ΡŒΠ½Ρ‹Ρ… возмоТностСй систСмы CVS. Если Π²Ρ‹ Ρ…ΠΎΡ‚ΠΈΡ‚Π΅ ΠΎΡΠ½ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒΠ½ΠΎ ΠΏΠΎΠ·Π½Π°ΠΊΠΎΠΌΠΈΡ‚ΡŒΡΡ с этой систСмой, Π½Π°ΡΡ‚ΠΎΡΡ‚Π΅Π»ΡŒΠ½ΠΎ Ρ€Π΅ΠΊΠΎΠΌΠ΅Π½Π΄ΡƒΠ΅ΠΌ ΡƒΡΡ‚Π°Π½ΠΎΠ²ΠΈΡ‚ΡŒ Π»ΠΎΠΊΠ°Π»ΡŒΠ½Ρ‹ΠΉ Ρ€Π΅ΠΏΠΎΠ·ΠΈΡ‚Π°Ρ€ΠΈΠΉ для экспСримСнтов, Π½Π°ΠΉΡ‚ΠΈ Ρ€Π°ΡΡˆΠΈΡ€Π΅Π½Π½ΡƒΡŽ Π΄ΠΎΠΊΡƒΠΌΠ΅Π½Ρ‚Π°Ρ†ΠΈΡŽ ΠΏΠΎ CVS ΠΈ ΠΏΠΎΠ»ΡƒΡ‡Π°Ρ‚ΡŒ ΡƒΠ΄ΠΎΠ²ΠΎΠ»ΡŒΡΡ‚Π²ΠΈΠ΅! ΠŸΠΎΠΌΠ½ΠΈΡ‚Π΅, Ρ‡Ρ‚ΠΎ это систСма с ΠΎΡ‚ΠΊΡ€Ρ‹Ρ‚Ρ‹ΠΌ ΠΊΠΎΠ΄ΠΎΠΌ, поэтому, Ссли Π²Ρ‹ ΡΡ‚ΠΎΠ»ΠΊΠ½ΡƒΠ»ΠΈΡΡŒ с нСпонятными дСйствиями ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡ‹ ΠΈΠ»ΠΈ (Ρ‡Ρ‚ΠΎ нСвСроятно, Π½ΠΎ Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎ) Π΄ΡƒΠΌΠ°Π΅Ρ‚Π΅, Ρ‡Ρ‚ΠΎ ΠΎΠ±Π½Π°Ρ€ΡƒΠΆΠΈΠ»ΠΈ ΠΎΡˆΠΈΠ±ΠΊΡƒ, всСгда ΠΌΠΎΠΆΠ½ΠΎ ΠΏΠΎΠ»ΡƒΡ‡ΠΈΡ‚ΡŒ исходный ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ½Ρ‹ΠΉ ΠΊΠΎΠ΄ ΠΈ ΠΈΠ·ΡƒΡ‡ΠΈΡ‚ΡŒ Π΅Π³ΠΎ ΡΠ°ΠΌΠΎΡΡ‚ΠΎΡΡ‚Π΅Π»ΡŒΠ½ΠΎ. ΠΠ°Ρ‡Π°Π»ΡŒΠ½Π°Ρ страница CVS располоТСна ΠΏΠΎ адрСсу http://ximbiot.com/cvs/cvshome/.

Π’Π½Π΅ΡˆΠ½ΠΈΠ΅ интСрфСйсы CVS

Для доступа ΠΊ CVS-рСпозитариям сущСствуСт мноТСство графичСских Π²Π½Π΅ΡˆΠ½ΠΈΡ… интСрфСйсов. ΠœΠΎΠΆΠ΅Ρ‚ Π±Ρ‹Ρ‚ΡŒ, ΠΈΡ… Π»ΡƒΡ‡ΡˆΡƒΡŽ ΠΊΠΎΠ»Π»Π΅ΠΊΡ†ΠΈΡŽ для Ρ€Π°Π·Π½Ρ‹Ρ… ΠΎΠΏΠ΅Ρ€Π°Ρ†ΠΈΠΎΠ½Π½Ρ‹Ρ… систСм ΠΌΠΎΠΆΠ½ΠΎ Π½Π°ΠΉΡ‚ΠΈ Π½Π° Web-сайтС http://www.wincvs.org/. Π’Π°ΠΌ Π΅ΡΡ‚ΡŒ клиСнтскоС ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ½ΠΎΠ΅ обСспСчСниС для ОБ Windows, Macintosh ΠΈ, ΠΊΠΎΠ½Π΅Ρ‡Π½ΠΎ, Linux.

ΠšΠ»ΠΈΠ΅Π½Ρ‚ΡΠΊΠ°Ρ Ρ‡Π°ΡΡ‚ΡŒ CVS позволяСт ΡΠΎΠ·Π΄Π°Π²Π°Ρ‚ΡŒ Ρ€Π΅ΠΏΠΎΠ·ΠΈΡ‚Π°Ρ€ΠΈΠΉ ΠΈ ΡƒΠΏΡ€Π°Π²Π»ΡΡ‚ΡŒ ΠΈΠΌ, Π²ΠΊΠ»ΡŽΡ‡Π°Ρ ΡƒΠ΄Π°Π»Π΅Π½Π½Ρ‹ΠΉ доступ ΠΊ рСпозитариям ΠΏΠΎ сСти.

На рис. 9.1 ΠΏΠΎΠΊΠ°Π·Π°Π½Π° хронология Ρ€Π°Π±ΠΎΡ‚Ρ‹ с нашим простым ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ΠΌ, отобраТСнная WinCVS Π½Π° сСтСвом ΠΊΠ»ΠΈΠ΅Π½Ρ‚Π΅ ΠΏΠΎΠ΄ ΡƒΠΏΡ€Π°Π²Π»Π΅Π½ΠΈΠ΅ΠΌ ОБ Windows.

Рис. 9.1

Subversion

Subversion Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚Π°Π½Π° ΠΊΠ°ΠΊ систСма управлСния вСрсиями, ΠΏΡ€Π΅Π΄ΡΡ‚Π°Π²Π»ΡΡŽΡ‰Π°Ρ собой ΠΎΡ‚Π»ΠΈΡ‡Π½ΡƒΡŽ Π·Π°ΠΌΠ΅Π½Ρƒ систСмы CVS Π² сообщСствС Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚Ρ‡ΠΈΠΊΠΎΠ² ΠΈ ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»Π΅ΠΉ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ½ΠΎΠ³ΠΎ обСспСчСния с ΠΎΡ‚ΠΊΡ€Ρ‹Ρ‚Ρ‹ΠΌ исходным ΠΊΠΎΠ΄ΠΎΠΌ. Она ΠΏΡ€ΠΎΠ΅ΠΊΡ‚ΠΈΡ€ΠΎΠ²Π°Π»Π°ΡΡŒ ΠΊΠ°ΠΊ "ΡƒΠ»ΡƒΡ‡ΡˆΠ΅Π½Π½Π°Ρ CVS", ΠΎ Ρ‡Π΅ΠΌ говорится Π½Π° исходной страницС Subversion Web-сайта http://subversion.tigris.org/, ΠΈ, ΡΠ»Π΅Π΄ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒΠ½ΠΎ, ΠΎΠ±Π»Π°Π΄Π°Π΅Ρ‚ большСй Ρ‡Π°ΡΡ‚ΡŒΡŽ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΎΠ½Π°Π»ΡŒΠ½Ρ‹Ρ… возмоТностСй систСмы CVS ΠΈ ΠΎΡ‡Π΅Π½ΡŒ ΠΏΠΎΡ…ΠΎΠΆΠΈΠΌ Ρ€Π°Π±ΠΎΡ‚Π°ΡŽΡ‰ΠΈΠΌ интСрфСйсом.

ΠŸΠΎΠΏΡƒΠ»ΡΡ€Π½ΠΎΡΡ‚ΡŒ Subversion ΠΎΠΏΡ€Π΅Π΄Π΅Π»Π΅Π½Π½ΠΎ растСт, особСнно Π² срСдС совмСстно Ρ€Π°Π·Ρ€Π°Π±Π°Ρ‚Ρ‹Π²Π°Π΅ΠΌΡ‹Ρ… ΠΏΡ€ΠΎΠ΅ΠΊΡ‚ΠΎΠ², Π² ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Ρ… Π½Π°Π΄ созданиСм прилоТСния ΠΌΠ½ΠΎΠ³ΠΈΠ΅ программисты Ρ€Π°Π±ΠΎΡ‚Π°ΡŽΡ‚ вмСстС Π² Π˜Π½Ρ‚Π΅Ρ€Π½Π΅Ρ‚Π΅. Π‘ΠΎΠ»ΡŒΡˆΠΈΠ½ΡΡ‚Π²ΠΎ ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»Π΅ΠΉ Subversion ΠΏΠΎΠ΄ΠΊΠ»ΡŽΡ‡Π°ΡŽΡ‚ΡΡ ΠΊ сСтСвому Ρ€Π΅ΠΏΠΎΠ·ΠΈΡ‚Π°Ρ€ΠΈΡŽ, настроСнному ΠΌΠ΅Π½Π΅Π΄ΠΆΠ΅Ρ€Π°ΠΌΠΈ, Ρ€Π°Π·Ρ€Π°Π±Π°Ρ‚Ρ‹Π²Π°Π΅ΠΌΠΎΠ³ΠΎ ΠΏΡ€ΠΎΠ΅ΠΊΡ‚Π°. Π­Ρ‚Π° систСма Π½Π΅ Ρ‚Π°ΠΊ ΡˆΠΈΡ€ΠΎΠΊΠΎ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚ΡΡ для управлСния ΠΈΠ½Π΄ΠΈΠ²ΠΈΠ΄ΡƒΠ°Π»ΡŒΠ½Ρ‹ΠΌΠΈ ΠΈΠ»ΠΈ нСбольшими Π³Ρ€ΡƒΠΏΠΏΠΎΠ²Ρ‹ΠΌΠΈ ΠΏΡ€ΠΎΠ΅ΠΊΡ‚Π°ΠΌΠΈ, для Π½ΠΈΡ… систСма CVS всС Π΅Ρ‰Π΅ остаСтся основным примСняСмым срСдством.