Варақаи Git 2.39 идоракунии манбаъ

Пас аз ду моҳи таҳия, системаи идоракунии сарчашмаҳои тақсимшудаи Git 2.39 бароварда шуд. Git яке аз маъмултарин, боэътимод ва сермахсули системаҳои идоракунии версия мебошад, ки асбобҳои тағйирпазири рушди ғайрихаттӣ дар асоси шохаҳо ва муттаҳидшавиро таъмин мекунад. Барои таъмини якпорчагии таърих ва муқовимат ба тағиротҳои ретроактивӣ, дар ҳар як супоридани ҳашингии ғайримустақими тамоми таърихи қаблӣ истифода мешавад; инчунин мумкин аст, ки тегҳо ва ӯҳдадориҳои инфиродӣ бо имзои рақамии таҳиягарон тасдиқ карда шаванд.

Дар муқоиса бо нашри қаблӣ, версияи нав 483 тағиротро дар бар мегирад, ки бо иштироки 86 таҳиягар омода карда шудааст, ки 31 нафари онҳо бори аввал дар таҳия ширкат кардаанд. Навовариҳои асосӣ:

  • Фармони "git shortlog", ки барои намоиши хулосаҳо бо омори таърихи тағирот пешбинӣ шудааст, имкони "-group" -ро барои гурӯҳбандии худсаронаи супоришҳо аз рӯи майдонҳо, ки бо муаллиф ё фиристанда маҳдуд намешавад, илова кардааст. Масалан, барои намоиш додани рӯйхати таҳиягарон бо маълумот дар бораи шумораи тағирот, бо дарназардошти ёварҳои дар майдони "Ҳаммуаллифи" зикршуда, шумо метавонед фармонро истифода баред: git shortlog -ns --group=author - -гурӯҳ = трейлер: ҳаммуаллиф

    Натиҷаи кӯтоҳро бо истифода аз мушаххасоти форматкунӣ ҷамъ кардан мумкин аст ва опсияи "--group" метавонад эҷоди ҳисоботҳои мураккабро ба таври назаррас содда кунад ва ниёз ба фармонҳои иловагии ҷудокуниро аз байн барад. Масалан, барои эҷод кардани гузориш бо маълумот дар бораи чанд ӯҳдадориҳо барои нашри додашуда дар ҳар моҳ, шумо метавонед муайян кунед: git shortlog v2.38.0.. —date='format:%Y-%m' —group=' %cd' -s 2 2022-08 47 2022-09 405 2022-10 194 2022-11 5 2022-12 Пештар барои иҷрои амалиёти шабеҳ истифода бурдани утилитаҳои sorrt ва uniq лозим буд: git log v2.38.0. .. —date='format:%Y -%m' —format='%cd' | навъ | uniq -c

  • Имкониятҳои механизми "бастаҳои круфт", ки барои бастабандии объектҳои дастнорас тарҳрезӣ шудаанд, ки дар анбор истинод карда нашудаанд (бо шохаҳо ё тегҳо истинод карда намешаванд) васеъ карда шуданд. Объектҳои дастнорас аз ҷониби коллектори ахлот нест карда мешаванд, аммо пеш аз нест кардани онҳо барои пешгирӣ кардани шароити мусобиқа дар репозиторий муддати муайян мемонанд. Механизми "бастаҳои cruft" ба шумо имкон медиҳад, ки ҳама объектҳои дастнорасро дар як файли баста нигоҳ доред ва маълумотро дар бораи вақти тағир додани ҳар як объект дар ҷадвали алоҳида, ки дар файли алоҳида бо тамдиди ".mtimes" нигоҳ дошта мешаванд, нишон диҳед, то онҳо бо вақти умумии тағирот мувофиқат намекунад.

    Давомнокии вақте, ки объектҳои дастнорас дар репозитория боқӣ мемонанд, то он ки воқеан нест карда шаванд, бо опсияи “—prune=” муайян карда мешавад. " Бо вуҷуди ин, дар ҳоле ки таъхир пеш аз нест кардан як роҳи хеле муассир ва амалии пешгирии фасоди репозиторий бо сабаби шароити нажод аст, он 100% боэътимод нест. Барои осон кардани барқарор кардани анбори вайроншуда, версияи нав имкон медиҳад, ки объектҳои гумшударо тавассути илова кардани опсияи "--expire-to" ба фармони "git repack" захира кунед, ки ба шумо имкон медиҳад файлро барои эҷоди файли беруна муайян кунед. нусхаи ҳамаи объектҳои ҳазфшуда. Масалан, барои захира кардани объектҳои дастнорас, ки дар 5 дақиқаи охир дар файли backup.git тағир наёфтаанд, шумо метавонед фармонро истифода баред: git repack --cruft --cruft-expiration=5.minutes.ago -d --expire -to=../backup.git

  • Суръати амалиёти "git grep -cached" ба таври назаррас афзоиш ёфт (то 70%) ҳангоми ҷустуҷӯ дар минтақаҳое, ки қисман клонкуниро истифода мебаранд (спарсе-checkout) ва барои онҳо индексҳои қисман мавҷуд аст (indexs parse). Пештар, ҳангоми муайян кардани варианти "-cached", ҷустуҷӯ аввал дар индекси муқаррарӣ ва сипас қисман анҷом дода мешуд, ки боиси таъхирҳои назаррас ҳангоми ҷустуҷӯ дар анборҳои калон мешуд.
  • Санҷиши сервер дар бораи ҳамоҳангии объектҳои нав пеш аз ҷойгир кардани онҳо дар репозиторий ҳангоми амалиёти "git push" суръат гирифт. Бо гузаштан ба баҳисобгирии танҳо истинодҳои эълоншуда ҳангоми санҷиш, дар анбори санҷишӣ бо 7 миллион истинод, ки танҳо 3% бо амалиёти push фаро гирифта шудаанд, оптимизатсияҳои ҷорӣ имкон доданд, ки вақти санҷиш 4.5 маротиба кам карда шавад.
  • Барои муҳофизат аз фаромадани эҳтимолии бутун дар код, фармони "git application" андозаи максималии часпакҳоро, ки коркард мешаванд, маҳдуд мекунад. Агар андозаи часпак аз 1 ГБ зиёд бошад, ҳоло хатогӣ нишон дода мешавад.
  • Барои муҳофизат аз осебпазириҳои эҳтимолӣ, барои тоза кардани маълумоти нолозим аз сарлавҳаҳои муқарраршуда ҳангоми истифодаи модули h2h3 бо опсияи GIT_TRACE_CURL=1 ё GIT_CURL_VERBOSE=1 дар якҷоягӣ бо HTTP/2 тағирот ворид карда шуд.
  • Ҳангоми анҷом додани санҷиш дар филиал, ки пайванди рамзӣ ба шохаи дигар аст, фармони "git symbolic-ref HEAD" акнун на номи пайванди рамзӣ номи шохаи ҳадафро нишон медиҳад.
  • Дастгирии аргументи @{-1} ба опсияи "--edit-description" ("git branch —edit-description @{-1}") барои таҳрири тавсифи шохаи қаблӣ илова карда шуд.
  • Фармони "git merge-tree --stdin" илова карда шуд, то рӯйхати интихобҳоро тавассути вуруди стандартӣ гузаронад.
  • Дар системаҳои файлии шабакавӣ коркарди fsmonitor, ки тағиротро дар системаи файлӣ назорат мекунад, ба таври нобаёнӣ ғайрифаъол аст.

Манбаъ: opennet.ru

Илова Эзоҳ