Git 2.35 булакты башкаруу релиз

Эки айлык иштеп чыгуудан кийин Git 2.35 бөлүштүрүлгөн булакты башкаруу системасы чыгарылды. Git эң популярдуу, ишенимдүү жана жогорку өндүрүмдүү версияларды башкаруу тутумдарынын бири, тармакташуу жана бириктирүү боюнча ийкемдүү сызыктуу эмес өнүгүү куралдарын камсыз кылат. Тарыхтын бүтүндүгүн жана ретроактивдүү өзгөрүүлөргө туруштук берүүсүн камсыз кылуу үчүн ар бир милдеттенмеде мурунку бардык тарыхтын имплициттүү хэштери колдонулат, ошондой эле иштеп чыгуучулардын санариптик колтамгалары менен жеке тегдерди жана милдеттенмелерди күбөлөндүрүүгө болот.

Мурунку релизге салыштырмалуу жаңы версияда 494 иштеп чыгуучунун катышуусунда даярдалган 93 өзгөртүү камтылган, анын ичинен 35и биринчи жолу иштеп чыгууга катышкан. Негизги инновациялар:

  • Git объекттерине санариптик кол коюу үчүн SSH ачкычтарын колдонуу мүмкүнчүлүктөрү кеңейтилди. Бир нече ачкычтардын жарактуу мөөнөтүн чектөө үчүн OpenSSH директивалары “valid-fore” жана “valid-after” кошулду, анын жардамы менен сиз ачкычты иштеп чыгуучулардын бири айланткандан кийин кол тамгалар менен туура иштөөнү камсыздай аласыз. Буга чейин кол тамгаларды эски жана жаңы ачкыч менен бөлүү көйгөйү болгон - эгер сиз эски ачкычты жок кылсаңыз, аны менен түзүлгөн кол тамгаларды текшерүү мүмкүн болбой калат, ал эми аны калтырсаңыз, кол коюу мүмкүнчүлүгү кала берет. башка ачкыч менен алмаштырылган эски ачкыч менен жаңы кол тамгаларды түзүңүз. valid-before жана valid-after колдонуу менен, кол тамга түзүлгөн убакыттын негизинде ачкычтардын көлөмүн ажырата аласыз.
  • Биригүү учурунда чыр-чатактар ​​жөнүндө маалыматты көрсөтүү режимин тандоого мүмкүндүк берген merge.conflictStyle жөндөөсүндө чыр-чатактын башында же аягында көрсөтүлгөн бардык стандарттык сызыктарды чыр-чатактын сыртына жылдырган "zdiff3" режимин колдоо пайда болду. аймак, бул маалыматтын бир кыйла компакттуу берилишине мүмкүндүк берет.
  • "Git stash" буйругуна "--этаптуу" режими кошулду, ал индекске кошулган өзгөртүүлөрдү гана жашырууга мүмкүндүк берет, мисалы, биринчи кезекте татаал өзгөрүүлөрдүн айрымдарын убактылуу кийинкиге калтыруу керек болгон кырдаалда. даяр болгон нерсени кошуп, бир аздан кийин калганын чечиңиз. Режим "git commit" буйругуна окшош, индекске киргизилген өзгөртүүлөр гана жазылат, бирок "git stash —stage"де жаңы милдеттенме түзүүнүн ордуна, натыйжа stash убактылуу аймагында сакталат. Өзгөртүүлөр зарыл болгондон кийин, аларды "git stash pop" буйругу менен кайтарса болот.
  • "git log" буйругуна жаңы формат спецификациясы кошулду, "-format=%(describe)", ал "git log" чыгышын "git describe" буйругунун чыгышы менен айкалыштырууга мүмкүндүк берет. "git describe" үчүн параметрлер түздөн-түз спецификатордун ичинде көрсөтүлөт ("-format=%(describe:match=) ,чыгаруу = )"), ага сиз кыскартылган тегдерди да кошо аласыз ("—format=%(сүрөттөө:тегдер=) )") жана объекттерди идентификациялоо үчүн он алтылык символдордун санын конфигурациялаңыз (“—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-643b. gb2bd95 bbc94f056 v2.34.1-642-gffb56f95d v8-7- gdf2.34.1c203adeb9 v2980902-2.34.1-g640b3a41
  • user.signingKey жөндөөсү эми "ssh-" түрү менен чектелбеген жана ачкычка толук файл жолун көрсөтүүчү ачкычтардын жаңы түрлөрүн колдойт. Альтернативдик типтер "ачкыч::" префикси аркылуу көрсөтүлөт, мисалы ECDSA ачкычтары үчүн "ачкыч::ecdsa-sha2-nistp256".
  • “-гистограмма” режиминде, ошондой эле түстөрдүн айырмачылыгында боштуктарды бөлүп көрсөтүүнү башкарган “-color-moved-ws” опциясын колдонууда өзгөрүүлөрдүн тизмесин түзүү ылдамдыгы байкаларлык жогорулады.
  • Бириктирүү конфликттерин талдоодо, айырмачылыктарды көрүүдө же издөө операциясын аткарууда Vimге файлдын керектүү позициясына так секирүү жөнүндө маалымат берүү үчүн колдонулган "git jump" буйругу камтылган бириктирүү конфликттерин тарытуу мүмкүнчүлүгүн берет. Мисалы, операцияларды "foo" каталогуна гана чектөө үчүн "git jump merge - foo", ал эми "Documentation" каталогун иштетүүдөн чыгарып салуу үчүн - "git jump merge - ':^Documentation'" белгилей аласыз.
  • Объекттердин өлчөмүн чагылдырган баалуулуктар үчүн "кол коюлбаган узундун" ордуна "size_t" түрүн колдонууну стандартташтыруу боюнча иштер жүргүзүлдү, бул 4 ГБдан чоң файлдар менен "таза" жана "тазалоо" чыпкаларын колдонууга мүмкүндүк берди. бардык платформаларда, анын ичинде LLP64 маалымат модели бар платформаларда, "unsigned long" түрү 4 байт менен чектелген.
  • "Git am" буйругуна "-empty=(stop|drop|keep)" опциясы кошулду, ал почта ящигинен патчтарды талдоодо тактарды камтыбаган бош билдирүүлөрдүн жүрүм-турумун тандоого мүмкүндүк берет. "Токтотуу" мааниси бүт жамоо операциясын токтотот, "тамчы" бош патчты өткөрүп жиберет, ал эми "сактоо" бош милдетти түзөт.
  • "git reset", "git diff", "git blame", "git fetch", "git pull" жана "git ls-files" буйруктарына жарым-жартылай индекстерге (сейрек индекс) колдоо кошулду. репозиторийлер , анда жарым-жартылай клондоо операциялары (сейрек-текшерүү) аткарылат.
  • "git sparse-checkout init" буйругу эскирген жана "git sparse-checkout set" менен алмаштырылышы керек.
  • Репозиторийде бутактар ​​жана тегдер сыяктуу маалымдамаларды сактоо үчүн жаңы "кайталануучу" сервердин баштапкы ишке ашырылышы кошулду. Жаңы backend JGit долбоору тарабынан колдонулган блоктук сактагычты колдонот жана өтө көп сандагы шилтемелерди сактоо үчүн оптималдаштырылган. Backend али refs системасы менен интеграцияланган эмес жана практикалык колдонууга даяр эмес.
  • "git grep" буйругунун түс палитрасы GNU grep утилитасына дал келүү үчүн туураланган.

Source: opennet.ru

Комментарий кошуу