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

Π§ΠΈΡ‚Π°Ρ‚ΡŒ ΠΎΠ½Π»Π°ΠΉΠ½ Β«Π˜ΡΠΊΡƒΡΡΡ‚Π²ΠΎ программирования для UnixΒ». Π‘Ρ‚Ρ€Π°Π½ΠΈΡ†Π° 130

Автор Π Π΅ΠΉΠΌΠΎΠ½Π΄ Π­Ρ€ΠΈΠΊ Π‘Ρ‚ΠΈΠ²Π΅Π½

ΠšΠ°ΠΆΠ΄Ρ‹ΠΉ conf igure-сцСнарий создаСтся Π½Π° основС ΡƒΠ½ΠΈΠΊΠ°Π»ΡŒΠ½ΠΎΠ³ΠΎ для ΠΏΡ€ΠΎΠ΅ΠΊΡ‚Π° шаблона conf igure. in, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ Π΄ΠΎΠ»ΠΆΠ΅Π½ Π½Π°ΠΏΠΈΡΠ°Ρ‚ΡŒ Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚Ρ‡ΠΈΠΊ. ΠžΠ΄Π½Π°ΠΆΠ΄Ρ‹ сгСнСрированный сцСнарий configure являСтся самодостаточным ΠΈ способСн ΠΊΠΎΠ½Ρ„ΠΈΠ³ΡƒΡ€ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ Π΄Π°Π½Π½Ρ‹ΠΉ ΠΏΡ€ΠΎΠ΅ΠΊΡ‚ Π½Π° систСмах, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ Π½Π΅ содСрТат саму ΡƒΡ‚ΠΈΠ»ΠΈΡ‚Ρƒ autoconf(1).

ΠŸΠΎΠ΄Ρ…ΠΎΠ΄ ΠΊ созданию make-Ρ„Π°ΠΉΠ»ΠΎΠ², принятый для autoconf, ΠΏΠΎΠ΄ΠΎΠ±Π΅Π½ ΠΏΠΎΠ΄Ρ…ΠΎΠ΄Ρƒ Imake Π² Ρ‚ΠΎΠΌ, Ρ‡Ρ‚ΠΎ Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚Ρ‡ΠΈΠΊ Π½Π°Ρ‡ΠΈΠ½Π°Π΅Ρ‚ с написания шаблона make-Ρ„Π°ΠΉΠ»Π° для своСго ΠΏΡ€ΠΎΠ΅ΠΊΡ‚Π°. Однако Ρ„Π°ΠΉΠ»Ρ‹ Makefile . in, созданныС autoconf, ΠΏΠΎ сущСству ΡΠ²Π»ΡΡŽΡ‚ΡΡ просто шакС-Ρ„Π°ΠΉΠ»Π°ΠΌΠΈ с ΠΌΠ΅Ρ‚ΠΊΠ°ΠΌΠΈ-заполнитСлями для простой тСкстовой Π·Π°ΠΌΠ΅Π½Ρ‹; Π½Π΅ сущСствуСт Π²Ρ‚ΠΎΡ€ΠΎΠΉ Ρ„ΠΎΡ€ΠΌΡ‹ записи, ΠΊΠΎΡ‚ΠΎΡ€ΡƒΡŽ трСбуСтся ΠΈΠ·ΡƒΡ‡Π°Ρ‚ΡŒ. Если трСбуСтся ΠΎΡΡƒΡ‰Π΅ΡΡ‚Π²ΠΈΡ‚ΡŒ Π²Ρ‹Π²ΠΎΠ΄ зависимостСй, Ρ‚ΠΎ Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΠΎ ΠΏΡ€Π΅Π΄ΠΏΡ€ΠΈΠ½ΡΡ‚ΡŒ явныС шаги для Π²Ρ‹Π·ΠΎΠ²Π° makede-pend(1) ΠΈΠ»ΠΈ ΠΏΠΎΠ΄ΠΎΠ±Π½ΠΎΠ³ΠΎ инструмСнта, ΠΈΠ»ΠΈ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ ΡƒΡ‚ΠΈΠ»ΠΈΡ‚Ρƒ automake( 1).

Π£Ρ‚ΠΈΠ»ΠΈΡ‚Π° autoconf Π΄ΠΎΠΊΡƒΠΌΠ΅Π½Ρ‚ΠΈΡ€ΠΎΠ²Π°Π½Π° Π² руководствС Π² GNU ш/ΠΎ-Ρ„ΠΎΡ€ΠΌΠ°Ρ‚Π΅. Π˜ΡΡ…ΠΎΠ΄Π½Ρ‹Π΅ сцСнарии autoconf доступны Π½Π° сайтС Π°Ρ€Ρ…ΠΈΠ²Π° FSF, Π° ΠΊΡ€ΠΎΠΌΠ΅ Ρ‚ΠΎΠ³ΠΎ, ΠΎΠ½ΠΈ прСдустановлСны Π½Π° ΠΌΠ½ΠΎΠ³ΠΈΡ… Unix ΠΈ Linux-систСмах. УпомянутоС руководство ΠΌΠΎΠΆΠ½ΠΎ ΠΏΡ€ΠΎΡΠΌΠ°Ρ‚Ρ€ΠΈΠ²Π°Ρ‚ΡŒ с ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ справочной систСмы Emacs.

