Нашри системаи идоракунии сарчашмаҳои тақсимшудаи Git 2.25

Дастрас озод кардани системаи идоракунии сарчашмаҳои тақсимшуда git 2.25.0. Git яке аз маъмултарин, боэътимод ва сермахсули системаҳои идоракунии версия мебошад, ки абзорҳои тағйирпазири рушди ғайрихаттӣ дар асоси шохаҳо ва якҷоякунии шохаҳо мебошад. Барои таъмини якпорчагии таърих ва муқовимат ба тағйироти ретроактивӣ, хэшинги ғайримустақими тамоми таърихи қаблӣ дар ҳар як супорида истифода мешавад, инчунин метавон тегҳои инфиродӣ ва ӯҳдадориҳоро бо имзои рақамии таҳиягарон тафтиш кард.

Дар муқоиса бо нашри қаблӣ, версияи нав 583 тағиротро дар бар мегирад, ки бо иштироки 84 таҳиягар омода шудааст, ки 32 нафари онҳо бори аввал дар таҳия ширкат кардаанд. асосӣ навовариҳо:

  • Имконияти клонкунии қисман ба эътидолшавӣ ва омодагии пурра наздик мешавад, ки ба шумо имкон медиҳад танҳо як қисми маълумотро интиқол диҳед ва бо нусхаи нопурраи анбор кор кунед. Клони маъмулӣ ҳама маълумотро аз анбор, аз ҷумла ҳар як версияи ҳар як файл дар таърихи тағирот нусхабардорӣ мекунад. Барои анборҳои хеле калон, нусхабардории маълумот боиси афзоиши назарраси трафик ва фазои диск мегардад, ҳатто агар таҳиякунанда танҳо ба зермаҷмӯи файлҳо таваҷҷӯҳ дошта бошад. Барои осонтар кардани дарёфти танҳо як қисми дарахти манбаи корӣ, версияи нав фармони таҷрибавии "sparse-checkout" ва варианти нави "--sparse" -ро барои фармони "клон" ҷорӣ мекунад.

    Пештар, раванди интихобии клонкунӣ тавассути супориш анҷом дода мешуд филтрҳо барои филтр кардани мундариҷаи нолозим ва имконоти "-no-checkout" барои хомӯш кардани пур кардани файлҳои гумшуда. Пас аз он, пеш аз иҷрои амалиёти кассавӣ, танзимоти core.sparseCheckout -ро фаъол кардан ва рӯйхати намунаҳои роҳро дар файли .git/info/sparse-checkout муайян кардан лозим буд. Масалан, барои клон кардани бе блокҳо ва пешгирӣ кардани истихроҷи файлҳо аз зеркаталогҳои умқи 2 ё бештар, шумо метавонед иҷро кунед:

    git clone --filter=blob:none --no-checkout /your/repository/ince repo
    $cd репо
    $ cat >.git/info/sparse-checkout <EOF
    /*
    !/*
    EOF
    $ git config core.sparseCheckout 1
    $ git кассири.

    Фармони нави "git sparse-checkout" корро хеле осон мекунад ва раванди ташкили корро бо анбори нопурра ба фармонҳои зерин коҳиш медиҳад:

    git clone --filter=blob:none --sparse /your/repository/ince repo
    маҷмӯаи git sparse-checkout /path/to/check/out

    Фармони sparse-checkout ба шумо имкон медиҳад, ки рӯйхати роҳҳоро барои ҳисоб кардан (маҷмӯа) бидуни танзими дастӣ .git/info/sparse-checkout, инчунин намоиш додани рӯйхати ҷории роҳҳо (рӯйхат) ва фаъол ё ғайрифаъол кардани кассири қисман (фаъол) /хомӯш кардан).

    Барои оптимизатсияи кор бо анборҳои хеле калон ва рӯйхати қолибҳо, "git config core.sparseCheckoutCone", ки намунаҳои иҷозатдодашударо маҳдуд мекунад (ба ҷои намунаҳои .gitignore худсарона, шумо метавонед муайян кунед, ки оё ҳама роҳҳо ва ҳамаи файлҳо дар зеркаталоги додашуда бояд тафтиш карда шаванд). Масалан, агар як анбори калон директорияи "A/B/C" дошта бошад ва тамоми корҳо дар зеркаталоги "C" мутамарказ шуда бошанд, пас вақте ки шумо режими sparseCheckoutCone-ро фаъол мекунед, фармони "git sparse-checkout set A/B/ C" тамоми мундариҷаи "C" -ро истихроҷ мекунад, аммо аз "A" ва "B" танҳо қисмҳои заруриро барои кор бо "C" истихроҷ мекунад.

  • Аз ҳуҷҷатҳо ("git rebase -h") ҳама истинодҳо ба опсияи "--preserve-merges" хориҷ карда шуданд, ки он бекор карда шудааст ва бояд ба ҷои он барои интиқоли маҷмӯи ӯҳдадориҳо истифода шавад.git rebase --rebase-merges".
  • Барои беҳтар кардани хондани паёмҳо бо часпакҳои ба рӯйхатҳои почта фиристодашуда, варианти "git format-patch —cover-from-description subject" илова карда шудааст, вақте ки муайян карда мешавад, сархати якуми матни тавсифи филиал ҳамчун мавзӯи номаи сарпӯши барои маҷмӯи часбҳоро.
  • Дастгирии амалӣ барои истифодаи якҷояи фармони "git apply -3way" ва танзимоти "merge.conflictStyle" ("git application" ҳоло услуби тавсифи низоъро аз merge.conflictStyle ба назар мегирад, вақте ки барои ҳалли низоъ пас аз кӯшиш зарур аст ба кор бурдани файли пачка ба анбор).
  • Рамзи таърифи функсия, ки дар амалиётҳо истифода мешавад, ба монанди "git diff/grep --show-function/-function-context" барои дастгирии муайян кардани сарҳадҳои функсия дар барномаҳои забонӣ васеъ карда шудааст. Elixir.
  • Ба "git add", "git commit", "git reset" ва фармонҳои дигар варианти нав илова карда шуд - "-pathspec-from-file", ки имкон медиҳад рӯйхати роҳҳоро аз файл ё ҷараёни вуруд бор кунед , ба ҷои номбар кардани онҳо дар сатри фармон.
  • Мушкилоти муайян кардани номҳои тағирот дар сатҳи директория ҳангоми навиштани супоришҳо ҳал карда шуд. Агар мӯҳтавои зеркаталог ба решаи анбор кӯчонида шуда бошад, таъриф кор намекунад.
  • Амали ибтидоии фармони аз нав тарҳрезишудаи "git add -i" пешниҳод шудааст, ки ба шумо имкон медиҳад мундариҷаи тағирёфтаро ба таври интерактивӣ илова кунед, ки аз Perl ба C аз нав навишта шудааст. Кори шабеҳи фармони "git add -p" идома дорад.
  • Фармони "git log -graph" рефакторатсия карда шуд, ки тасвири ASCII-и графикро бо таърихи тағирот дар анбор тавлид мекунад. Коркарди такрорӣ имкон дод, ки натиҷа бидуни таҳрифи сохтори ҳикоя хеле беҳтар ва содда карда шавад, ки масалан, мушкилотро бо тасвири берун аз паҳнои хати терминал ҳал кард.
  • Опсияи "git log --format=.." ба шумо имкон медиҳад, ки формати баромадро тағир диҳед,
    бо дастгирии парчамҳои "l/L" барои намоиш додани танҳо қисми суроғаи почтаи электронӣ, ки пеш аз аломати "@" нишон дода шудааст, васеъ карда шудааст (масалан, вақте муфид аст, ки ҳамаи таҳиягарон ҳама паёмҳои электрониро дар як домен доранд).

  • Ба фармони "git submodule" зерфармони "set-url" илова карда шуд.
  • Маҷмӯаҳои санҷишӣ дар омодагӣ ба гузариш ба навсозӣ карда шуданд
    алгоритми ҳаshing SHA-2 ба ҷои SHA-1.

Манбаъ: opennet.ru

Илова Эзоҳ