Git 2.22 таратылған көзді басқару жүйесінің шығарылымы

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

Алдыңғы шығарылыммен салыстырғанда 745 әзірлеушінің қатысуымен дайындалған жаңа нұсқаға 74 өзгерту енгізілді, оның 18-і әзірлеуге алғаш рет қатысты. басты инновациялар:

  • 1.18 шығарылымынан бастап қол жетімді, жаңа міндеттеме жинағы тасымалдау режимі "git rebase --rebase-merges" ескі "--preserve-merges" опциясын ауыстырды, қазір ол ескірген. «git rebase» операциясы бірқатар міндеттемелерді жаңа базалық міндеттемемен ауыстыру үшін пайдаланылады, мысалы, кейбір жаңа мүмкіндіктерді дамытатын жалғыз тармақты тармақтан кейін қосылған түзетулерді қамтитын негізгі тармақтың ағымдағы күйіне жылжыту үшін:

    o - o - o (менің мүмкіндігім)

    /

    о - о - о - о - о (шебер)

    o - o - o (менің мүмкіндігім)

    /

    о - о - о - о - о (шебер)

    Тасымалданған тармақта тармақ құрылымын сақтау үшін интерактивті режимде іске қосылғанда (git rebase -i --preserve-merges ) орындалатын тарихты өңдеуге мүмкіндік беретін «--preserve-merges» опциясы бұрын пайдаланылуы мүмкін, бірақ репозиторий құрылымының толық сақталуына кепілдік бермеді. Ауыстыру "--rebase-merges" режимі көшірілген тармақтағы өзгерістер құрылымын сақтауға мүмкіндік береді, сонымен бірге интерактивті операциялардың толық жинағын, соның ішінде жою, қайта топтау және атын өзгерту тапсырмаларын қамтамасыз етеді.

    Мысалы, "--rebase-merges" ол мүмкіндік береді тармақ құрылымын тасымалданған тармақта сақтай отырып, міндеттемелерді бөлек тармақтан жаңа негізгі тармаққа қайта итеріңіз және барған сайын тапсырма жазбаларына кейбір өзгерістер енгізіңіз.

  • «git филиалы new A…B» және «git checkout -b new A…B» көмегімен басқа екі тармақтың біріктіру негізін (біріктіру негізі, ортақ атаға байланыстыру) анықтау нәтижесіне негізделген жаңа филиалды құруға қолдау қосылды. ” конструкциялары, онда “A ...B” көрсетілген екі тапсырма арасындағы біріктіру негізін анықтауды білдіреді, “git checkout A...B” HEAD мәнін негізгі тапсырмаға және “diff A...B” қалай ауыстырады «В» тапсырмасы мен «А» тапсырмасымен ортақ арасындағы өзгерістерді көрсетеді. » ата-бабасы.

    Мысалы, жеке менің мүмкіндігім тармағында жұмыс істегенде, ұсынылған мүмкіндікті басқа тармақтан, мысалы, менің мүмкіндігім тармағы тексерілген негізгі тармақтағы бір жерден бастағыңыз келгенде пайдалануға болады. Бұрын бұл өзгеріс журналын қолмен тексеруді талап етті, ол үлкен өзгерістер тарихы болған кезде қолайсыз болды, содан кейін негізгі және менің-функция тармақтары арасындағы біріктіру базасының хэшін есептеу үшін «git merge-base master my-feature» әрекетін орындау және ортақ ата-бабаға қатысты жаңа тармақ құру" git филиалы менің-басқа-ерекшелік хэш". Git 2.22 нұсқасында басқа екі тармақтың біріктіру негізіне қатысты тармақ жасау үшін "git branch my-other-feature A…B" синтаксисін пайдалануға болады;

  • Есептеу операциясынан алынған филиал атауын көрсету үшін «git branch --show-current» опциясы қосылды;
  • «git checkout --no-overlay -- dir» опциясы қосылды, ол тексеру операциясын орындау кезінде dir каталогының мазмұнын негізгі тармақтың күйіне толық сәйкес келетін пішінге келтіруге мүмкіндік береді. Мысалы, егер dir каталогының жергілікті көшірмесінде негізгі тармақта жоқ файл болса, онда әдепкі бойынша «git checkout master - dir» орындалғанда ол қалдырылады, ал «--no-overlay» болғанда. " опциясы көрсетілген, ол жойылады;
  • "git diff" пәрмені опцияны өңдеуді басқа git утилиталарымен біріктіру үшін жалпы опцияны талдау API пайдаланады. Мысалы, "git diff" ішінде барлық опциялардың енді олардың антагонистері қолжетімді («--function-context» және «--no-function-context»);
  • Тапсырмаларға бекітілген «git log» кеңейтілген тегтерін шығару кезінде сүзгілеу мүмкіндігі қосылды («трейлер» - қол қойған-шығару және авторластырушы сияқты қосымша ақпараттық жалаулар). Белгілерді кілт бойынша да, мән бойынша да сүзуге болады, мысалы:
    "git log --pretty="%(трейлерлер:кілт=тексерген,тек қана құнды)";

  • Жаңа бақылау қозғалтқышы, Trace2 қосылды, ол икемді және құрылымдық шығыс пішімін ұсынады. Trace2 егжей-тегжейлі талдау және жөндеу үшін орындалған операциялар мен өнімділік деректері туралы телеметрияны жинауға мүмкіндік береді (өңдеу құралын пайдаланушы тағайындайды, ешқандай деректер сыртқа жіберілмейді);
  • «git bisect» есебін оқуға ыңғайлы етіп жасады, ол енді проблемалық міндеттемелерді айқынырақ көрсетеді және әрбір файл үшін өзгерістердің жиынтық статистикасын көрсетеді (өзгертілген жолдар саны деңгейінде);
  • Каталогтардың атауларын анықтауға арналған эвристика атауды өзгерту жалаушаларының қате орнатылуын болдырмау үшін қайта өңделген. Күмән болған кезде, мұндай каталогтар енді қайшылықты деп белгіленеді;
  • Тегті басқа тегке орнату әрекеті кезінде ескерту беріледі, ол әдетте қате орындалады және тегті қате тапсырмаға орнатуға әкелуі мүмкін (мысалы, "git tag -f -m" сияқты құрылым "my-tag1 my-tag2" жаңартылған хабарламасы ескі тегте тегтің жасалуына әкеледі, ал әзірлеуші ​​жаңа тегтің ескі тегпен көрсетілген міндеттемеге орнатылуын күткен);
  • Жасау растрлық репозиторийлер үшін қосылған (диск құрылымы «қолжетімділік нүктелік кескіндері»), олар әрбір орындау үшін қолжетімді нысандар жиыны туралы деректерді сақтайды және негізгі нысанның болуын жылдам анықтауға мүмкіндік береді. Көрсетілген құрылым деректерді шығару операцияларының орындалу уақытын айтарлықтай қысқартады (git fetch).

Ақпарат көзі: opennet.ru

пікір қалдыру