НСсмотря Π½Π° отсутствиС нСпосрСдствСнной ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΊΠΈ Π²Ρ‹Π²ΠΎΠ΄Π° зависимостСй ΠΈ Ρ…Π°Ρ€Π°ΠΊΡ‚Π΅Ρ€Π½ΠΎΠ³ΠΎ для autoconf ΡƒΠ·ΠΊΠΎΡΠΏΠ΅Ρ†ΠΈΠ°Π»ΡŒΠ½ΠΎΠ³ΠΎ ΠΏΠΎΠ΄Ρ…ΠΎΠ΄Π°, Π² сСрСдинС 2003 Π³ΠΎΠ΄Π° данная ΡƒΡ‚ΠΈΠ»ΠΈΡ‚Π°, нСсомнСнно, Π±Ρ‹Π»Π° Π½Π°ΠΈΠ±ΠΎΠ»Π΅Π΅ популярной ΠΈΠ· всСх Π³Π΅Π½Π΅Ρ€Π°Ρ‚ΠΎΡ€ΠΎΠ² make-Ρ„Π°ΠΉΠ»ΠΎΠ². Она ΠΏΡ€Π΅Π²Π·ΠΎΡˆΠ»Π° Imake ΠΈ стала ΠΏΡ€ΠΈΡ‡ΠΈΠ½ΠΎΠΉ Π²Ρ‹Ρ…ΠΎΠ΄Π° ΠΈΠ· употрСблСния, ΠΏΠΎ ΠΊΡ€Π°ΠΉΠ½Π΅ΠΉ ΠΌΠ΅Ρ€Π΅, ΠΎΠ΄Π½ΠΎΠ³ΠΎ Π³Π»Π°Π²Π½ΠΎΠ³ΠΎ ΠΊΠΎΠ½ΠΊΡƒΡ€Π΅Π½Ρ‚Π° (metaconfig).

БущСствуСт справочник "GNU Autoconf, Automake and Libtool" [86]. Π”ΠΎΠΏΠΎΠ»Π½ΠΈΡ‚Π΅Π»ΡŒΠ½Π°Ρ информация ΠΏΠΎ ΡƒΡ‚ΠΈΠ»ΠΈΡ‚Π΅ autoconf Π² нСсколько ΠΈΠ½ΠΎΠΌ аспСктС рассматриваСтся Π² Π³Π»Π°Π²Π΅ 17.

15.4.4.4. automake

Π£Ρ‚ΠΈΠ»ΠΈΡ‚Π° automake β€” это ΠΏΠΎΠΏΡ‹Ρ‚ΠΊΠ° Π΄ΠΎΠ±Π°Π²ΠΈΡ‚ΡŒ make-ΠΏΠΎΠ΄ΠΎΠ±Π½ΡƒΡŽ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΡŽ Π²Ρ‹Π²ΠΎΠ΄Π° зависимостСй ΠΊΠ°ΠΊ ΡƒΡ€ΠΎΠ²Π΅Π½ΡŒ Π½Π°Π΄ autoconf(1). Π Π°Π·Ρ€Π°Π±ΠΎΡ‚Ρ‡ΠΈΠΊ ΠΏΠΈΡˆΠ΅Ρ‚ ΡˆΠ°Π±Π»ΠΎΠ½Ρ‹ Makefile.am Π² Ρ„ΠΎΡ€ΠΌΠ΅ записи, которая явно ΠΏΠΎΠ΄ΠΎΠ±Π½Π° Imake-Π½ΠΎΡ‚Π°Ρ†ΠΈΠΈ. Π—Π°Ρ‚Π΅ΠΌ ΡƒΡ‚ΠΈΠ»ΠΈΡ‚Π° automake(1) ΠΊΠΎΠΌΠΏΠΈΠ»ΠΈΡ€ΡƒΠ΅Ρ‚ ΠΈΡ… Π² Ρ„Π°ΠΉΠ»Ρ‹ Makefile. in, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΌΠΈ впослСдствии ΠΎΠΏΠ΅Ρ€ΠΈΡ€ΡƒΡŽΡ‚ autoconf-сцСнарии configure.

