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

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

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

  • Проширени се можностите за користење SSH клучеви за дигитално потпишување на Git објекти. За да се ограничи периодот на важност на неколку клучеви, додадена е поддршка за директивите OpenSSH „валидно-пред“ и „валидно-после“, со кои можете да обезбедите правилна работа со потписите откако клучот ќе биде ротиран од еден од развивачите. Пред ова, имаше проблем со одвојувањето на потписите со стариот и новиот клуч - ако го избришете стариот клуч, ќе биде невозможно да се потврдат потписите направени со него, а ако го оставите, тогаш ќе остане можно да се креирајте нови потписи со стариот клуч, кој веќе е заменет со друг клуч. Користејќи валидно-пред и валидно-после, можете да го одделите опсегот на клучевите врз основа на времето кога е креиран потписот.
  • Во поставката merge.conflictStyle, која ви овозможува да изберете режим за прикажување информации за конфликти за време на спојување, се појави поддршка за режимот „zdiff3“, кој ги поместува сите стандардни линии наведени на почетокот или на крајот на конфликтот надвор од конфликтот. област, што овозможува покомпактна презентација на информациите.
  • Режимот „--staged“ е додаден на командата „git stash“, која ви овозможува да ги скриете само промените додадени на индексот, на пример во ситуација кога треба привремено да одложите некои од сложените промени за прво додајте го она што е веќе готово и по извесно време зафатете се со останатото. Режимот е сличен на командата „git commit“, ги запишува само промените сместени во индексот, но наместо да се создаде нов commit во „git stash —staged“, резултатот се чува во привремената област за чување. Откако ќе бидат потребни промените, тие може да се вратат со командата „git stash pop“.
  • Додаден е нов спецификатор на формат во командата „git log“, „--format=%(describe)“, што ви овозможува да го комбинирате излезот од „git log“ со излезот од командата „git describe“. Параметрите за „git describe“ се наведени директно во спецификаторот („-format=%(describe:match= ,исклучи= )"), во кои можете да вклучите и скратени ознаки ("—format=%(describe:tags= )") и конфигурирајте го бројот на хексадецимални знаци за да се идентификуваат објектите („—format=%(describe:abbrev= )"). На пример, за да ги наведете последните 8 обврзници чии ознаки немаат ознака за кандидат за ослободување и да наведете идентификатори со 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-b. gb643bd2 bbc95f94 v056-2.34.1-gffb642f56d v95-8- gdf7c2.34.1adeb203 v9-2980902-g2.34.1b640a3
  • Поставката 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“ наместо „unsigned long“ за вредности што ја претставуваат големината на објектите, што овозможи да се користат „чисти“ и „размачкани“ филтри со датотеки поголеми од 4 GB. на сите платформи, вклучувајќи ги и платформите со моделот на податоци LLP64, типот „непотпишан долг“ во кој е ограничен на 4 бајти.
  • Опцијата „-empty=(stop|drop|keep)“ е додадена на командата „git am“, која ви овозможува да го изберете однесувањето за празни пораки што не содржат закрпи при парсирање на закрпи од поштенското сандаче. Вредноста „стоп“ ќе ја прекине целата операција за поправање, „пад“ ќе прескокне празна закрпа, а „задржи“ ќе создаде празна заложба.
  • Додадена е поддршка за делумни индекси (sparse index) на командите „git reset“, „git diff“, „git blame“, „git fetch“, „git pull“ и „git ls-files“ за подобрување на перформансите и заштеда на простор во складишта , во кои се вршат делумни операции на клонирање (sparse-checkout).
  • Командата „git sparse-checkout init“ е застарена и треба да се замени со „git sparse-checkout set“.
  • Додадена е иницијална имплементација на нов „повратен“ заднина за складирање на референци како што се гранки и ознаки во складиштето. Новиот заден дел користи блок складирање што го користи проектот JGit и е оптимизиран за складирање на многу голем број референци. Заднината сè уште не е интегрирана со системот за refs и не е подготвен за практична употреба.
  • Палетата на бои на командата „git grep“ е прилагодена за да одговара на алатката GNU grep.

Извор: opennet.ru

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