Git 2.48 արձանագրության կառավարման համակարգի թողարկում

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

Նախորդ թողարկմամբ համեմատ նոր տարբերակում ընդունվել է 605 փոփոխություն, որոնք պատրաստվել են 93 մշակողների մասնակցությամբ, որոնցից 35-ը առաջին անգամ մասնակցում են մշակմանը: Հիմնական նորություններին են վերաբերում:

  • Կիրառվել են կառուցման հնարավորություն, երբ օգտագործվում է Meson կառուցման համակարգը, ինչպես նաև GNU Make և CMake: Git-ի կառուցման համար այժմ կարելի է օգտագործել «meson setup build && ninja -C build» հրամանը: Նշվում է, որ GNU Make-ի միջոցով օգտագործվող Makefile-ը երկարացրել է մինչև 3887 տող և այնքան պարզ չէ, որքան ցանկալի կլիներ: Meson գործիքակազմը հեշտացնում է կառուցման համակարգով աշխատելը, հարմար է բազմաֆորմատային կառուցումների համար և դարձնում կառուցումը ավելի հասանելի սկսնակների կամ մշակողների համար, ովքեր չունեն Make-utilita-ի հետ աշխատելու փորձ: Make-ի և CMake-ի աջակցումը կդադարեցվի ապագայում նախատեսված չէ.
  • Ավելացված են կառուցման տարբերակներ, որոնք թույլ են տալիս օգտագործել այլևս SHA-1 հեշի իրականացման տարբերակներ՝ ցուցադրելու համար տվյալների բլոկների ամբողջականության ստուգման նպատակով օգտագործվող հսկիչ թվերը pack-ֆայլերում: Հսկիչ թվերի հաշվարկման արդյունավետությունը շատ կարևոր է, օրինակ, Linux-ի միջուկի հետ ռեպոզիտորիքում նրանց բեռնման համար ծախսվում է մոտ 78% պրոցեսորի ժամանակ: Օգտագործվող իրականացման պարունակությունը ներառում է լրացուցիչ բախումների ստուգումներ և SHA-1-ի վրա հարձակման պաշտպանություն, ինչպիսիք են SHAttered և Shambles: Այլ պաշտպանությունն, որը պահանջում է լրացուցիչ ռեսուրսներ, իմաստ ունի միայն SHA-1-ի օգտագործման ժամանակ կրիպտոգրաֆիական նպատակներով և անընդմեջ է ինդեքսային տվյալների ամբողջականությունը ստուգելու համար.

    Git-ի կառուցման համար ավելի արագ SHA-1 իրականացման տարբերակներ են առաջարկվել, որոնք չեն համապատասխանել կրիպտոսистемներին, *_UNSAFE տարբերակներ, օրինակ՝ «OPENSSL_SHA1_UNSAFE»: GitHub-ում պարզեցված SHA-1-ի կառուցումը թույլ է տվել 10-13%-ով բարձրացնել տվյալների փրկության և գաղտնիքի նպատակով գործողությունների կատարողականությունը.

  • Հավելվել է «range-diff» հրամանի օգտագործման հնարավորություն `—remerge-diff` պարամետրը, որը հնարավորություն է տալիս ցուցադրել տարբերությունները միասնական միաձուլման արդյունքի և իրական տվյալների միջև, որոնք արտացոլված են կոմիտեում `merge` հրամանի մշակման հետո: `—remerge-diff` պարամետրը օգտագործելիս բախման լուծման տարբերությունների միջև չի կատարվում առանձնացում յուրաքանչյուր ծնողական ուղղության համար, այլ ցուցադրվում են ընդհանուր տարբերությունները կետի միջև, որն ունի միաձուլման բախումներ, և ֆայլի միջև, որտեղ բախումները լուծվել են: «range-diff» հրամանի համատեքստում նոր պարամետրը կարող է օգտակար լինել դրամահավաքների խմբերի համեմատության համար `rebase` հրամանի օգտագործմամբ `—rebase-merges` պարամետրով:
  • Հավելվել է Git-ի փորձարկումների խմբերի օգտագործման հնարավորություն, այնպես էլ հիշողության արտահոսքի հայտնաբերման ռեժիմով: Քանի որ git-ը տրամադրում է այն գործիքները, որոնք ավարտում են աշխատանքը կատարվող ֆունկցիայի կատարման ավարտից հետո, հիշողության արտահոսքների հարցն նախկինում եթե նույնիսկ չէր դիտվում որպես մեծ խնդիր: Հիշողության արտահոսքների ամբողջական վերացման անհրաժեշտությունը դարձավ շոշափելի այն բանից հետո, երբ սկսեցին աշխատանքներ ներքին գործառույթները բացարձակապես բաց և առանձին գրադարանից դուրս տեղափոխելու նկատմամբ, որը կարող է կիրառվել երկար ժամանակ աշխատող գործընթացներում:
  • Սկսվել է վաղանցիկ ռեժիմների և հնարավորությունների ցուցակի ձևավորման գործընթաց, որոնց աջակցումը ծրագրագրվում է դադարեցնելու ապագայում: Կարծիք է ձևավորվում, որ վաղանցիկ ֆունկցիաների հեռացումը տեղի կունենա Git 3.0 թարմացումում, որի մեջ կլինեն փոփոխություններ, որոնք խախտում են հետադարձ համատեղելիությունը:
  • Ընդգրկվել է «git for-each-ref» հրամանի աշխատանքը՝ ցուցակելով բեռներ՝ հետազոտման և ցուցադրման համար: Օպտիմացումը, որ համադրում է հիմանականացված ֆիլտրման և ցուցադրման ձևաչափման մշակումները, այժմ կիրառվում է ոչ միայն անսортավորված ցուցադրման համար, այլ նաև `—sort` պարամետի նշմամբ:
  • Ելակետ «reftable» բեքենդի իրականացումն բարելավվել է բլոկային պահեստով, որը արդյունավետ որոշում է պահպանել իռպորտի մեջ ճյուղերի և նշանների վրա։ Reftable-ը զգալիորեն պաշտպանում է որոնումները, ընթերցումները և գրառումները շատ մեծ քանակությամբ բեռների դեպքում: Նոր տարբերակում դադարեցվել է զգալի API-ի որոշակի դիմումները, որպեսզի libgit-ը բացառվի կառուցման կախմաններից: Եղել է կոշտ անմպախշտային սխալների մշակման իրականացում (հիշողության պակասը արդեն չի հանգեցնում ցատկային ավարտումների): Բեռների ստեղծման գործողությունները արագացվել են, ինչպես նաև նվազեցվել է հիշողության սպառումը.
  • Մասնական կրկնահանումների իրականացման մեջ լուծվել են հարցերը, որոնք առաջացնում էին ցիկլավորում և վերաբեռնվածության վնասելուն `git gc` հրամանի գործադրման ընթացքում։
  • «git fetch » հրամանը կատարելու դեպքում, եթե տեղական համակարգում «refs/remotes//HEAD» բացակայում է, սակայն մյուս կողմից կա այն ճյուղը, որն ուղղված է HEAD-ին, «refs/remotes//HEAD» այժմ ուղղորդվում է այդ ճյուղի վրա: «refs/remotes//HEAD» հեռակա միացման մյուս կողմի HEAD-ի արժեքի համաժամացնելու համար ավելացվել է remote..followRemoteHEAD» կարգավորումը:
  • Ավելացված է «remote..serverOption» կարգավորումը, որը համապատասխանում է հրամանային տողի «—serverOption=» տարբերակին:
  • «git rebase —rebase-merges» հրամանում հնարավորության դեպքում ապահովվել են ճյուղերի անունների օգտագործումը որպես նշաններ:
  • ‘git notes add’ և ‘git notes append’ հրամաններին հավելվել է ‘-e’ նշանը, որը բացում է նշումը արտաքին տեքստային խմբագրիչում, որը նշված է GIT_EDITOR միջավայրային փոփոխականի միջոցով:
  • Enhancing compatibility with GCC 15 and C23 standard.
  • Հին libcURL և Perl վարկածների աջակցությունը դադարեցվել է:

Ընտանիք: opennet.ru

Գնել հուսալի հյուրընկալում DDoS պաշտպանությամբ, VPS VDS սերվերներով 🔥 Գնել հուսալի հյուրընկալում DDoS պաշտպանությամբ, VPS VDS սերվերներով | ProHoster