automake Π² сСрСдинС 2003 Π³ΠΎΠ΄Π° всС Π΅Ρ‰Π΅ ΠΎΡΡ‚Π°Π²Π°Π»Π°ΡΡŒ ΡΡ€Π°Π²Π½ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎ Π½ΠΎΠ²ΠΎΠΉ Ρ‚Π΅Ρ…Π½ΠΎΠ»ΠΎΠ³ΠΈΠ΅ΠΉ. Она ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚ΡΡ Π² Π½Π΅ΡΠΊΠΎΠ»ΡŒΠΊΠΈΡ… FSF-ΠΏΡ€ΠΎΠ΅ΠΊΡ‚Π°Ρ…, Π½ΠΎ Π΅Ρ‰Π΅ Π½Π΅ принята ΡˆΠΈΡ€ΠΎΠΊΠΎ Π·Π° ΠΏΡ€Π΅Π΄Π΅Π»Π°ΠΌΠΈ FSF-сообщСства. НСсмотря Π½Π° Ρ‚ΠΎ, Ρ‡Ρ‚ΠΎ Π΅Π΅ ΠΎΠ±Ρ‰ΠΈΠΉ ΠΏΠΎΠ΄Ρ…ΠΎΠ΄ выглядит ΠΌΠ½ΠΎΠ³ΠΎΠΎΠ±Π΅Ρ‰Π°ΡŽΡ‰Π΅, ΡƒΡ‚ΠΈΠ»ΠΈΡ‚Π° всС Π΅Ρ‰Π΅ являСтся довольно Ρ…Ρ€ΡƒΠΏΠΊΠΎΠΉ β€” ΠΎΠ½Π° Ρ€Π°Π±ΠΎΡ‚Π°Π΅Ρ‚ Π² стСрСотипных условиях, Π½ΠΎ склонна ΠΊ ΡΠ΅Ρ€ΡŒΠ΅Π·Π½Ρ‹ΠΌ сбоям, Ссли ΠΏΠΎΠΏΡ‹Ρ‚Π°Ρ‚ΡŒΡΡ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ Π΅Π΅ Π½Π΅ΠΎΠ±Ρ‹Ρ‡Π½Ρ‹ΠΌ ΠΏΡƒΡ‚Π΅ΠΌ.

Полная докумСнтация поставляСтся с ΡƒΡ‚ΠΈΠ»ΠΈΡ‚ΠΎΠΉ automake, ΠΊΠΎΡ‚ΠΎΡ€ΡƒΡŽ ΠΌΠΎΠΆΠ½ΠΎ Π·Π°Π³Ρ€ΡƒΠ·ΠΈΡ‚ΡŒ с сайта Π°Ρ€Ρ…ΠΈΠ²Π° FSF.

15.5. БистСмы контроля вСрсий

Как извСстно, ΠΏΠΎ ΠΌΠ΅Ρ€Π΅ Ρ‚ΠΎΠ³ΠΎ ΠΊΠ°ΠΊ ΠΏΡ€ΠΎΠ΅ΠΊΡ‚ двиТСтся ΠΎΡ‚ ΠΏΠ΅Ρ€Π²ΠΎΠ³ΠΎ ΠΏΡ€ΠΎΡ‚ΠΎΡ‚ΠΈΠΏΠ° ΠΊ распространяСмой вСрсии, ΠΊΠΎΠ΄ ΠΏΡ€ΠΎΡ…ΠΎΠ΄ΠΈΡ‚ Ρ‡Π΅Ρ€Π΅Π· нСсколько Ρ†ΠΈΠΊΠ»ΠΎΠ² развития, Π² Ρ…ΠΎΠ΄Π΅ ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Ρ… Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚Ρ‡ΠΈΠΊ исслСдуСт Π½ΠΎΠ²Ρ‹Π΅ области, ΠΎΡ‚Π»Π°ΠΆΠΈΠ²Π°Π΅Ρ‚, Π° Π·Π°Ρ‚Π΅ΠΌ стабилизируСт достиТСния.

И Ρ‚Π°ΠΊΠΎΠ΅ Ρ€Π°Π·Π²ΠΈΡ‚ΠΈΠ΅ Π½Π΅ прСкращаСтся с Π²Ρ‹Ρ…ΠΎΠ΄ΠΎΠΌ ΠΏΠ΅Ρ€Π²ΠΎΠΉ вСрсии ΠΏΡ€ΠΎΠ΄ΡƒΠΊΡ‚Π°. Π‘ΠΎΠ»ΡŒΡˆΠΈΠ½ΡΡ‚Π²ΠΎ ΠΏΡ€ΠΎΠ΅ΠΊΡ‚ΠΎΠ² Π½ΡƒΠΆΠ΄Π°ΡŽΡ‚ΡΡ Π² сопровоТдСнии ΠΈ ΡƒΡΠΎΠ²Π΅Ρ€ΡˆΠ΅Π½ΡΡ‚Π²ΠΎΠ²Π°Π½ΠΈΠΈ послС стадии 1.0, ΠΈ ΡƒΠΆΠ΅ впослСдствии появляСтся мноТСство вСрсий. ΠžΡ‚ΡΠ»Π΅ΠΆΠΈΠ²Π°Π½ΠΈΠ΅ всСх Π΄Π΅Ρ‚Π°Π»Π΅ΠΉ этого процСсса являСтся Ρ‚ΠΎΠΉ Π·Π°Π΄Π°Ρ‡Π΅ΠΉ, с ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠΉ ΠΊΠΎΠΌΠΏΡŒΡŽΡ‚Π΅Ρ€Ρ‹ ΡΠΏΡ€Π°Π²Π»ΡΡŽΡ‚ΡΡ Π»ΡƒΡ‡ΡˆΠ΅ Ρ‡Π΅Π»ΠΎΠ²Π΅ΠΊΠ°.

15.5.1. Для Ρ‡Π΅Π³ΠΎ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚ΡΡ ΠΊΠΎΠ½Ρ‚Ρ€ΠΎΠ»ΡŒ вСрсий

