Нұсқаны басқару - Version control

Жылы бағдарламалық жасақтама, нұсқаны басқару (сонымен бірге қайта қарауды бақылау, көзді басқару, немесе бастапқы кодты басқару) - өзгерістерді басқаруға жауап беретін жүйелер класы компьютерлік бағдарламалар, құжаттар, үлкен веб-сайттар немесе басқа ақпарат жинақтары. Нұсқаны басқару - компоненті бағдарламалық жасақтаманың конфигурациясын басқару.[1]

Өзгерістер әдетте санмен немесе әріптік кодпен анықталады, «қайта қарау нөмірі», «қайта қарау деңгейі» немесе жай «қайта қарау» деп аталады. Мысалы, файлдардың бастапқы жиынтығы «1-түзету» болып табылады. Бірінші өзгеріс енгізілгенде, жиынтық «2-ревизия» және т.с.с. Әрбір қайта қарау а уақыт белгісі және өзгертуші адам. Түзетулерді салыстыруға, қалпына келтіруге және кейбір файл түрлерімен біріктіруге болады.

Түзетулерді ұйымдастырудың және басқарудың логикалық тәсілінің қажеттілігі қанша уақыттан бері бар жазу болған, бірақ қайта қарауды бақылау есептеу дәуірі басталған кезде әлдеқайда маңызды және күрделі бола бастады. Нөмірлеу кітап басылымдары және спецификацияны қайта қарау тек басып шығару дәуірінен басталған мысалдар. Бүгінгі күні қайта қарауды басқарудың ең қабілетті (сонымен қатар күрделі) жүйелері қолданылады бағдарламалық жасақтама жасау, мұнда адамдар тобы бірдей файлдарға өзгертулер енгізе алады.

Нұсқаларды басқару жүйелері (VCS) көбінесе дербес қосымшалар ретінде іске қосылады, бірақ қайта қарауды басқару бағдарламалық жасақтаманың әр түріне енеді мәтіндік процессорлар және электрондық кестелер, бірлескен веб-құжаттар[2] және әр түрлі мазмұнды басқару жүйелері мысалы, Википедия бет тарихы. Ревизиялық бақылау құжатты алдыңғы редакцияға қайтаруға мүмкіндік береді, бұл редакторларға бір-бірінің түзетулерін қадағалауға, қателіктерін түзетуге, бұзақылықтан және қорғаудан қорғауға мүмкіндік береді. спам жылы уики.

Шолу

Компьютерде бағдарламалық жасақтама, ревизиялық бақылау - бұл өзгерістерді бақылап, бақылауды қамтамасыз ететін кез-келген тәжірибе бастапқы код. Бағдарламалық жасақтама жасаушылар кейде құжаттаманы жүргізу үшін қайта қарау бағдарламалық жасақтамасын және конфигурация файлдары сонымен қатар бастапқы код.

Бағдарламалық жасақтаманы жобалау, әзірлеу және орналастыру кезінде бір сайттың бірнеше нұсқалары әртүрлі сайттарда орналасуы және бағдарламалық жасақтама жасаушылары бір уақытта жаңартулармен жұмыс істеуі әдеттегідей. Қателер немесе бағдарламалық жасақтаманың мүмкіндіктері көбінесе белгілі бір нұсқаларда ғана болады (кейбір мәселелердің шешілуіне және басқаларының бағдарлама дамуына байланысты). Сондықтан, қателерді табу және жою мақсатында, бағдарламаның әр түрлі нұсқаларын шығарып алу және іске қосу үшін проблеманың қай нұсқасында (нұсқаларында) болатынын анықтау өте маңызды. Сонымен қатар бағдарламалық жасақтаманың екі нұсқасын бір уақытта жасау қажет болуы мүмкін: мысалы, бір нұсқасында қателер жойылған, бірақ жаңа мүмкіндіктері жоқ (филиал ), ал басқа нұсқасында жаңа мүмкіндіктер жұмыс істейді (магистраль ).

Қарапайым деңгейде әзірлеушілер бағдарламаның әртүрлі нұсқаларының бірнеше көшірмелерін сақтап, оларды тиісті түрде таңбалай алады. Бұл қарапайым тәсіл көптеген ірі бағдарламалық жасақтама жобаларында қолданылған. Бұл әдіс жұмыс істей алғанымен, тиімсіз, өйткені бағдарламаның көптеген бірдей көшірмелерін сақтау керек. Бұл әзірлеушілерден үлкен тәртіптілікті талап етеді және жиі қателіктерге әкеледі. Код негізі бірдей болғандықтан, ол сонымен қатар өңдеушілер жиынтығына оқуды-жазуды-орындауға рұқсат беруді талап етеді және бұл код базасын бұзбау үшін рұқсаттарды басқаратын біреудің қысымын арттырады, бұл одан әрі күрделендіреді. Демек, қайта қарауды басқару процесінің бір бөлігін немесе барлығын автоматтандыратын жүйелер жасалды. Бұл нұсқаларды басқару қадамдарының басқарылуының басым бөлігі перде артында жасырын болуын қамтамасыз етеді.

