Git 2.35 աղբյուրի կառավարման թողարկում

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

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

  • Ընդլայնվել են SSH ստեղների օգտագործման հնարավորությունները Git օբյեկտները թվային ստորագրելու համար։ Մի քանի ստեղների վավերականության ժամկետը սահմանափակելու համար ավելացվել է OpenSSH դիրեկտիվների աջակցությունը «վավեր-նախքան» և «վավեր-հետո», որոնց միջոցով դուք կարող եք ապահովել ստորագրությունների հետ ճիշտ աշխատանքը այն բանից հետո, երբ բանալին պտտվել է մշակողներից մեկի կողմից: Մինչ այս խնդիր կար ստորագրությունները հին և նոր բանալիով տարանջատելու հետ. եթե ջնջեք հին բանալին, անհնար կլինի ստուգել դրանով արված ստորագրությունները, իսկ եթե թողնեք, ապա հնարավոր կլինի ստեղծել նոր ստորագրություններ հին բանալիով, որն արդեն փոխարինվել է մեկ այլ բանալիով: Օգտագործելով վավեր-նախքան և վավեր-հետո դուք կարող եք առանձնացնել ստեղների շրջանակը՝ հիմնվելով ստորագրության ստեղծման ժամանակի վրա:
  • merge.conflictStyle պարամետրում, որը թույլ է տալիս ընտրել միաձուլման ժամանակ կոնֆլիկտների մասին տեղեկատվության ցուցադրման ռեժիմը, հայտնվել է «zdiff3» ռեժիմի աջակցությունը, որը կոնֆլիկտի սկզբում կամ վերջում նշված բոլոր ստանդարտ տողերը տեղափոխում է կոնֆլիկտից դուրս: տարածք, որը թույլ է տալիս տեղեկատվության ավելի կոմպակտ ներկայացում:
  • «--staged» ռեժիմն ավելացվել է «git stash» հրամանին, որը թույլ է տալիս թաքցնել միայն ինդեքսում ավելացված փոփոխությունները, օրինակ այն իրավիճակում, երբ անհրաժեշտ է ժամանակավորապես հետաձգել որոշ բարդ փոփոխություններ, որպեսզի նախ ավելացրեք արդեն պատրաստն ու որոշ ժամանակ անց զբաղվեք մնացածով։ Ռեժիմը նման է «git commit» հրամանին, գրում է միայն ինդեքսում տեղադրված փոփոխությունները, բայց «git stash —staged»-ում նոր commit ստեղծելու փոխարեն արդյունքը պահվում է stash ժամանակավոր տարածքում։ Երբ փոփոխություններն անհրաժեշտ լինեն, դրանք կարող են հետ վերադարձվել «git stash pop» հրամանով:
  • «git log» հրամանին ավելացվել է նոր ձևաչափի ցուցիչ՝ «--format=%(describe)», որը թույլ է տալիս համատեղել «git log»-ի ելքը «git describe» հրամանի ելքի հետ։ «git describe»-ի պարամետրերը նշված են անմիջապես սպեցիֆիչի ներսում ("-format=%(describe:match= ,բացառել= )"), որտեղ կարող եք ներառել նաև կրճատված թեգեր ("-format=%(describe:tags= )") և կազմաձևեք տասնվեցական նիշերի քանակը օբյեկտները նույնականացնելու համար ("—format=%(describe:abbrev= )»): Օրինակ՝ ցուցակագրելու համար վերջին 8 commit-ները, որոնց պիտակները չունեն թողարկման թեկնածուի պիտակ, և նշելով 8 նիշերի նույնացուցիչներ, կարող եք օգտագործել հրամանը՝ $ git log -8 —format='%(describe:exclude=*-rc: *,abbrev=13 )' v2.34.1-646-gaf4e5f569bc89 v2.34.1-644-g0330edb239c24 v2.33.1-641-g15f002812f858 v2.34.1-db.643-2-95-94-056. 2.34.1-gb642bd 56bbc95f8 v7-2.34.1-gffb203f9d v2980902-2.34.1- gdf640c3adeb41 v212-2.34.1-g639b36a65715
  • User.signingKey կարգավորումն այժմ աջակցում է ստեղների նոր տեսակներին, որոնք չեն սահմանափակվում «ssh-» տիպով և նշելով ֆայլի ամբողջական ուղին դեպի բանալին: Այլընտրանքային տեսակները սահմանվում են օգտագործելով «key::» նախածանցը, օրինակ՝ «key::ecdsa-sha2-nistp256» ECDSA ստեղների համար:
  • Զգալիորեն ավելացել է «—հիստոգրամ» ռեժիմում փոփոխությունների ցանկի ստեղծման արագությունը, ինչպես նաև «—color-moved-ws» տարբերակն օգտագործելիս, որը վերահսկում է գունային տարբերության մեջ բացատների ընդգծումը։
  • «git jump» հրամանը, որն օգտագործվում է Vim-ին տեղեկատվություն տրամադրելու ճշգրիտ ցատկման մասին ֆայլում ցանկալի դիրքի մասին, երբ վերլուծում է միաձուլման կոնֆլիկտները, դիտում է տարբերությունները կամ կատարում որոնման գործողություն, հնարավորություն է տալիս կրճատել ծածկված միաձուլման կոնֆլիկտները: Օրինակ՝ գործողությունները միայն «foo» գրացուցակով սահմանափակելու համար կարող եք նշել «git jump merge - foo», իսկ «Documentation» գրացուցակը մշակումից բացառելու համար՝ «git jump merge - ':^Documentation'»:
  • Աշխատանքներ են տարվել օբյեկտների չափը ներկայացնող արժեքների փոխարեն «size_t» տիպի օգտագործումը «չստորագրված երկար»-ի փոխարեն ստանդարտացնելու ուղղությամբ, ինչը հնարավորություն է տվել օգտագործել «մաքուր» և «մաքուր» զտիչներ 4 ԳԲ-ից մեծ ֆայլերով։ բոլոր հարթակներում, ներառյալ LLP64 տվյալների մոդելով հարթակներում, «չստորագրված երկար» տիպը, որտեղ սահմանափակված է 4 բայթով:
  • «-empty=(stop|drop|keep)» տարբերակը ավելացվել է «git am» հրամանին, որը թույլ է տալիս ընտրել վարքագիծը դատարկ հաղորդագրությունների համար, որոնք չեն պարունակում patches փոստարկղից կարկատանները վերլուծելիս: «Stop» արժեքը կդադարեցնի կարկատման ամբողջ գործողությունը, «drop»-ը բաց կթողնի դատարկ կարկատումը, իսկ «keep»-ը կստեղծի դատարկ commit:
  • «git reset», «git diff», «git blame», «git fetch», «git pull» և «git ls-files» հրամաններին ավելացվել է մասնակի ինդեքսների աջակցություն (sparse index)՝ կատարողականությունը բարելավելու և տարածք խնայելու համար: պահոցներ, որոնցում կատարվում են մասնակի կլոնավորման գործողություններ (սփռս-չեկում):
  • «git sparse-checkout init» հրամանը հնացել է և պետք է փոխարինվի «git sparse-checkout set»-ով։
  • Ավելացվեց նոր «reftable» backend-ի նախնական ներդրում՝ պահեստում տեղեկանքները պահելու համար, ինչպիսիք են ճյուղերն ու պիտակները: Նոր հետնամասն օգտագործում է JGit նախագծի կողմից օգտագործվող բլոկային պահեստը և օպտիմիզացված է շատ մեծ թվով հղումներ պահելու համար: Backend-ը դեռ ինտեգրված չէ refs համակարգի հետ և պատրաստ չէ գործնական օգտագործման համար:
  • «git grep» հրամանի գունային գունապնակը ճշգրտվել է GNU grep ծրագրին համապատասխանելու համար:

Source: opennet.ru

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