Π Π°Π·Π²ΠΈΡ‚ΠΈΠ΅ ΠΊΠΎΠ΄Π° ΠΏΠΎΠ΄Π½ΠΈΠΌΠ°Π΅Ρ‚ нСсколько практичСских ΠΏΡ€ΠΎΠ±Π»Π΅ΠΌ, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ ΠΌΠΎΠ³ΡƒΡ‚ Π±Ρ‹Ρ‚ΡŒ основными ΠΏΡ€ΠΈΡ‡ΠΈΠ½Π°ΠΌΠΈ ΠΏΡ€ΠΎΡ‚ΠΈΠ²ΠΎΡ€Π΅Ρ‡ΠΈΠΉ ΠΈ ΠΌΠΎΠ½ΠΎΡ‚ΠΎΠ½Π½ΠΎΠΉ Ρ€Π°Π±ΠΎΡ‚Ρ‹, Π° ΡΠ»Π΅Π΄ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒΠ½ΠΎ, ΠΈ ΡΠ΅Ρ€ΡŒΠ΅Π·Π½ΠΎΠ³ΠΎ сниТСния продуктивности. ВрСмя, ΠΏΠΎΡ‚Ρ€Π°Ρ‡Π΅Π½Π½ΠΎΠ΅ Π½Π° Ρ€Π°Π·Ρ€Π΅ΡˆΠ΅Π½ΠΈΠ΅ Π΄Π°Π½Π½Ρ‹Ρ… ΠΏΡ€ΠΎΠ±Π»Π΅ΠΌ, β€” это врСмя, Π½Π΅ ΡƒΠ΄Π΅Π»Π΅Π½Π½ΠΎΠ΅ ΠΏΡ€Π°Π²ΠΈΠ»ΡŒΠ½ΠΎΠΉ Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚ΠΊΠ΅ конструкции ΠΈ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΎΠ½Π°Π»ΡŒΠ½ΠΎΡΡ‚ΠΈ ΠΏΡ€ΠΎΠ΅ΠΊΡ‚Π°.

ВСроятно, Π½Π°ΠΈΠ±ΠΎΠ»Π΅Π΅ Π²Π°ΠΆΠ½ΠΎΠΉ ΠΏΡ€ΠΎΠ±Π»Π΅ΠΌΠΎΠΉ являСтся ΠΎΠ±Ρ€Π°Ρ‚Π½ΠΎΠ΅ восстановлСниС. Если Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚Ρ‡ΠΈΠΊ вносит ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΠ΅ ΠΈ выясняСт, Ρ‡Ρ‚ΠΎ ΠΎΠ½ΠΎ нСТизнСспособно, Ρ‚ΠΎ ΠΊΠ°ΠΊΠΈΠΌ ΠΎΠ±Ρ€Π°Π·ΠΎΠΌ ΠΌΠΎΠΆΠ½ΠΎ Π²Π΅Ρ€Π½ΡƒΡ‚ΡŒΡΡ ΠΊ Π·Π°Π²Π΅Π΄ΠΎΠΌΠΎ Ρ…ΠΎΡ€ΠΎΡˆΠ΅ΠΉ вСрсии ΠΊΠΎΠ΄Π°? Если процСсс восстановлСния Ρ‚Ρ€ΡƒΠ΄Π΅Π½ ΠΈ Π½Π΅Π½Π°Π΄Π΅ΠΆΠ΅Π½, Ρ‚ΠΎ Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚Ρ‡ΠΈΠΊΡƒ Π²ΠΎΠΎΠ±Ρ‰Π΅ тяТСло Ρ€Π΅ΡˆΠΈΡ‚ΡŒΡΡ Π½Π° внСсСниС ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΠΉ (ΠΌΠΎΠΆΠ½ΠΎ ΠΈΡΠΏΠΎΡ€Ρ‚ΠΈΡ‚ΡŒ вСсь ΠΏΡ€ΠΎΠ΅ΠΊΡ‚ ΠΈΠ»ΠΈ ΠΏΠΎΡ‚Ρ€Π°Ρ‚ΠΈΡ‚ΡŒ ΠΎΡ‡Π΅Π½ΡŒ ΠΌΠ½ΠΎΠ³ΠΎ Π²Ρ€Π΅ΠΌΠ΅Π½ΠΈ).