Сонымен қатар, бағдарламалық жасақтаманы дамытуда, заңды және іскери тәжірибеде және басқа ортада бірыңғай құжаттың немесе кодтың үзінділерінің топ мүшелері географиялық жағынан таралуы мүмкін және әртүрлі, тіпті қарама-қайшы мүдделерді көздейтін топтың редакциялауы жиі кездеседі. . Құжаттарға және кодқа енгізілген өзгерістерді қадағалайтын және есепке алатын күрделі қайта қарау мұндай жағдайларда өте пайдалы немесе тіпті таптырмас болуы мүмкін.

Ревизиялық бақылау сонымен қатар өзгертулерді қадағалай алады конфигурация файлдары сияқты сақталатын сияқты / және т.б. немесе / usr / local / etc Unix жүйелерінде. Бұл жүйе әкімшілеріне өзгертулерді бақылаудың тағы бір әдісін және қажеттілік туындаған жағдайда бұрынғы нұсқаларға оралу мүмкіндігін береді.

Тарих

IBM OS / 360 IEBUPDTE бағдарламалық жасақтаманы жаңарту құралы 1962 жылдан басталады, мүмкін VCS құралдарының ізашары. Бастапқы кодты басқаруға арналған толық жүйе 1972 жылы басталды, SCCS сол жүйе үшін (OS / 360). 1975 жылы 4 желтоқсанда жарияланған SCSS-тің кіріспесі тарихи түрде бұл алғашқы қасақана жүйе болғандығын меңзеді.[3] RCS осыдан кейін,[4] оның CVS желілік нұсқасымен. CVS-тен кейінгі ұрпақ Subversion-ті басқарды,[5] артынан көтерілу таратылған бақылауды бақылау (мысалы, бару ).

Құрылым

Ревизиялық бақылау уақыттың ішінде мәліметтер жиынтығының өзгеруін басқарады. Бұл өзгерістер әртүрлі тәсілдермен құрылымдалуы мүмкін.

Көбіне мәліметтер файлдар немесе құжаттар сияқты көптеген жеке элементтердің жиынтығы ретінде қарастырылады және жеке файлдардың өзгеруі бақыланады. Бұл жекелеген файлдар туралы түйсіктерге сәйкес келеді, бірақ сәйкестендіру өзгерген кезде, мысалы, файлдардың атын өзгерту, бөлу немесе біріктіру кезінде қиындықтар туғызады. Тиісінше, сияқты кейбір жүйелер Гит, оның орнына қарапайым өзгерістер үшін интуитивті емес, бірақ күрделі өзгерістерді жеңілдететін мәліметтердің өзгеруін тұтастай қарастырыңыз.

Бақылаудағы деректер өзгертілген кезде, алынғаннан кейін тексеру, бұл жалпы алғанда қайта қарау жүйесінде бірден көрінбейді ( репозиторий), бірақ оның орнына болуы керек тіркелген немесе жасалған. Ревизиядан тыс көшірме «жұмыс көшірмесі» деп аталады. Қарапайым мысал ретінде, компьютерлік файлды редакциялау кезінде, редакторлау бағдарламасында жадта сақталатын мәліметтер жұмыс көшірмесі болып табылады, ол сақтау арқылы жасалады. Құжатты нақты түрде басып шығаруға, оны қолмен өңдеуге, кейінірек компьютерге қолмен енгізіп, сақтауға болады. Бастапқы кодты басқару үшін жұмыс көшірмесі оның орнына белгілі бір ревизиядағы барлық файлдардың көшірмесі болып табылады, әдетте әзірлеушінің компьютерінде жергілікті жерде сақталады;[1 ескерту] бұл жағдайда файлды сақтау тек жұмыс көшірмесін өзгертеді, ал репозиторийге тексеру - бұл бөлек қадам.

Егер бірнеше адамдар бір деректер жиынтығында немесе құжатта жұмыс істеп жатса, олар деректердің тармақтарын жасырын түрде жасайды (олардың жұмыс көшірмелерінде), осылайша төменде қарастырылғандай біріктіру мәселелері туындайды. Қарапайым бірлескен құжаттарды редакциялау үшін бұны қолдану арқылы алдын алуға болады файлды құлыптау немесе басқа біреу жұмыс істейтін құжатпен жұмыс жасаудан аулақ болу.

Қайта қарауды басқару жүйелері көбінесе орталықтандырылған, деректердің бір беделді қоймасы бар репозиторий, және осы орталық репозитарийге сілтеме жасай отырып, шығу және тіркелу. Сонымен қатар, таратылған бақылауды бақылау, бірде-бір репозиторий беделді емес, деректерді кез-келген репозитарийге тексеріп, тексеруге болады. Басқа репозиторийге тексеру кезінде бұл біріктіру немесе патч ретінде түсіндіріледі.

Графикалық құрылым

Ревизиямен басқарылатын жобаның мысал тарихының графигі; магистраль жасыл, ал бұтақтар сары, ал график ағаштардың бірігуіне байланысты емес (қызыл көрсеткілер).

