Доступан је систем контроле извора Гит 2.41

Након три месеца развоја, дистрибуирани систем контроле извора Гит 2.41 је пуштен. Гит је један од најпопуларнијих, најпоузданијих и система за контролу верзија високих перформанси, који пружа флексибилне нелинеарне развојне алате засноване на гранању и спајању. Да би се обезбедио интегритет историје и отпорност на ретроактивне промене, имплицитно хеширање целокупне претходне историје се користи у сваком урезивању; такође је могуће сертификовати појединачне ознаке и урезивања дигиталним потписима програмера.

У поређењу са претходним издањем, нова верзија је укључивала 542 измене, припремљене уз учешће 95 програмера, од којих је 29 учествовало у развоју по први пут. Главне иновације:

  • Побољшано руковање недостижним објектима који нису референцирани у спремишту (нису референцирани гранама или ознакама). Недоступне објекте брише сакупљач смећа, али остају у спремишту одређено време пре него што буду избрисани да би се избегли услови трке. Да би се пратио период појављивања недостижних објеката, потребно је да им се прикаче тагови са временом промене сличних објеката, што не дозвољава њихово складиштење у једну датотеку пакета у којој сви објекти имају заједничко време промене. Раније је сваки недоступни објекат био ускладиштен у посебној датотеци, што је доводило до проблема када је постојао велики број свежих недоступних објеката који још нису били подобни за брисање. У новом издању, механизам „цруфт пацкс“ се подразумевано користи за паковање недоступних објеката, што вам омогућава да све недоступне објекте складиштите у једну датотеку пакета, а подаци о времену модификације сваког објекта се одражавају у посебној табели, која се чува. у датотеци са екстензијом „.мтимес“ и повезаним помоћу индексне датотеке са екстензијом „.идк“.
    Доступан је систем контроле извора Гит 2.41
  • Одржавање обрнутог индекса на диску за датотеке пакета је подразумевано омогућено. Приликом тестирања на торвалдс/линук репозиторијуму, коришћење обрнутог индекса је омогућило да се убрзају „гит пусх“ операције које захтевају велике ресурсе за 1.49 пута, као и једноставне операције као што је израчунавање величине једног објекта помоћу „гит цат- филе —батцх='%(објецтсизе:диск)' "77 пута. Датотеке (.рев”) са обрнутим индексом биће ускладиштене унутар спремишта у директоријуму “.гит/објецтс/пацк”.

    Подсетимо се да Гит све податке чува у облику објеката, који се налазе у засебним датотекама. Да би се повећала ефикасност рада са спремиштем, објекти се додатно смештају у датотеке пакета, у којима су информације представљене у облику низа објеката који следе један за другим (сличан формат се користи приликом преноса објеката помоћу гит дохвати и гит пусх команде). За сваку датотеку пакета креира се индексна датотека (.идк) која вам омогућава да врло брзо одредите помак у датотеци пакета на којој се дати објекат чува помоћу идентификатора објекта.

    Реверзни индекс укључен у ново издање има за циљ оптимизацију процеса одређивања идентификатора објекта на основу информација о постављању објекта у датотеку пакета. Раније се таква конверзија обављала у ходу током рашчлањивања датотеке пакета и чувала се само у меморији, што није дозвољавало поновну употребу сличних индекса и приморавало је да се индекс генерише сваки пут. Операција изградње индекса се своди на конструисање низа парова објект-позиција и сортирање по позицији, што може потрајати дуго за велике датотеке пакета.

    На пример, операција за приказивање садржаја објеката, која користи директан индекс, била је 62 пута бржа од операције за приказивање величине објеката, за које подаци од позиције до објекта нису били индексирани. Након коришћења обрнутог индекса, ове операције су почеле да трају приближно исто време. Обрнути индекси вам такође омогућавају да убрзате операције слања објеката приликом извршавања команди преузимања и притиска директним преносом готових података са диска.

    Доступан је систем контроле извора Гит 2.41

  • Протокол „помоћника акредитива“, који се користи за пренос акредитива када се приступа спремиштима са ограниченим приступом, има додатну подршку за прослеђивање ВВВ-Аутхентицате заглавља између руковаоца акредитива и услуге у којој се врши аутентификација. Подршка за заглавље ВВВ-Аутхентицате вам омогућава да проследите параметре ОАутх опсега за детаљније одвајање корисничког приступа спремиштима и разграничење опсега доступних за захтеве.
  • Додата опција форматирања "%(ахеад-бехинд:" у за-еацх-реф команду: )”, што вам омогућава да одмах добијете информацију о броју урезивања присутних или одсутних у одређеној грани, у односу на другу грану (колико је једна грана иза или испред друге на нивоу урезивања). Раније, да бисте добили такве информације, морали сте да покренете две одвојене команде: „гит рев-лист —цоунт маин..ми-феатуре“ да бисте добили број урезивања јединствених за грану и „гит рев-лист —цоунт ми-феатуре“ ..маин” да бисте добили број урезивања који недостаје. Сада се такви прорачуни могу свести на једну команду, што поједностављује писање руковалаца и смањује време извршења. На пример, да бисте приказали гране које нису спојене и проценили да ли су иза или испред главне гране, можете да користите један ред: $ гит фор-еацх-реф —но-мергед=оригин/ХЕАД \ —формат ='%(рефнаме:схорт) %(ахеад-бехинд :оригин/ХЕАД)' \рефс/хеадс/тб/ | цолумн -т тб/цруфт-ектра-типс 2 96 тб/фор-еацх-реф—искључи 16 96 тб/роаринг-битмапс 47 3 уместо претходно коришћене скрипте, која ради 17 пута спорије: $ гит фор-еацх-реф — формат='%(рефнаме:схорт)' —но-мергед=оригин/ХЕАД \ рефс/хеадс/тб | вхиле реад реф до ахеад="$(гит рев-лист -цоунт оригин/ХЕАД..$реф)" бехинд="$(гит рев-лист -цоунт $реф..оригин/ХЕАД)" принтф "%с %д %д\н" "$реф" "$ахеад" "$бехинд" урађено | цолумн -т тб/цруфт-ектра-типс 2 96 тб/фор-еацх-реф—екцлуде 16 96 тб/роаринг-битмапс 47 3
  • Опција „-порцелаин“ је додата команди „гит фетцх“, када је наведено, излаз се генерише у формату „ “, мање читљив, али погоднији за рашчлањивање у скриптама.
  • Додато је подешавање „фетцх.хидеРефс“, које вам омогућава да убрзате „гит фетцх“ операције скривањем неких референци у локалном спремишту у фази провере да ли је сервер послао цео скуп објеката, што штеди време тако што ограничавајући проверу само на сервере са којих се подаци директно преузимају. На пример, када се изводи тест на систему са репозиторијумима који садрже велики број праћених спољних веза, искључивање свих веза осим оних које су адресиране на циљни сервер, $ремоте је смањило извршење операције гит дохвата са 20 минута на 30 секунди. $ гит -ц фетцх.хидеРефс=рефс -ц фетцх.хидеРефс=!рефс/ремотес/$ремоте \ дохвати $ремоте
  • Команда „гит фсцк“ пружа могућност провере оштећења, усклађености контролне суме и исправности вредности у битмапама приступачности и обрнутим индексима.
  • Команда "гит цлоне --лоцал" сада приказује грешку при покушају копирања из спремишта које садржи симболичне везе унутар $ГИТ_ДИР.

Извор: опеннет.ру

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