ΠŸΠΎΡ‡Ρ‚ΠΈ Π½Π°ΡΡ‚ΠΎΠ»ΡŒΠΊΠΎ ΠΆΠ΅ Π²Π°ΠΆΠ½Ρ‹ΠΌ являСтся отслСТиваниС ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΠΉ. Π˜Π·Π²Π΅ΡΡ‚Π½ΠΎ, Ρ‡Ρ‚ΠΎ ΠΊΠΎΠ΄ измСнился, Π½ΠΎ извСстно Π»ΠΈ, ΠΏΠΎΡ‡Π΅ΠΌΡƒ ΠΈΠΌΠ΅Π½Π½ΠΎ? Π’ΠΏΠΎΠ»Π½Π΅ Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎ, Ρ‡Ρ‚ΠΎ ΠΏΡ€ΠΈΡ‡ΠΈΠ½Ρ‹ ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΠΉ вскорС Π±ΡƒΠ΄ΡƒΡ‚ Π·Π°Π±Ρ‹Ρ‚Ρ‹, Π° ΠΏΠΎΠ·Π΄Π½Π΅Π΅ Π²ΠΎΠ·Π½ΠΈΠΊΠ½ΡƒΡ‚ снова. Если Π² ΠΏΡ€ΠΎΠ΅ΠΊΡ‚Π΅ ΡƒΡ‡Π°ΡΡ‚Π²ΡƒΡŽΡ‚ Π΄Ρ€ΡƒΠ³ΠΈΠ΅ Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚Ρ‡ΠΈΠΊΠΈ, Ρ‚ΠΎ ΠΊΠ°ΠΊΠΈΠΌ ΠΎΠ±Ρ€Π°Π·ΠΎΠΌ ΡƒΠ·Π½Π°Ρ‚ΡŒ, Ρ‡Ρ‚ΠΎ ΠΈΠΌΠ΅Π½Π½ΠΎ ΠΎΠ½ΠΈ ΠΈΠ·ΠΌΠ΅Π½ΠΈΠ»ΠΈ ΠΈ ΠΊΡ‚ΠΎ отвСтствСнСн Π·Π° ΠΊΠ°ΠΆΠ΄ΠΎΠ΅ ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΠ΅?

ΠžΡ‡Π΅Π½ΡŒ ΠΏΠΎΠ»Π΅Π·Π½ΠΎ ΡΠΏΡ€Π°ΡˆΠΈΠ²Π°Ρ‚ΡŒ сСбя, Ρ‡Ρ‚ΠΎ измСнилось с ΠΌΠΎΠΌΠ΅Π½Ρ‚Π° послСднСй Π·Π°Π²Π΅Π΄ΠΎΠΌΠΎ Ρ…ΠΎΡ€ΠΎΡˆΠ΅ΠΉ вСрсии, Π΄Π°ΠΆΠ΅ Ссли Π² ΠΏΡ€ΠΎΠ΅ΠΊΡ‚Π΅ Π½Π΅ ΡƒΡ‡Π°ΡΡ‚Π²ΡƒΡŽΡ‚ Π΄Ρ€ΡƒΠ³ΠΈΠ΅ Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚Ρ‡ΠΈΠΊΠΈ. Часто это позволяСт ΠΎΠ±Π½Π°Ρ€ΡƒΠΆΠΈΡ‚ΡŒ Π½Π΅ΠΆΠ΅Π»Π°Ρ‚Π΅Π»ΡŒΠ½Ρ‹Π΅ измСнСния, Ρ‚Π°ΠΊΠΈΠ΅ ΠΊΠ°ΠΊ Π·Π°Π±Ρ‹Ρ‚Ρ‹ΠΉ ΠΎΡ‚Π»Π°Π΄ΠΎΡ‡Π½Ρ‹ΠΉ ΠΊΠΎΠ΄. БСйчас я дСлаю это рСгулярно ΠΏΠ΅Ρ€Π΅Π΄ рСгистрациСй Π³Ρ€ΡƒΠΏΠΏΡ‹ ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΠΉ.

Π“Π΅Π½Ρ€ΠΈ БпСнсСр.

Π•Ρ‰Π΅ ΠΎΠ΄Π½ΠΈΠΌ вопросом являСтся отслСТиваниС ошибок. ΠžΡ‡Π΅Π½ΡŒ часто ΠΏΠΎΡΡ‚ΡƒΠΏΠ°ΡŽΡ‚ ΠΎΡ‚Ρ‡Π΅Ρ‚Ρ‹ ΠΎΠ± ΠΎΡˆΠΈΠ±ΠΊΠ°Ρ… для ΠΎΠΏΡ€Π΅Π΄Π΅Π»Π΅Π½Π½ΠΎΠΉ вСрсии послС Ρ‚ΠΎΠ³ΠΎ, ΠΊΠ°ΠΊ ΠΊΠΎΠ΄ Π·Π½Π°Ρ‡ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎ измСнился ΠΏΠΎ ΡΡ€Π°Π²Π½Π΅Π½ΠΈΡŽ с этой вСрсиСй. Иногда Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚Ρ‡ΠΈΠΊ ΠΌΠΎΠΆΠ΅Ρ‚ Π½Π΅ΠΌΠ΅Π΄Π»Π΅Π½Π½ΠΎ ΠΎΠΏΡ€Π΅Π΄Π΅Π»ΠΈΡ‚ΡŒ, Ρ‡Ρ‚ΠΎ ошибка ΡƒΠΆΠ΅ исправлСна, Π½ΠΎ часто это Π½Π΅Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎ. ΠŸΡ€Π΅Π΄ΠΏΠΎΠ»ΠΎΠΆΠΈΠΌ, ΠΎΠ½Π° Π½Π΅ воспроизводится Π² Π½ΠΎΠ²ΠΎΠΉ вСрсии. Как Π²Π΅Ρ€Π½ΡƒΡ‚ΡŒ ΠΊΠΎΠ΄ ΠΊ ΡΠΎΡΡ‚ΠΎΡΠ½ΠΈΡŽ старой вСрсии, для Ρ‚ΠΎΠ³ΠΎ Ρ‡Ρ‚ΠΎΠ±Ρ‹ воспроизвСсти ΠΎΡˆΠΈΠ±ΠΊΡƒ ΠΈ Ρ€Π°Π·ΠΎΠ±Ρ€Π°Ρ‚ΡŒΡΡ с Π½Π΅ΠΉ?