Жөнінде графтар теориясы, түзетулер әдетте даму сызығы ретінде қарастырылады ( магистраль) бұтақтардан бұтақтармен, бағытталған ағашты құра отырып, магистральдан тармақталған дамудың бір немесе бірнеше параллель сызықтары (бұтақтардың «негізгі сызықтары») түрінде көрінеді. Шындығында құрылым күрделі болып, а бағытталған ациклдік график, бірақ көптеген мақсаттар үшін «біріктірілген ағаш» барабар жуықтау болып табылады.

Түзетулер уақыт өте келе дәйектілікпен жүреді, осылайша оларды ревизия нөмірі немесе уақыт белгісі бойынша ретке келтіруге болады.[2 ескерту] Түзетулер бұрынғы түзетулерге негізделеді, дегенмен «бар мәтінді өшіру, жаңа мәтін енгізу» сияқты алдыңғы нұсқаны едәуір немесе толықтай ауыстыруға болады. Қарапайым жағдайда, тармақталусыз немесе жойылмай, әр қайта қарау тек өзінің тікелей предшественнигіне негізделеді және олар қарапайым жолды құрайды, бір ғана соңғы нұсқасы бар, «HEAD» нұсқасы немесе ұшы. Жылы графтар теориясы терминдер, әр түзетуді нүкте ретінде және әрбір «алынған ревизия» байланысын жебе ретінде (шартты түрде ескісінен жаңасына қарай, уақытпен бірдей бағытта) сызықтық график. Егер тармақталған болса, онда көптеген болашақ түзетулер өткен ревизияға негізделеді немесе жойылады, сондықтан қайта қарау оның алдындағыдан гөрі бұрынғы ревизияға тәуелді болуы мүмкін, нәтижесінде алынған графиктің орнына бағытталған ағаш (әр түйінде біреуден көп бала болуы мүмкін) және бірнеше кеңестері бар, олар баласыз ревизияға сәйкес келеді («әр тармақтағы соңғы редакция»).[3 ескерту] Негізінде алынған ағаштың ұнатылған ұшы болмауы керек («негізгі» соңғы нұсқасы) - әр түрлі әр түрлі нұсқалары - бірақ іс жүзінде бір ұшы HEAD деп анықталады. Жаңа редакция HEAD-ке негізделген кезде, ол жаңа HEAD ретінде анықталады немесе жаңа тармақ болып саналады.[4 ескерту] Басынан HEAD-ге дейін қайта қарау тізімі (графикалық теория тұрғысынан, бұрынғыдай сызықтық графикті құрайтын ағаштағы ерекше жол) магистраль немесе негізгі сызық.[5 ескерту] Керісінше, қайта қарау бірнеше алдыңғы ревизияға негізделуі мүмкін болған кезде (түйінде бірнеше болуы мүмкін болғанда) ата-ана), алынған процесс а деп аталады біріктіру, және қайта қарауды басқарудың күрделі аспектілерінің бірі болып табылады. Бұл көбінесе бірнеше тармақтарда өзгерістер болған кезде пайда болады (көбінесе екі, бірақ одан да көп болуы мүмкін), содан кейін екі өзгерісті де біріктіретін бір тармаққа біріктіріледі. Егер бұл өзгерістер бір-біріне сәйкес келсе, оларды біріктіру қиын немесе мүмкін емес, сондықтан қолмен араласуды немесе қайта жазуды қажет етеді.

Біріктіру болған жағдайда, алынған график бұдан былай ағаш болмайды, өйткені түйіндердің бірнеше ата-анасы болуы мүмкін, бірақ оның орнына тамырлас болады бағытталған ациклдік график (DAG). График ациклді болып табылады, өйткені ата-аналар әрдайым артқа қарай жүреді және ең көне нұсқасы болғандықтан тамырластырылады. Магистраль бар деп болжай отырып, бұтақтардан қосылуды ағашқа «сыртқы» деп санауға болады - бұтақтағы өзгерістер бума ретінде жинақталады. патч, ол HEAD-ке (магистральға) қолданылады, бұтаққа ешқандай сілтеме жасамай, жаңа редакция жасайды және ағаш құрылымын сақтайды. Осылайша, нұсқалар арасындағы нақты қатынастар DAG-ны құрайтын болса, бұл ағашты қосады деп есептеуге болады, ал магистральдың өзі сызық болып табылады.

Таратылған ревизияны бақылау кезінде, бірнеше репозитарийлер болған жағдайда, олар бір түпнұсқа нұсқаға (ағаштың тамыры) негізделуі мүмкін, бірақ түпнұсқа түбірдің болмауы керек, демек әр репозитарий үшін жеке түбір (ең көне редакция) мысалы, егер екі адам жоба бойынша бөлек жұмыс істей бастаса. Дәл сол сияқты деректермен алмасатын немесе біріктіретін бірнеше деректер жиынтығы (бірнеше жоба) болған жағдайда, бірыңғай түбір жоқ, дегенмен қарапайымдылығы үшін бір жобаны негізгі, ал екіншісін қосалқы деп санауға болады, біріншісіне біріктірілген немесе қосылмаған өзінің қайта қарау тарихы.

