Բաշխված աղբյուրի կառավարման համակարգի թողարկում 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
Պարտադիր պարամետրերում հավատարմագրերը 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 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 հեշինգի ալգորիթմին անցնելու նախապատրաստման համար: