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

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

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

  • Ішінара клондау мүмкіндігі тұрақтандыруға және толық дайындыққа жақындады, бұл деректердің бір бөлігін ғана беруге және репозиторийдің толық емес көшірмесімен жұмыс істеуге мүмкіндік береді. Әдеттегі клон репозиторийдегі барлық деректерді, соның ішінде өзгертулер тарихындағы әрбір файлдың әрбір нұсқасын көшіреді. Өте үлкен репозиторийлер үшін деректерді көшіру трафик пен дискілік кеңістіктің айтарлықтай ұлғаюына әкеледі, тіпті әзірлеуші ​​тек файлдардың ішкі жиынына қызығушылық танытса да. Жұмыс көзі тармағының бір бөлігін ғана шығарып алуды жеңілдету үшін жаңа шығарылым эксперименттік «сирек тексеру» пәрменін және «клондау» пәрмені үшін жаңа «--sparse» опциясын ұсынады.

    Бұрын селективті клондау процесі тапсырма арқылы орындалатын сүзгілер қажетсіз мазмұнды сүзу және жетіспейтін файлдарды толтыруды өшіру үшін «—жоқ-тексеру» опциясын таңдаңыз. Осыдан кейін, тексеру әрекетін орындамас бұрын, core.sparseCheckout параметрін қосу және .git/info/sparse-checkout файлында алынып тасталған жол үлгілерінің тізімін анықтау қажет болды. Мысалы, блоктарсыз клондау және 2 немесе одан да көп тереңдіктегі ішкі каталогтардан файлдарды шығаруды болдырмау үшін келесіні іске қосуға болады:

    git clone --filter=blob: none --no-checkout /сіздің/репозиторийіңіз/мұнда репо
    $cd репо
    $ cat >.git/info/sparse-checkout <EOF
    /*
    !/*
    EOF
    $git config core.sparseCheckout 1
    $git тексеру.

    Жаңа «git sparse-checkout» пәрмені жұмысты айтарлықтай жеңілдетеді және аяқталмаған репозиториймен жұмысты ұйымдастыру процесін келесі пәрмендерге дейін қысқартады:

    git clone --filter=blob: none --sparse /сіздің/репозиторийіңіз/мұнда репо
    git sparse-checkout set /path/to/check/out

    Sparse-checkout пәрмені .git/info/sparse-checkout қолданбасын қолмен конфигурацияламай-ақ есеп айырысу (орнату) үшін жолдардың тізімін орнатуға, сонымен қатар жолдардың ағымдағы тізімін (тізім) көрсетуге және ішінара тексерулерді қосуға немесе өшіруге (қосуға) мүмкіндік береді. /өшіру).

    Өте үлкен репозиторийлермен және үлгілер тізімдерімен жұмысты оңтайландыру үшін «git config core.sparseCheckoutCone", ол рұқсат етілген үлгілерді шектейді (еркін .gitignore үлгілерінің орнына, берілген ішкі каталогтағы барлық жолдар мен барлық файлдар тексерілу қажеттігін көрсетуге болады). Мысалы, егер үлкен репозиторийде «A/B/C» каталогы болса және барлық жұмыс «С» ішкі каталогында шоғырланған болса, онда sparseCheckoutCone режимін қосқанда, «git sparse-checkout set A/B/ командасы орындалады. C» «C» барлық мазмұнын шығарады, бірақ «A» және «B» сөздерінен тек «C» жұмыс істеуге қажетті бөліктерді шығарады.

  • Құжаттамадан («git rebase -h») «--preserve-merges» опциясына барлық сілтемелер жойылды, ол ескірген және оның орнына тапсырмалар жинағын тасымалдау үшін пайдаланылуы керек.git rebase --rebase-біріктіреді«.
  • Тарату тізімдеріне жіберілген патчтары бар хабарламалардың оқылуын жақсарту үшін «git format-patch — cover-from-ofrom-picture» опциясы қосылды, көрсетілген кезде салалық сипаттама мәтінінің бірінші абзацы тақырып ретінде пайдаланылады. патчтар жинағына арналған мұқаба хат.
  • «git apply -3way» пәрменін және «merge.conflictStyle» параметрін («git app» енді әрекеттен кейін қақтығысты шешу қажет болғанда merge.conflictStyle сайтындағы қайшылықты сипаттау мәнерін ескереді) біріктірілген қолдауды жүзеге асыру. репозиторийге патч файлын қолдану үшін).
  • "git diff/grep --show-function/-function-context" сияқты операцияларда қолданылатын функцияны анықтау коды тіл бағдарламаларында функция шекараларын анықтауды қолдау үшін кеңейтілді. Эликсир.
  • «git add», «git commit», «git reset» және басқа пәрмендерге жаңа опция қосылды - «-pathspec-from-file», бұл файлдан немесе кіріс ағынынан жолдар тізімін жүктеуге мүмкіндік береді. , оларды пәрмен жолында тізімдеудің орнына.
  • Тапсырмаларды жазу кезінде каталог деңгейінде атауларды анықтау мәселесі шешілді. Ішкі каталогтың мазмұны репозиторийдің түбіріне жылжытылған болса, анықтама жұмыс істемеді.
  • Перлден C тіліне қайта жазылған өзгертілген мазмұнды интерактивті түрде қосуға мүмкіндік беретін қайта жобаланған «git add -i» пәрменінің бастапқы іске асырылуы ұсынылды. «git add -p» командасының ұқсас қайта жұмысы жүріп жатыр.
  • Репозиторийдегі өзгерістер тарихы бар графиктің ASCII кескінін жасайтын «git log –graph» пәрмені рефакторланды. Қайта өңдеу оқиғаның құрылымын бұрмаламай шығуды айтарлықтай жақсартуға және жеңілдетуге мүмкіндік берді, бұл, мысалы, терминал сызығының енінен тыс суретке қатысты мәселені шешті.
  • «git log --format=..» опциясы шығыс пішімін өзгертуге мүмкіндік береді,
    «@» таңбасының алдында көрсетілген электрондық пошта мекенжайының бір бөлігін ғана көрсету үшін «l/L» жалаушаларын қолдау арқылы кеңейтілген (мысалы, барлық әзірлеушілерде бір доменде барлық электрондық пошталар болғанда пайдалы).

  • «git submodule» пәрменіне «set-url» ішкі пәрмені қосылды.
  • Өтуге дайындық барысында тест жинақтары жаңартылды
    SHA-2 орнына SHA-1 хэштеу алгоритмі.

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

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