Мамандандырылған стратегиялар

Инженерлік ревизияны бақылау, ерте жоспарлардың түзетулерін қадағалау негізінде ресімделген процестерден дамыды көк сызықтар[дәйексөз қажет ]. Бұл басқару жүйесі жобаны жасау кезінде инженерлік тығырыққа тірелген жағдайлар үшін жобаның бұрынғы күйіне оралуға жанама түрде мүмкіндік берді. Жүргізілген өзгерістерді бақылау үшін қайта қарау кестесі қолданылды. Сонымен қатар, сызбаның өзгертілген аймақтары ревизия бұлттарының көмегімен ерекшеленді.

Нұсқалық бақылау кәсіпкерлік және заң саласында кең таралған. Шынында да, «келісімшарттар бойынша қайта сызу» және «заңды қара телефон» қайта қараудың алғашқы формаларының бірі болып табылады,[6] және әлі күнге дейін әртүрлі дәрежеде талғампаздықпен бизнес және заң саласында жұмыс істейді. Өзгерістерді электронды қадағалау үшін ең күрделі әдістер қолданыла бастайды CAD файлдары (қараңыз өнімнің деректерін басқару ), дәстүрлі ревизиялық бақылауды «қолмен» электронды енгізуді тоқтату.[дәйексөз қажет ]

Дереккөздерді басқару модельдері

Дәстүрлі қайта қарауды басқару жүйелері орталықтандырылған моделін қолданады, мұнда қайта қараудың барлық функциялары ортақ пайдаланылады сервер. Егер екі әзірлеуші ​​бір файлды бір уақытта өзгертуге тырысса, қол жетімділікті басқарудың қандай да бір әдісі болмаса, әзірлеушілер бір-бірінің жұмысын қайта жазуы мүмкін. Қайта басқарудың орталықтандырылған жүйелері бұл мәселені екі түрлі «көздерді басқару модельдерінің» бірінде шешеді: файлдарды бұғаттау және нұсқаларды біріктіру.

Атомдық операциялар

Операция атомдық егер жұмыс үзілген болса да, жүйе тұрақты күйде қалдырылса. The міндеттеме Әдетте бұл мағынада операция ең маңызды болып табылады. Міндеттемелер қайта қарау жүйесіне өзгерістер тобын түпкілікті және барлық пайдаланушыларға қол жетімді етуді ұсынады. Барлық қайта қарау жүйелерінде атомдық міндеттемелер болмайды; атап айтқанда, CVS бұл функция жетіспейді.[7]

Файлды құлыптау

Алдын алудың қарапайым әдісі »бір уақытта қол жеткізу «проблемалар жатады файлдарды құлыптау сондықтан бір уақытта бір ғана әзірлеуші ​​сол файлдардың орталық «репозиторийіне» көшірмелерін жаза алады. Бір әзірлеуші ​​файлды «тексеріп» алғаннан кейін, басқалары бұл файлды оқи алады, бірақ ол жаңартылған нұсқаны «тексермейінше» (немесе төлемді тоқтатпайынша) ешкім оны өзгерте алмайды.

Файлды құлыптауда артықшылықтармен қатар кемшіліктер де бар. Бұл пайдаланушы үлкен файлдың көптеген бөлімдеріне (немесе файлдар тобына) түбегейлі өзгерістер енгізген кезде, қиын біріктіру қақтығыстарынан біраз қорғанысты қамтамасыз ете алады. Алайда, егер файлдар тек ұзақ уақытқа құлыптаулы тұрса, басқа әзірлеушілер қайта қарауды басқаратын бағдарламалық жасақтаманы айналып өтіп, файлдарды жергілікті түрде өзгертуге азғырылуы мүмкін, сондықтан басқа өзгертулер тексерілгенде қолмен біріктіруге мәжбүр болады. Үлкен ұйымда файлдар әзірлеушілер жобалар арасында ауысқан кезде «тексеріліп», құлыптаулы және ұмытып кетуі мүмкін - бұл құралдар файлдың кім тексерілгенін көруді жеңілдетуі мүмкін немесе мүмкін емес.

Нұсқаны біріктіру

Көптеген нұсқаларды басқару жүйелері бірнеше әзірлеушілерге бір уақытта бір файлды өңдеуге мүмкіндік береді. Орталық репозитарийге өзгертулерді бірінші болып «тіркеген» әрдайым сәттілікке жетеді. Жүйе мүмкіндіктер бере алады біріктіру одан әрі орталық репозитарийге өзгертулер енгізіңіз және басқа әзірлеушілер тіркелген кезде алғашқы әзірлеушіден өзгерістерді сақтаңыз.

