Բաշխված աղբյուրի կառավարման համակարգի թողարկում Git 2.26

Հասանելի է բաշխված աղբյուրի կառավարման համակարգի թողարկում Git 2.26.0- ը. Git-ը տարբերակների կառավարման ամենահայտնի, հուսալի և բարձր կատարողական համակարգերից մեկն է, որն ապահովում է ճկուն ոչ գծային զարգացման գործիքներ՝ հիմնված ճյուղավորման և միաձուլման վրա: Պատմության ամբողջականությունն ապահովելու և հետադարձ փոփոխությունների դիմադրությունը ապահովելու համար յուրաքանչյուր կոմիտում օգտագործվում է ամբողջ նախորդ պատմության անուղղակի հաշինգը, հնարավոր է նաև ծրագրավորողների թվային ստորագրություններով հաստատել անհատական ​​պիտակներ և պարտավորություններ:

Նախորդ թողարկման համեմատ՝ նոր տարբերակը ներառում էր 504 փոփոխություն՝ պատրաստված 64 ծրագրավորողների մասնակցությամբ, որոնցից 12-ն առաջին անգամ մասնակցեցին մշակմանը։ Հիմնական նորամուծություններ:

  • Նախնականը փոխվել է երկրորդ տարբերակը Git կապի արձանագրություն, որն օգտագործվում է, երբ հաճախորդը հեռակա միանում է Git սերվերին: Արձանագրության երկրորդ տարբերակը հատկանշական է սերվերի կողմից ճյուղերը և պիտակները զտելու հնարավորությամբ՝ հաճախորդին հղումների կրճատված ցանկը վերադարձնելով: Նախկինում ցանկացած pull հրաման միշտ հաճախորդին ուղարկում էր ամբողջ պահեստի հղումների ամբողջական ցանկը, նույնիսկ երբ հաճախորդը թարմացնում էր միայն մեկ մասնաճյուղ կամ ստուգում, որ պահեստի իր պատճենը թարմացված է: Մեկ այլ ուշագրավ նորամուծություն արձանագրությանը նոր հնարավորություններ ավելացնելու հնարավորությունն է, քանի որ նոր ֆունկցիոնալությունը հասանելի է դառնում գործիքակազմում: Հաճախորդի կոդը մնում է համատեղելի հին արձանագրության հետ և կարող է շարունակել աշխատել ինչպես նոր, այնպես էլ հին սերվերների հետ՝ ավտոմատ կերպով վերադառնալով առաջին տարբերակին, եթե սերվերը չի աջակցում երկրորդին:
  • «-show-scope» տարբերակը ավելացվել է «git config» հրամանին, ինչը հեշտացնում է այն վայրը, որտեղ որոշ կարգավորումներ են սահմանված: Git-ը թույլ է տալիս սահմանել կարգավորումները տարբեր վայրերում՝ պահեստում (.git/info/config), օգտագործողի գրացուցակում (~/.gitconfig), ամբողջ համակարգի կազմաձևման ֆայլում (/etc/gitconfig) և հրամանի միջոցով։ տողերի ընտրանքներ և շրջակա միջավայրի փոփոխականներ: «git config»-ը կատարելիս բավականին դժվար է հասկանալ, թե կոնկրետ որտեղ է սահմանված ցանկալի պարամետրը: Այս խնդիրը լուծելու համար հասանելի էր «--ցուցադրել-ծագումը» տարբերակը, բայց այն ցույց է տալիս միայն այն ֆայլի ուղին, որում սահմանված է կարգավորումը, ինչը օգտակար է, եթե դուք մտադիր եք խմբագրել ֆայլը, բայց չի օգնում, եթե դուք անհրաժեշտ է փոխել արժեքը «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.*'
    գլոբալ diff.statgraphwidth 35
    տեղական տարբերություն.գունափոխված հարթավայր

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

  • Պարտադիր պարամետրերում հավատարմագրերը URL-ներում դիմակների օգտագործումը թույլատրվում է: Git-ում HTTP-ի ցանկացած կարգավորում և հավատարմագրեր կարող են սահմանվել ինչպես բոլոր կապերի համար (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» հրամանի միջոցով միանգամից թվարկելու փոխարեն: sparse-checkout set» (կարող եք մեկ առ մեկ ավելացնել գրացուցակը, առանց ամեն անգամ ամբողջ ցուցակը կրկին նշելու):
    Օրինակ՝ git/git պահոցը կլոնավորելու համար՝ առանց բլբեր կատարելու, վճարումը սահմանափակելով միայն աշխատանքային օրինակի արմատական ​​գրացուցակով և առանձին նշելով «t» և «Documentation» գրացուցակները, կարող եք նշել.

    $ git clone --filter=blob:none --sparse [էլեկտրոնային փոստով պաշտպանված]:git/git.git

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

    $ git sparse-checkout ավելացնել 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» տարբերակի միջոցով:
  • Ավելացվեց սցենարի նոր տարբերակը fsmonitor-watchman, մեխանիզմի հետ ինտեգրում ապահովելով Ֆեյսբուքի պահակ արագացնել ֆայլերի փոփոխությունների հետևումը և նոր ֆայլերի տեսքը: Թարմացնելուց հետո git-ը պահանջվում է փոխարինելու համար որսալ պահոցում:
  • Ավելացվել են օպտիմիզացումներ՝ մասնակի կլոնները արագացնելու համար, երբ օգտագործում եք բիթքարտեզներ
    (bitmap machinery)՝ ելքը զտելիս բոլոր օբյեկտների ամբողջական որոնումից խուսափելու համար: Մասնակի կլոնավորման ժամանակ բլբերների (—filter=blob:none and —filter=blob:limit=n) ստուգումն այժմ կատարվում է։
    զգալիորեն ավելի արագ: GitHub-ը հայտարարեց այս օպտիմիզացիաներով patches և մասնակի կլոնավորման փորձարարական աջակցությամբ:

  • «git rebase» հրամանը տեղափոխվել է մեկ այլ հետին պլան՝ օգտագործելով լռելյայն «միաձուլման» մեխանիզմը (նախկինում օգտագործվում էր «rebase -i»-ի համար)՝ «patch+apply»-ի փոխարեն: Հետին պլանները տարբերվում են որոշ փոքր առումներով, օրինակ՝ կոնֆլիկտը լուծելուց հետո գործողությունը շարունակելուց հետո (git rebase --շարունակել), նոր հետին պլանն առաջարկում է խմբագրել commit հաղորդագրությունը, մինչդեռ հինը պարզապես օգտագործում էր հին հաղորդագրությունը։ Հին վարքագծին վերադառնալու համար կարող եք օգտագործել «--կիրառել» տարբերակը կամ սահմանել «rebase.backend» կազմաձևման փոփոխականը՝ «կիրառել»:
  • .netrc-ի միջոցով նշված նույնականացման պարամետրերի կարգավորիչի օրինակը վերածվել է տուփից դուրս օգտագործման համար հարմար ձևի:
  • Ավելացվեց gpg.minTrustLevel կարգավորումը՝ թվային ստորագրության ստուգում իրականացնող տարբեր տարրերի համար վստահության նվազագույն մակարդակը սահմանելու համար:
  • Ավելացվեց «--pathspec-from-file» տարբերակը «git rm»-ին և «git stash»-ին:
  • Թեստային փաթեթների կատարելագործումը շարունակվեց SHA-2-ի փոխարեն SHA-1 հեշինգի ալգորիթմին անցնելու նախապատրաստման համար:

Source: opennet.ru

Добавить комментарий