Π§Ρ‚ΠΎΠ±Ρ‹ Ρ€Π΅ΡˆΠΈΡ‚ΡŒ Π΄Π°Π½Π½ΡƒΡŽ ΠΏΡ€ΠΎΠ±Π»Π΅ΠΌΡƒ, Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΡ‹ ΠΏΡ€ΠΎΡ†Π΅Π΄ΡƒΡ€Ρ‹ для сохранСния истории ΠΏΡ€ΠΎΠ΅ΠΊΡ‚Π° ΠΈ снабТСния Π΅Π³ΠΎ коммСнтариями, ΠΎΠ±ΡŠΡΡΠ½ΡΡŽΡ‰ΠΈΠΌΠΈ ΠΈΡΡ‚ΠΎΡ€ΠΈΡŽ. Если Π² ΠΏΡ€ΠΎΠ΅ΠΊΡ‚Π΅ участвуСт нСсколько Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚Ρ‡ΠΈΠΊΠΎΠ², Ρ‚ΠΎ Ρ‚Π°ΠΊΠΆΠ΅ понадобятся ΠΌΠ΅Ρ…Π°Π½ΠΈΠ·ΠΌΡ‹, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ ΠΏΠΎΠ·Π²ΠΎΠ»ΡΡŽΡ‚ Π±Ρ‹Ρ‚ΡŒ ΡƒΠ²Π΅Ρ€Π΅Π½Π½Ρ‹ΠΌ, Ρ‡Ρ‚ΠΎ Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚Ρ‡ΠΈΠΊΠΈ Π½Π΅ ΠΈΠ·ΠΌΠ΅Π½ΡΡŽΡ‚ Ρ‡ΡƒΠΆΠΈΠ΅ вСрсии.

15.5.2.Β ΠšΠΎΠ½Ρ‚Ρ€ΠΎΠ»ΡŒ вСрсий Π²Ρ€ΡƒΡ‡Π½ΡƒΡŽ

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

Π‘ΠΊΡ€Ρ‹Ρ‚Ρ‹Π΅ Π·Π°Ρ‚Ρ€Π°Ρ‚Ρ‹ Ρ‚Π°ΠΊΠΎΠ³ΠΎ ΠΌΠ΅Ρ‚ΠΎΠ΄Π° высоки, особСнно ΠΊΠΎΠ³Π΄Π° (ΠΊΠ°ΠΊ часто случаСтся) происходит сбой. Π’Π°ΠΊΠΈΠ΅ ΠΏΡ€ΠΎΡ†Π΅Π΄ΡƒΡ€Ρ‹ Ρ‚Ρ€Π΅Π±ΡƒΡŽΡ‚ Π²Ρ€Π΅ΠΌΠ΅Π½ΠΈ ΠΈ ΠΊΠΎΠ½Ρ†Π΅Π½Ρ‚Ρ€Π°Ρ†ΠΈΠΈ. Они Ρ‡Ρ€Π΅Π²Π°Ρ‚Ρ‹ ошибками ΠΈ склонны "ΡƒΡΠΊΠΎΠ»ΡŒΠ·Π°Ρ‚ΡŒ", ΠΊΠΎΠ³Π΄Π° ΠΏΡ€ΠΎΠ΅ΠΊΡ‚ сталкиваСтся с трудностями, Ρ‚.Π΅. ΠΈΠΌΠ΅Π½Π½ΠΎ Ρ‚ΠΎΠ³Π΄Π°, ΠΊΠΎΠ³Π΄Π° ΠΎΠ½ΠΈ большС всСго Π½ΡƒΠΆΠ½Ρ‹.