Екі файлды біріктіру өте нәзік жұмыс болуы мүмкін, және, әдетте, егер мәліметтер құрылымы қарапайым болса ғана мүмкін мәтіндік файлдар. Екеуінің бірігуінің нәтижесі кескін файлдары кескін файлына мүлдем әкелмеуі мүмкін. Кодты тексеріп жатқан екінші әзірлеуші ​​біріктіру туралы қамқорлық жасауы керек, өзгертулер үйлесімді екеніне және біріктіру әрекеті өзін енгізбейтініне көз жеткізуі керек логика файлдардағы қателер. Бұл мәселелер автоматты немесе жартылай автоматты біріктіру операцияларының қол жетімділігін шектейді, егер белгілі бір біріктіру болмаса, негізінен қарапайым мәтінге негізделген құжаттармен плагин файл түрлері үшін қол жетімді.

А ұғымы сақталған редакция біріктіру мүмкіндігі болған кезде де, ерекше жазуға қол жеткізу үшін файлды нақты құлыптау үшін қосымша құрал ұсына алады.

Негізгі сызықтар, жапсырмалар мен тегтер

Ревизияны бақылау құралдарының көпшілігі суретті анықтау әрекетін («жобаны белгілеу») немесе суреттің жазбасын («оны бастапқы сызықпен пайдаланып көріңіз) сілтеме жасау үшін осыған ұқсас терминдердің біреуін ғана пайдаланады (бастапқы сызық, белгі, тег). X«). Әдетте терминдердің біреуі ғана бастапқы деңгей, заттаңба, немесе тег құжаттамада немесе талқылауда қолданылады[дәйексөз қажет ]; оларды синоним деп санауға болады.

Көптеген жобаларда кейбір суреттер басқаларына қарағанда маңызды, мысалы, жарияланған шығарылымдарды, филиалдарды немесе маңызды кезеңдерді көрсету үшін қолданылады.

Екі мерзім де бастапқы деңгей және кез келген заттаңба немесе тег бір контексте бірге қолданылады, заттаңба және тег әдетте суретке түсіруді немесе жазбаны жасау құралы ішіндегі механизмге сілтеме жасайды және бастапқы деңгей кез келген берілген затбелгінің немесе белгінің маңыздылығын көрсетеді.

Ең ресми талқылау конфигурацияны басқару терминін қолданады бастапқы деңгей.

Қайта бақылауды үлестірді

Таратылған қайта қарауды басқару жүйелері (DRCS), «peer-to-peer» тәсілін қолданады, керісінше клиент-сервер орталықтандырылған жүйелердің тәсілі. Клиенттер үндестіретін бірыңғай орталық репозитарийдің орнына әр базалық кодтың базалық көшірмесі ақ ниетті репозиторий.[8]Таратылған ревизиялық бақылау алмасу арқылы синхрондауды жүргізеді патчтар (change-set) бір деңгейден бір деңгейге. Бұл орталықтандырылған жүйеден бірнеше маңызды айырмашылықтарға әкеледі:

  • Код базасының анықтамалық көшірмесі әдепкі бойынша жоқ; тек жұмыс даналары.
  • Жалпы операциялар (мысалы, міндеттемелер, тарихты қарау және өзгертулерді қайтару) жылдам, өйткені орталық сервермен байланыс орнатудың қажеті жоқ.[1]:7

Керісінше, қарым-қатынас тек басқа құрдастарына өзгерістерді итеру немесе тарту кезінде қажет.

  • Әрбір жұмыс жасайтын көшірме кодтар базасының және оның өзгеру тарихының қашықтан сақтық көшірмесі ретінде тиімді жұмыс істейді, бұл деректерді жоғалтудан қорғауды қамтамасыз етеді.[1]:4

Интеграция

Қайта басқаруды жетілдірілген құралдардың кейбіреулері басқа құралдармен және бағдарламалық жасақтама-инженерлік процестермен терең интеграциялануға мүмкіндік беретін көптеген басқа мүмкіндіктерді ұсынады. Плагиндер үшін жиі қол жетімді IDE сияқты Oracle JDeveloper, IntelliJ IDEA, Тұтылу және Visual Studio. Delphi, NetBeans IDE, Xcode, және GNU Emacs (vc.el арқылы). Жетілдірілген зерттеу прототиптері тиісті хабарламалар жасайды,[9] бірақ ол тек үлкен тарихы бар жобаларда жұмыс істейді, өйткені хабарламалар жобаның конвенциялары мен идиосинкразияларына өте тәуелді.[10]

Жалпы терминология

Терминология әр жүйеде әр түрлі болуы мүмкін, бірақ жалпы қолданыстағы кейбір терминдерге мыналар жатады:[11]

