Ослободување на системот за контрола на дистрибуирани извори Git 2.26

Достапно ослободување на систем за контрола на дистрибуирани извори Гит 2.26.0. Git е еден од најпопуларните, доверливи и со високи перформанси системи за контрола на верзии, кој обезбедува флексибилни нелинеарни развојни алатки засновани на разгранување и спојување. За да се обезбеди интегритет на историјата и отпорност на ретроактивни промени, имплицитно хаширање на целата претходна историја се користи во секое извршување; исто така е можно да се сертифицираат поединечни ознаки и обврски со дигитални потписи на програмерите.

Во споредба со претходното издание, новата верзија вклучуваше 504 промени, подготвени со учество на 64 програмери, од кои 12 учествуваа во развојот за прв пат. Главните иновации:

  • Стандардно е префрлено на втората верзија Протокол за комуникација на Git, кој се користи кога клиентот од далечина се поврзува со серверот Git. Втората верзија на протоколот е забележлива по тоа што обезбедува можност за филтрирање гранки и ознаки на страната на серверот, враќајќи скратена листа на врски до клиентот. Претходно, секоја команда за повлекување секогаш му ја испраќаше на клиентот целосна листа на референци во целото складиште, дури и кога клиентот ажурираше само една гранка или проверуваше дали нивната копија од складиштето е ажурирана. Друга забележителна иновација е способноста да се додадат нови способности на протоколот кога новата функционалност станува достапна во комплетот со алатки. Кодот на клиентот останува компатибилен со стариот протокол и може да продолжи да работи и со нови и со стари сервери, автоматски паѓајќи на првата верзија доколку серверот не ја поддржува втората.
  • Опцијата „-show-scope“ е додадена на командата „git config“, што го олеснува идентификувањето на местото каде што се дефинирани одредени поставки. Git ви овозможува да ги дефинирате поставките на различни места: во складиштето (.git/info/config), во корисничкиот директориум (~/.gitconfig), во конфигурациската датотека на целиот систем (/etc/gitconfig) и преку командата опции за линија и променливи на околината. При извршување на „git config“ е доста тешко да се разбере каде точно е дефинирана саканата поставка. За да се реши овој проблем, опцијата „--show-origin“ беше достапна, но таа ја покажува само патеката до датотеката во која е дефинирана поставката, што е корисно ако имате намера да ја уредите датотеката, но не помага ако треба да ја смените вредноста преку „git config“ користејќи опции „--system“, „--global“ или „-local“. Новата опција „--show-scope“ го прикажува контекстот на дефиниција на променливата и може да се користи заедно со -show-origin:

    $ git --list --show-scope --show-origin
    глобална датотека:/home/user/.gitconfig diff.interhunkcontext=1
    глобална датотека:/home/user/.gitconfig push.default=current
    […] local file:.git/config branch.master.remote=origin
    локална датотека:.git/config branch.master.merge=refs/heads/master

    $ git config --show-scope --get-regexp 'diff.*'
    глобална разлика.statgraphwidth 35
    локална различност.обоена обична

    $ git config --global --unset diff.statgraphwidth

  • Во поставките за врзување ингеренциите Дозволено е користење на маски во URL-адреси. Сите поставки за HTTP и ингеренциите во Git може да се постават и за сите врски (http.extraHeader, credential.helper) и за врски базирани на URL (credential.https://example.com.helper, credential.https: //example. com.помошник). Досега, џокерите како *.example.com беа дозволени само за поставки за HTTP, но не беа поддржани за врзување акредитиви. Во Git 2.26, овие разлики се елиминирани и, на пример, за да се поврзе корисничко име за сите поддомени што сега можете да ги наведете:

    [акредитив „https://*.example.com“]

    корисничко име = ttaylorr

  • Проширувањето на експерименталната поддршка за делумно клонирање (делумни клонови) продолжува, овозможувајќи ви да пренесете само дел од податоците и да работите со нецелосна копија од складиштето. Новото издание додава нова команда „git sparse-checkout add“, која ви овозможува да додавате поединечни директориуми за да ја примените операцијата „checkout“ само на дел од работното стебло, наместо да ги наведувате сите такви директориуми одеднаш преку командата „git сет со редок исход“ (можете да додавате еден по еден директориум, без повторно да ја специфицирате целата листа секој пат).
    На пример, за да го клонирате складиштето git/git без да внесувате blobs, да го ограничите плаќањето само на root директориумот на работната копија и одделно да го означите исходот за директориумите „t“ и „Documentation“, можете да наведете:

    $ git клон --filter=blob:none --sparse [заштитена по е-пошта]:git/git.git

    $ cd git
    $ git sparse-checkout init --cone

    $ git редок одјавување додадете t
    ....
    $ git sparse-checkout додадете документација
    ....
    Список со редок исход од $ git
    Документација
    t

  • Изведбата на командата „git grep“, која се користи за пребарување и на тековната содржина на складиштето и на историските ревизии, е значително подобрена. За да се забрза пребарувањето, беше можно да се скенира содржината на работното дрво со користење на повеќе нишки („git grep –threads“), но пребарувањето во историските ревизии беше со еднонавој. Сега ова ограничување е отстрането со имплементирање на способноста за паралелизирање на операциите за читање од складиштето на објектот. Стандардно, бројот на нишки е поставен еднаков на бројот на јадра на процесорот, што во повеќето случаи сега не бара експлицитно поставување на опцијата „-threads“.
  • Додадена е поддршка за автоматско пополнување на внесување на подкоманди, патеки, врски и други аргументи на командата „git worktree“, што ви овозможува да работите со неколку работни копии од складиштето.
  • Додадена е поддршка за светли бои кои имаат ANSI секвенци за бегство. На пример, во поставките за означени бои „git config –color“ или „git diff –color-moved“ можете да наведете „%C(brightblue)“ преку опцијата „--format“ за светло сина боја.
  • Додадена е нова верзија на скрипта фсмонитор-чувар, обезбедувајќи интеграција со механизмот Фејсбук чувар за да се забрза следењето на промените на датотеките и појавата на нови датотеки. По ажурирањето git е потребен замени кука во складиштето.
  • Додадени се оптимизации за забрзување на делумните клонови при користење битмапи
    (битмапа машина) за да се избегне целосно пребарување на сите објекти при филтрирање на излезот. Сега е извршена проверка на дамки (—filter=blob:none и —filter=blob:limit=n) за време на делумното клонирање
    значително побрзо. GitHub најави закрпи со овие оптимизации и експериментална поддршка за делумно клонирање.

  • Командата „git rebase“ е преместена во друг заден дел, користејќи го стандардниот механизам „спој“ (претходно користен за „rebase -i“) наместо „patch+apply“. Позадините се разликуваат на некои мали начини, на пример, по продолжување на операцијата по решавање на конфликтот (git rebase --продолжи), новиот заднина нуди да ја уреди пораката за commit, додека стариот едноставно ја користел старата порака. За да се вратите на старото однесување, можете да ја користите опцијата „--apply“ или да ја поставите конфигурациската променлива „rebase.backend“ на „apply“.
  • Пример на управувач за параметри за автентикација наведени преку .netrc е сведен на форма погодна за употреба надвор од кутијата.
  • Додадена е поставката gpg.minTrustLevel за поставување на минималното ниво на доверба за различни елементи кои вршат проверка на дигитален потпис.
  • Додадена е опцијата „--pathspec-from-file“ на „git rm“ и „git stash“.
  • Подобрувањето на пакетите за тестирање продолжи како подготовка за транзиција кон алгоритам за хеширање SHA-2 наместо SHA-1.

Извор: opennet.ru

Додадете коментар