Выпуск сістэмы кіравання зыходнымі тэкстамі Git 2.38

Прадстаўлены выпуск размеркаванай сістэмы кіравання зыходнымі тэкстамі Git 2.38. Git з'яўляецца адной з самых папулярных, надзейных і высокапрадукцыйных сістэм кіравання версіямі, якая прадстаўляе гнуткія сродкі нелінейнай распрацоўкі, якія базуюцца на адгалінаванні і зліцці галінак. Для забеспячэння цэласнасці гісторыі і ўстойлівасці да змен «заднім лікам» выкарыстоўваюцца няяўнае хэшаванне ўсёй папярэдняй гісторыі ў кожным коміце, таксама магчыма пасведчанне лічбавымі подпісамі распрацоўшчыкаў асобных тэгаў і коммітаў.

У параўнанні з мінулым выпускам у новую версію прынята 699 ​​змен, падрыхтаваных пры ўдзеле 92 распрацоўшчыкаў, з якіх 24 упершыню прынялі ўдзел у распрацоўцы. Асноўныя навіны:

  • У асноўны склад уключаная ўтыліта "scalar", распрацаваная кампаніяй Microsoft для кіравання буйнымі рэпазітарамі. Утыліта першапачаткова была напісана на мове C#, але ў git уключаны перароблены варыянт на мове Сі. Новая ўтыліта адрозніваецца ад каманды git уключэннем па змаўчанні дадатковых магчымасцяў і налад, якія ўплываюць на прадукцыйнасць пры працы з вельмі буйнымі рэпазітарамі. Напрыклад, пры выкарыстанні scalar прымяняецца:
    • Частковае кланаванне для працы з няпоўнай копіяй рэпазітара.
    • Убудаваны механізм адсочвання змен у файлавай сістэме (FSMonitor), які дазваляе абыйсціся без перабору ўсяго працоўнага каталога.
    • Індэксы, якія ахопліваюць аб'екты ў розных pack-файлах (multi-pack).
    • Файлы commit-graph з індэксам графа комітаў, якія прымяняюцца для аптымізацыі доступу да інфармацыі аб комітах.
    • Фонавыя перыядычныя працы для падтрымання аптымальнай структуры рэпазітара ў фонавым рэжыме, не блакуючы інтэрактыўны сеанс (раз у гадзіну выконваецца праца па папераджальнай загрузцы свежых аб'ектаў з выдаленага рэпазітара і абнаўленню файла з графам комітаў, а кожную ноч запускаецца працэс пакавання рэпазітара).
    • Рэжым "sparseCheckoutCone", які абмяжоўвае дапушчальныя шаблоны пры частковым кланаванні.
  • У каманду "git rebase" дададзена опцыя "-update-refs" для абнаўлення залежных галінак, якія перасякаюцца з перамяшчаюцца галінкамі, каб уручную не выконваць аперацыі checkout да кожнай залежнай галінцы для пераключэння на патрабаваны коміт.
  • Забяспечана сумяшчальнасць каманды "git rm" з частковымі азначнікамі.
  • Палепшаны паводзіны каманды git mv AB пры перасоўванні файла з працоўнай вобласці з частковымі азначнікамі ў рэжыме cone у вонкавую вобласць, для якой дадзены рэжым не ўжываецца.
  • Праведзена аптымізацыя фармату bitmap-фалаў для працы з вялікімі рэпазітарамі — дададзена апцыянальная індэксная табліца са спісам абраных комітаў і іх зняццяў.
  • У камандзе "git merge-tree" рэалізаваны новы рэжым пры якім на аснове двух названых комітаў вылічаецца дрэва з вынікам зліцця, так, як калі б гісторыі гэтых комітаў былі аб'яднаны.
  • Дададзена налада «safe.barerepository» для кіравання магчымасцю размяшчэння bare-рэпазітароў (рэпазітары, якія не змяшчаюць працоўнага дрэва) усярэдзіне іншых git-рэпазітараў. Пры ўсталёўцы ў значэнне "explicit" будзе дапушчацца праца з bare-рэпазітарамі, размешчанымі толькі ў верхнім каталогу. Для магчымасці размяшчэння bare-рэпазітароў у падкаталогах варта выкарыстоўваць значэнне "all".
  • У каманду "git grep" дададзена опцыя "-m" ("-max-count"), аналагічная аднайменнай опцыі ў GNU grep і якая дазваляе абмежаваць колькасць выводных супадзенняў.
  • У камандзе "ls-files" рэалізавана опцыя "-format" для налады выводных палёў (напрыклад, можна ўключыць выснову імя аб'екта, рэжымаў і да т.п.).
  • У "git cat-file" пры паказе змесціва аб'ектаў рэалізавана магчымасць уліку прывязак аўтараў да email, зададзеных у файле mailmap.

Крыніца: opennet.ru

Дадаць каментар