Бастапқы
Келесі өзгертулер енгізілуі мүмкін құжаттың немесе бастапқы файлдың бекітілген ревизиясы. Қараңыз негізгі сызықтар, жапсырмалар мен тегтер.
Филиал
Нұсқа бақылауындағы файлдар жиынтығы болуы мүмкін тармақталған немесе айыр сол уақыттан бастап сол файлдардың екі данасы әр түрлі жылдамдықта немесе бір-біріне тәуелсіз әр түрлі жолмен дамуы мүмкін болатын уақыт аралығында.
Өзгерту
A өзгерту (немесе айырмашылық, немесе атырау ) нұсқамен басқарылатын құжатқа белгілі бір өзгерісті ұсынады. Өзгерістер қарастырылған модификацияның түйіршіктілігі нұсқаларды басқару жүйелері арасында өзгереді.
Тізімді өзгерту
Көптеген нұсқаларында басқару жүйелерінде атомдық көп өзгерісті міндеттемелер, а тізімді өзгерту (немесе CL), өзгерту жиынтығы, жаңарту, немесе патч жиынтығын анықтайды өзгерістер бір міндеттеме бойынша жасалған. Бұл сондай-ақ кез-келген нақты айырбастауыш идентификаторы ретінде дереккөзді тексеруге мүмкіндік беретін бастапқы кодтың дәйекті көрінісін көрсете алады.
Шығу
Кімге шығу (немесе co) репозиторийден жергілікті жұмыс көшірмесін жасау болып табылады. Пайдаланушы нақты түзетуді көрсете алады немесе соңғы нұсқасын ала алады. 'Кассадан шығу' термині жұмыс көшірмесін сипаттау үшін зат есім ретінде де қолданыла алады. Файлды ортақ файл серверінен тексерген кезде оны басқа пайдаланушылар өңдей алмайды. Мұны қонақ үй сияқты елестетіп көріңіз, тексергенде оның ыңғайлылығына қол жеткізе алмайсыз.
Клон
Клондау басқа репозитарийдің нұсқаларын қамтитын репозитарий құруды білдіреді. Бұл барабар Басыңызing немесе Тартбос (жаңа инициализацияланған) репозитарийге кіру. Зат есім ретінде екі репозиторий деп айтуға болады клонs, егер олар синхрондалса және бірдей түзетулер болса.
Міндеттеме (зат есім)
«Міндеттеме» немесе «қайта қарау» (SVN) - бұл репозитарийге қолданылатын модификация.
Міндеттеме (етістік)
Кімге міндеттеме (тіркеу, ci немесе сирек, орнату, жіберу немесе жазба) жұмыс көшірмесінде жасалған өзгертулерді репозитарийге қайта жазу немесе біріктіру болып табылады. Міндетте метамәліметтер, әдетте авторлық ақпарат және өзгерісті сипаттайтын хабарлама болады.
Жанжал
Әр түрлі тараптар бір құжатқа өзгертулер енгізгенде, жүйе өзгерістерді келісе алмаған жағдайда жанжал туындайды. Пайдаланушы міндетті шешіңіз өзгерістерді біріктіру арқылы немесе бір өзгерісті басқасының пайдасына таңдау арқылы жанжал.
Дельтаның қысылуы
Бағдарламалық жасақтаманы қайта қарауды қолданады сығымдау, бұл файлдардың кезектегі нұсқалары арасындағы айырмашылықтарды ғана сақтайды. Бұл файлдардың әртүрлі нұсқаларын тиімді сақтауға мүмкіндік береді.
Динамикалық ағын
Файлдың кейбір немесе барлық нұсқалары ата-аналық ағын нұсқаларының айнасы болатын ағын.
Экспорттау
экспорттау репозиторийден файлдарды алу әрекеті. Бұл ұқсас тексеру тек жұмыс көшірмесінде қолданылатын метамәліметтердің нұсқасынсыз таза каталог ағашын жасайды. Бұл көбінесе мазмұнды жарияламас бұрын қолданылады, мысалы.
Алу
Қараңыз Тарт.
Алға интеграция
Өзгерістерді біріктіру процесі бастыға енгізілді магистраль даму (ерекшелігі немесе командасы) филиалына.
Бас
Сондай-ақ кейде шақырылады ұшы, бұл магистральға немесе филиалға қатысты соңғы міндеттеме туралы айтады. Магистраль мен әр тармақтың өз басы болады, дегенмен HEAD кейде магистральға сілтеме жасау үшін еркін қолданылады.[12]
Импорттау
импорттау - бұл жергілікті каталогтар ағашын (қазіргі уақытта жұмыс жасайтын көшірме емес) репозитарийге бірінші рет көшіру әрекеті.
Инициализациялау
жаңа, бос репозиторий құру үшін.
Желбезектер
бағдарламалық қамтамасыздандыруды қайта қарауды қолданады Желбезектер, мәтіндік файлдардың тарихын қолдануға қарағанда тиімді етіп сақтауға мүмкіндік беретін әдіс Дельтаның қысылуы.
Заттаңба
Қараңыз тег.
Құлыптау
Әзірлеуші ​​болған кезде құлыптар файл, оны ешкім ашпағанша оны жаңарта алмайды. Құлыптауға нұсқаны басқару жүйесі немесе әзірлеушілер арасындағы бейресми байланыс арқылы қолдау көрсетілуі мүмкін (а әлеуметтік құлыптау).
Негізгі желі
Ұқсас магистраль, бірақ әр филиал үшін негізгі сызық болуы мүмкін.
Біріктіру
A біріктіру немесе интеграция бұл файлға немесе файлдар жиынына екі өзгертулер жиынтығы қолданылатын операция. Кейбір сценарийлер келесідей:
  • Файлдар жиынтығында жұмыс істейтін пайдаланушы, жаңартулар немесе синхрондау басқа пайдаланушылар жасаған және репозитарийге енгізген өзгертулермен олардың жұмыс көшірмесі.[13]
  • Пайдаланушы тырысады тіркеу файлдар болғаннан кейін басқалар жаңартқан файлдар тексерілді, және қайта қарауға арналған бағдарламалық жасақтама файлдарды автоматты түрде біріктіреді (әдетте, пайдаланушы автоматты түрде біріктіруді жалғастыруы керек деген сұраудан кейін, ал кейбір жағдайларда тек егер біріктіру нақты және ақылға қонымды шешілуі мүмкін болса).
  • A филиал жасалады, файлдардағы код дербес редакцияланады, ал жаңартылған тармақ кейінірек бірыңғай бірыңғайға қосылады магистраль.
  • Файлдар жиынтығы тармақталған, тармақталуға дейін болған ақаулық бір тармақта жойылады, содан кейін түзету екінші тармаққа біріктіріледі. (Таңдамалы біріктірудің бұл түрі кейде а деп аталады шие таңдау оны алдыңғы жағдайда толық біріктіруден ажырату.)