Как ΠΈ Π±ΠΎΠ»ΡŒΡˆΠΈΠ½ΡΡ‚Π²ΠΎ Ρ€ΡƒΡ‡Π½ΠΎΠΉ Ρ€Π°Π±ΠΎΡ‚Ρ‹, Π΄Π°Π½Π½Ρ‹ΠΉ ΠΌΠ΅Ρ‚ΠΎΠ΄ Π½Π΅Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎ Ρ…ΠΎΡ€ΠΎΡˆΠΎ ΠΌΠ°ΡΡˆΡ‚Π°Π±ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ. Он ΠΎΠ³Ρ€Π°Π½ΠΈΡ‡ΠΈΠ²Π°Π΅Ρ‚ Π΄Π΅Ρ‚Π°Π»ΠΈΠ·Π°Ρ†ΠΈΡŽ отслСТивания ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΠΉ ΠΈ склонСн ΠΊ ΠΏΠΎΡ‚Π΅Ρ€Π΅ Ρ‚Π°ΠΊΠΈΡ… подробностСй, ΠΊΠ°ΠΊ порядок ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΠΉ, ΠΈΠΌΠ΅Π½ ΠΈΡ… Π°Π²Ρ‚ΠΎΡ€ΠΎΠ² ΠΈ указания ΠΏΡ€ΠΈΡ‡ΠΈΠ½. ВосстановлСниС Ρ‚ΠΎΠ»ΡŒΠΊΠΎ части ΠΊΡ€ΡƒΠΏΠ½ΠΎΠ³ΠΎ измСнСния ΠΌΠΎΠΆΠ΅Ρ‚ ΠΎΠΊΠ°Π·Π°Ρ‚ΡŒΡΡ ΡƒΡ‚ΠΎΠΌΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎΠΉ ΠΈ ΠΎΡ‚Π½ΠΈΠΌΠ°ΡŽΡ‰Π΅ΠΉ ΠΌΠ½ΠΎΠ³ΠΎ Π²Ρ€Π΅ΠΌΠ΅Π½ΠΈ ΠΏΡ€ΠΎΡ†Π΅Π΄ΡƒΡ€ΠΎΠΉ, ΠΈ часто Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚Ρ‡ΠΈΠΊΠΈ Π²Ρ‹Π½ΡƒΠΆΠ΄Π΅Π½Ρ‹ Π²ΠΎΡΡΡ‚Π°Π½Π°Π²Π»ΠΈΠ²Π°Ρ‚ΡŒ Π±ΠΎΠ»Π΅Π΅ Ρ€Π°Π½Π½ΡŽΡŽ Π²Π΅Ρ€ΡΠΈΡŽ.

15.5.3 Автоматизированный ΠΊΠΎΠ½Ρ‚Ρ€ΠΎΠ»ΡŒ вСрсий

Для Ρ‚ΠΎΠ³ΠΎ Ρ‡Ρ‚ΠΎΠ±Ρ‹ ΠΈΠ·Π±Π΅ΠΆΠ°Ρ‚ΡŒ описанных Π²Ρ‹ΡˆΠ΅ ΠΏΡ€ΠΎΠ±Π»Π΅ΠΌ, ΠΌΠΎΠΆΠ½ΠΎ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ ΠΊΠ°ΠΊΡƒΡŽ-Π»ΠΈΠ±ΠΎ систСму контроля вСрсий (Version-Control Systemβ€” VCS), ΠΏΠ°ΠΊΠ΅Ρ‚ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌ, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ Π°Π²Ρ‚ΠΎΠΌΠ°Ρ‚ΠΈΠ·ΠΈΡ€ΡƒΠ΅Ρ‚ Π±ΠΎΠ»ΡŒΡˆΡƒΡŽ Ρ‡Π°ΡΡ‚ΡŒ Ρ€ΡƒΡ‚ΠΈΠ½Π½ΠΎΠΉ Ρ€Π°Π±ΠΎΡ‚Ρ‹ ΠΏΠΎ ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠ°Π½ΠΈΡŽ Π°Π½Π½ΠΎΡ‚ΠΈΡ€ΠΎΠ²Π°Π½Π½ΠΎΠΉ истории ΠΏΡ€ΠΎΠ΅ΠΊΡ‚Π° ΠΈ позволяСт ΠΈΠ·Π±Π΅ΠΆΠ°Ρ‚ΡŒ ΠΊΠΎΠ½Ρ„Π»ΠΈΠΊΡ‚ΠΎΠ² ΠΌΠΎΠ΄ΠΈΡ„ΠΈΠΊΠ°Ρ†ΠΈΠΈ.

Π‘ΠΎΠ»ΡŒΡˆΠΈΠ½ΡΡ‚Π²ΠΎ VCS-систСм ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΡŽΡ‚ ΠΎΠ΄Π½Ρƒ ΠΈ Ρ‚Ρƒ ΠΆΠ΅ Π±Π°Π·ΠΎΠ²ΡƒΡŽ Π»ΠΎΠ³ΠΈΠΊΡƒ. ИспользованиС Ρ‚Π°ΠΊΠΎΠΉ систСмы начинаСтся с рСгистрации сСмСйства Ρ„Π°ΠΉΠ»ΠΎΠ² исходного ΠΊΠΎΠ΄Π°, Ρ‚.Π΅. с указания VCS-систСмС Π½Π°Ρ‡Π°Ρ‚ΡŒ Π°Ρ€Ρ…ΠΈΠ²ΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠ΅ Ρ„Π°ΠΉΠ»ΠΎΠ², описывая ΠΈΡΡ‚ΠΎΡ€ΠΈΡŽ ΠΈΡ… измСнСния. ПослС этого ΠΏΡ€ΠΈ нСобходимости ΠΎΡ‚Ρ€Π΅Π΄Π°ΠΊΡ‚ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ ΠΎΠ΄ΠΈΠ½ ΠΈΠ· Ρ‚Π°ΠΊΠΈΡ… Ρ„Π°ΠΉΠ»ΠΎΠ² трСбуСтся ΠΎΡ‚ΠΌΠ΅Ρ‚ΠΈΡ‚ΡŒ (check out) Π΄Π°Π½Π½Ρ‹ΠΉ Ρ„Π°ΠΉΠ» β€” ΠΎΠ±ΡŠΡΠ²ΠΈΡ‚ΡŒ Π΅Π³ΠΎ ΠΈΡΠΊΠ»ΡŽΡ‡ΠΈΡ‚Π΅Π»ΡŒΠ½ΡƒΡŽ Π±Π»ΠΎΠΊΠΈΡ€ΠΎΠ²ΠΊΡƒ. По ΠΎΠΊΠΎΠ½Ρ‡Π°Π½ΠΈΠΈ рСдактирования Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΠΎ ΡΠ΄Π°Ρ‚ΡŒ (check in) Ρ„Π°ΠΉΠ», добавляя внСсСнныС измСнСния Π² Π°Ρ€Ρ…ΠΈΠ², снимая Π±Π»ΠΎΠΊΠΈΡ€ΠΎΠ²ΠΊΡƒ ΠΈ вводя ΠΊΠΎΠΌΠΌΠ΅Π½Ρ‚Π°Ρ€ΠΈΠΈ, ΠΏΠΎΡΡΠ½ΡΡŽΡ‰ΠΈΠ΅ ΡΡƒΡ‚ΡŒ внСсСнных ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΠΉ.

