Издание за контрола на изворот на Git 2.39

По два месеци развој, пуштен е системот за контрола на дистрибуирани извори Git 2.39. Git е еден од најпопуларните, доверливи и со високи перформанси системи за контрола на верзии, кој обезбедува флексибилни нелинеарни развојни алатки засновани на разгранување и спојување. За да се обезбеди интегритет на историјата и отпорност на ретроактивни промени, се користи имплицитно хаширање на целата претходна историја во секое извршување, исто така е можно да се сертифицираат поединечни ознаки и обврски со дигитални потписи на програмерите;

Во споредба со претходното издание, новата верзија вклучуваше 483 промени, подготвени со учество на 86 програмери, од кои 31 учествуваа во развојот за прв пат. Главните иновации:

  • Командата „git shortlog“, дизајнирана да прикажува резимеа со статистика од историјата на промените, додаде опција „-група“ за произволно групирање на обврски по полиња кои не се ограничени само на авторот или извршителот. На пример, за да се прикаже список на програмери со информации за бројот на промени, земајќи ги предвид помошниците споменати во полето „Ко-автор-од“, можете да ја користите командата: git shortlog -ns --group=author - -група=приколка:коавторство

    Излезот од кратки дневници може да се собере со помош на спецификатори за форматирање, а опцијата „--група“ може значително да го поедностави создавањето сложени извештаи и да ја елиминира потребата од дополнителни команди за сортирање. На пример, за да креирате извештај со информации за тоа колку обврски за дадено издание биле прифатени секој месец, можете да наведете: 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 Претходно, за да се изврши слична операција, ќе беше неопходно да се користат алатките за сортирање и uniq: git log2.38.0 vXNUMX. .. —date='format:%Y -%m' —format='%cd' | сортирање | uniq -в

  • Проширени се можностите на механизмот „cruft packs“, дизајниран за пакување недостижни предмети што не се референцирани во складиштето (не се референцирани со гранки или ознаки). Недостапните предмети се бришат од собирачот на ѓубре, но остануваат во складиштето одредено време пред да се избришат за да се избегнат услови за трка. Механизмот „cruft packs“ ви овозможува да ги складирате сите недостапни објекти во една датотека пакет и да прикажувате податоци за времето на модификација на секој објект во посебна табела, складирана во посебна датотека со наставката „.mtimes“, така што тие го прават не се преклопуваат со вкупното време на измена.

    Должината на времето во кое недостижните објекти остануваат во складиштето пред навистина да бидат избришани се одредува со опцијата „—prune=“ " Сепак, иако одложувањето пред бришењето е прилично ефикасен и практичен начин за спречување на корупцијата во складиштето поради условите на расата, тој не е 100% сигурен. За да се олесни обновувањето на оштетеното складиште, новото издание обезбедува можност за зачувување на исчезнатите објекти со додавање на опцијата „--expire-to“ на командата „git repack“, која ви овозможува да наведете датотека за да креирате надворешен копија од сите избришани објекти. На пример, за да зачувате недостапни објекти кои не се променети во последните 5 минути во датотеката backup.git, можете да ја користите командата: git repack --cruft --cruft-expiration=5.minutes.ago -d --expire -to=../backup.git

  • Значително зголемена (до 70%) брзината на операцијата „git grep -cached“ при пребарување во области кои користат делумно клонирање (sparse-checkout) и за кои има делумни индекси (sparse index). Претходно, при одредување на опцијата „-cached“, пребарувањето се вршеше прво во редовниот индекс, а потоа и во делумните, што доведе до забележителни одложувања при пребарувањето во големи складишта.
  • Проверката на серверот за кохерентноста на новите објекти пред да се стават во складиштето за време на операцијата „git push“ е забрзана. Со префрлање на сметководство за само декларирани врски при проверка, во тест складиште со 7 милиони врски, од кои само 3% се покриени со операцијата push, воведените оптимизации овозможија да се намали времето на проверка за 4.5 пати.
  • За заштита од потенцијални прелевања на цели броеви во кодот, командата „git apply“ ја ограничува максималната големина на закрпи што може да се обработуваат. Ако големината на закрпата надминува 1 GB, сега ќе се прикаже грешка.
  • За заштита од потенцијални пропусти, направени се промени за чистење на непотребните информации од поставените заглавија при користење на модулот 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

Додадете коментар