Алға жылжыту
Файл мазмұнын аз бақыланатын жерден бақыланатын орынға көшіру әрекеті. Мысалы, пайдаланушының жұмыс кеңістігінен репозиторийге немесе ағыннан оның ата-анасына.[14]
Тарт, итер
Түзетулерді бір репозитарийден екіншісіне көшіріңіз. Тарт алушы репозитариймен басталады, ал Басыңыз ақпарат көзі болып табылады. Алу кейде үшін синоним ретінде қолданылады Тарт, немесе а мағынасын білдіреді Тарт артынан жаңарту.
Репозиторий
The репозиторий (немесе «репо») - файлдардың ағымдағы және тарихи деректері, көбінесе серверде сақталатын жер. Кейде а депо.
Шешу
Бір құжаттағы әр түрлі өзгерістер арасындағы қайшылықты шешу үшін қолданушының араласуы.
Кері интеграция
Әр түрлі командалық филиалдарды версиялау жүйесінің негізгі магистраліне біріктіру процесі.
Қайта қарау
Сондай-ақ нұсқасы: A нұсқасы формадағы кез келген өзгеріс болып табылады. SVK-да ревизия деп репозитарийдегі бүкіл ағаштың уақыттағы күйін айтады.
Бөлісу
Бір файлды немесе қалтаны бірнеше филиалдарда бір уақытта қол жетімді ету әрекеті. Ортақ файл бір тармақта өзгертілсе, басқа филиалдарда өзгертіледі.
Ағын
Мұндай басқа контейнерлермен белгілі байланысы бар тармақталған файлдарға арналған контейнер. Ағындар иерархияны құрайды; әр ағын өзінің негізгі ағынынан әр түрлі қасиеттерді (нұсқалар, аттар кеңістігі, жұмыс процесінің ережелері, жазылушылар және т.б.) мұра ете алады.
Тег
A тег немесе заттаңба көптеген файлдарға сәйкес келетін маңызды суретке уақытылы сілтеме жасайды. Бұл кезде бұл файлдар бәріне ыңғайлы, мағыналы атпен немесе қайта қарау нөмірімен белгіленуі мүмкін. Қараңыз негізгі сызықтар, жапсырмалар мен тегтер.
Магистраль
Филиал болып табылмайтын ерекше даму желісі (кейде оны Бастауыш, Магистральдық немесе Мастер деп те атайды)
Жаңарту
Ан жаңарту (немесе синхрондау, бірақ синхрондау құрама мағынасын да білдіруі мүмкін Басыңыз және Тарт) репозитарийге енгізілген өзгерістерді (мысалы, басқа адамдар) жергіліктіге біріктіреді жұмыс көшірмесі. Жаңарту бұл сондай-ақ кейбір CM құралдарымен (CM +, PLS, SMS) өзгерту пакетінің тұжырымдамасы үшін қолданылатын термин (қараңыз) айырбастаушы). Синонимі шығу әр репозитарийге дәл бір жұмыс көшірмесі болуын талап ететін қайта қарау жүйелерінде (таралған жүйелерде кең таралған)
Құлпын ашу
құлыпты босату.
Жұмыс көшірмесі
The жұмыс көшірмесі - белгілі бір уақытта немесе қайта қарау кезінде репозиторийден файлдардың жергілікті көшірмесі. Репозиторийдегі файлдарға жасалған барлық жұмыс бастапқыда жұмыс көшірмесінде жасалады, демек оның атауы. Тұжырымдамалық тұрғыдан бұл құм жәшігі.
Өтінішті тарту
Басқалардан «итерілген» өзгерістерді біріктіруді сұрайтын әзірлеуші.

Сондай-ақ қараңыз