Π˜ΡΡ‚ΠΎΡ€ΠΈΡ ΠΏΡ€ΠΎΠ΅ΠΊΡ‚Π° Π½Π΅ ΠΎΠ±ΡΠ·Π°Ρ‚Π΅Π»ΡŒΠ½ΠΎ ΠΈΠΌΠ΅Π΅Ρ‚ Π»ΠΈΠ½Π΅ΠΉΠ½Ρ‹ΠΉ Ρ…Π°Ρ€Π°ΠΊΡ‚Π΅Ρ€. ВсС ΡˆΠΈΡ€ΠΎΠΊΠΎ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅ΠΌΡ‹Π΅ VCS-систСмы фактичСски ΠΏΠΎΠ·Π²ΠΎΠ»ΡΡŽΡ‚ Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚Ρ‡ΠΈΠΊΡƒ ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΈΠ²Π°Ρ‚ΡŒ Π΄Π΅Ρ€Π΅Π²ΠΎ Π²Π°Ρ€ΠΈΠ°Π½Ρ‚Π½Ρ‹Ρ… вСрсий (Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€, вСрсии для Π΄Ρ€ΡƒΠ³ΠΈΡ… машин) с ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ инструмСнтов для объСдинСния Π²Π΅Ρ‚Π²Π΅ΠΉ ΠΎΠ±Ρ€Π°Ρ‚Π½ΠΎ Π² Π³Π»Π°Π²Π½ΡƒΡŽ "ΡΡ‚Π²ΠΎΠ»ΠΎΠ²ΡƒΡŽ" Π²Π΅Ρ€ΡΠΈΡŽ. Данная функция становится Π²Π°ΠΆΠ½ΠΎΠΉ ΠΏΠΎ ΠΌΠ΅Ρ€Π΅ увСличСния Ρ€Π°Π·ΠΌΠ΅Ρ€Π° ΠΈ диспСрсии Π³Ρ€ΡƒΠΏΠΏΡ‹ Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚ΠΊΠΈ. Однако Π΅Π΅ слСдуСт ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ с ΠΎΡΡ‚ΠΎΡ€ΠΎΠΆΠ½ΠΎΡΡ‚ΡŒΡŽ. ΠœΠ½ΠΎΠΆΠ΅ΡΡ‚Π²ΠΎ Π°ΠΊΡ‚ΠΈΠ²Π½Ρ‹Ρ… Π²Π°Ρ€ΠΈΠ°Π½Ρ‚ΠΎΠ² ΠΊΠΎΠ΄ΠΎΠ²ΠΎΠΉ Π±Π°Π·Ρ‹ ΠΌΠΎΠ³ΡƒΡ‚ ΡΠΎΠ·Π΄Π°Π²Π°Ρ‚ΡŒ ΠΏΡƒΡ‚Π°Π½ΠΈΡ†Ρƒ (Ρ‚ΠΎΠ»ΡŒΠΊΠΎ связанныС с ΠΏΡ€Π°Π²ΠΈΠ»ΡŒΠ½ΠΎΠΉ вСрсиСй ΠΎΡ‚Ρ‡Π΅Ρ‚Ρ‹ ΠΎΠ± ΠΎΡˆΠΈΠ±ΠΊΠ°Ρ… Π½Π΅ всСгда ΠΎΠΊΠ°Π·Ρ‹Π²Π°ΡŽΡ‚ΡΡ простыми), ΠΈ Π°Π²Ρ‚ΠΎΠΌΠ°Ρ‚ΠΈΠ·ΠΈΡ€ΠΎΠ²Π°Π½Π½ΠΎΠ΅ слияниС Π²Π΅Ρ‚Π²Π΅ΠΉ Π½Π΅ Π³Π°Ρ€Π°Π½Ρ‚ΠΈΡ€ΡƒΠ΅Ρ‚, Ρ‡Ρ‚ΠΎ ΠΊΠΎΠΌΠ±ΠΈΠ½ΠΈΡ€ΠΎΠ²Π°Π½Π½Ρ‹ΠΉ ΠΊΠΎΠ΄ Π±ΡƒΠ΄Π΅Ρ‚ Ρ€Π°Π±ΠΎΡ‚Π°Ρ‚ΡŒ.