Ескертулер

  1. ^ Бұл жағдайда редакциялау буферлері жұмыс көшірмесінің екінші формасы болып табылады, және ол ондай деп аталмайды.
  2. ^ Негізінде екі түзетудің бірдей уақыт белгісі болуы мүмкін, сондықтан оларды жолға тапсырыс беруге болмайды. Әдетте бұл жеке репозитарийлерге қатысты, бірақ сонымен бірге бір репозиторийдегі бірнеше тармақтарға бір уақытта өзгерту мүмкін. Бұл жағдайларда түзетулерді репозитарийге немесе филиалға (немесе репозиторий ішіндегі тармаққа) бір бөлек жолдардың жиынтығы ретінде қарастыруға болады.
  3. ^ Ревизия немесе репозиторий «ағашын» жұмыс көшірмесіндегі файлдар каталогтар ағашымен шатастыруға болмайды.
  4. ^ Егер жаңа филиал HEAD-ке негізделген болса, топологиялық тұрғыдан HEAD енді кеңес болмайды, өйткені оның баласы бар.
  5. ^ «Магистраль» жеке тармақтағы негізгі жолға да сілтеме жасай алады.

Әдебиеттер тізімі

  1. ^ а б c О'Салливан, Брайан (2009). Меркурий: анықтамалық нұсқаулық. Себастополь: O'Reilly Media, Inc. ISBN  9780596555474. Алынған 4 қыркүйек 2015.
  2. ^ "Google Docs ", Файлдан не өзгергенін қараңыз, Google Inc..
  3. ^ «Бастапқы кодты басқару жүйесі» (PDF). Бағдарламалық жасақтама бойынша IEEE транзакциялары.
  4. ^ Тичи, Уолтер Ф. (1985). «Rcs - нұсқаны басқаруға арналған жүйе». Бағдарламалық жасақтама: тәжірибе және тәжірибе. 15 (7): 637–654. дои:10.1002 / спе.4380150703. ISSN  0038-0644. S2CID  2605086.
  5. ^ Коллинз-Сусман, Бен; Фицпатрик, BW; Pilato, CM (2004), Субверсиямен нұсқаны басқару, О'Рейли, ISBN  0-596-00448-6
  6. ^ Инженерлік сызбалар үшін қараңыз Whiteprint # Құжатты басқару, мысалы, ХХ ғасырда қолдан жасалған кейбір жүйелер үшін Инженерлік процедуралар туралы Hughes Aircraft, оны әр қайта қарау мақұлдауды қажет етеді Лоуренс А. Хайланд; АҚШ үкіметі бекіткен мақұлдау рәсімдерін қараңыз.
  7. ^ Ақылды, Джон Фергюсон (2008). Java электр құралдары. «O'Reilly Media, Inc.». б. 301. ISBN  9781491954546. Алынған 20 шілде 2019.
  8. ^ Уилер, Дэвид. «Ашық кодты бағдарламалық жасақтама / ақысыз бағдарламалық қамтамасыздандыру (OSS / FS) бағдарламалық жасақтаманы конфигурациялауды басқару (SCM) жүйелері туралы пікірлер». Алынған 8 мамыр, 2007.
  9. ^ Кортес-Кой, Луис Фернандо; Линарес-Васкес, Марио; Апонте, Джайро; Пошиваник, Денис (2014). «Бастапқы код өзгертулерін қорытындылау арқылы хабарламаларды автоматты түрде құру туралы». 2014 IEEE қайнар көздерін талдау және манипуляциялау бойынша 14-ші Халықаралық жұмыс конференциясы. IEEE: 275-284. дои:10.1109 / алаяқтық 2014.14. ISBN  978-1-4799-6148-1. S2CID  360545.
  10. ^ Этемади, Хашаяр; Монперрус, Мартин (2020-06-27). «Хабарлама құру үшін жақын көршілермен жобалық оқытудың өзектілігі туралы». IEEE / ACM 42-ші бағдарламалық жасақтама жасау бойынша халықаралық семинарлар жинағы. Сеул Корея Республикасы: ACM: 470–475. arXiv:2010.01924. дои:10.1145/3387940.3391488. ISBN  9781450379632. S2CID  221911386.
  11. ^ Вингерд, Лаура (2005). Тәжірибелік күш. О'Рейли. ISBN  0-596-10185-6.
  12. ^ Григорий, Гари (3 ақпан, 2011). «Нұсқаны басқару жүйелеріндегі магистраль мен HEAD». Java, Eclipse және басқа да техникалық уағыздар. Алынған 2012-12-16.
  13. ^ Коллинз-Суссман, Фицпатрик және Пилато 2004 ж, 1.5: SVN тур циклінің шешілуі: ‘G - біріктірілген деген мағынаны білдіреді, яғни файлда жергілікті өзгерістер болуы керек, бірақ репозиторийден болатын өзгерістер жергілікті өзгерістермен сәйкес келмейді.”
  14. ^ Тұжырымдамалар жөніндегі нұсқаулық (4.7 нұсқасы). Accurev. Шілде 2008 ж.

Сыртқы сілтемелер

  • «Нұсқаларды басқаруға арналған визуалды нұсқаулық», Жақсырақ түсіндірді.
  • Синк, Эрик, «Ақпаратты басқару», SCM (қалай). Нұсқаларды басқару негіздері.