Paylanmış mənbə idarəetmə sisteminin buraxılışı Git 2.26

Mövcuddur paylanmış mənbəyə nəzarət sisteminin buraxılması git 2.26.0. Git ən populyar, etibarlı və yüksək məhsuldar versiyaya nəzarət sistemlərindən biridir, budaqlanma və birləşməyə əsaslanan çevik qeyri-xətti inkişaf vasitələrini təmin edir. Tarixçənin bütövlüyünü və retroaktiv dəyişikliklərə müqavimətini təmin etmək üçün hər bir öhdəçilikdə bütün əvvəlki tarixin gizli heşinqindən istifadə olunur, həmçinin fərdi teq və öhdəlikləri tərtibatçıların rəqəmsal imzaları ilə təsdiqləmək mümkündür.

Əvvəlki buraxılışla müqayisədə yeni versiyaya 504 tərtibatçının iştirakı ilə hazırlanmış 64 dəyişiklik daxil edilib, onlardan 12-i ilk dəfə olaraq işlənmədə iştirak edib. Əsas yeniliklər:

  • Defolt olaraq dəyişdirildi ikinci versiya Git rabitə protokolu, müştəri uzaqdan Git serverinə qoşulduqda istifadə olunur. Protokolun ikinci versiyası müştəriyə qısaldılmış bağlantılar siyahısını qaytararaq server tərəfindəki filialları və etiketləri süzgəcdən keçirmək qabiliyyətini təmin etməklə diqqət çəkir. Əvvəllər istənilən çəkmə əmri, müştəri yalnız bir filialı yeniləyərkən və ya repozitoriyanın nüsxəsinin yeni olduğunu yoxladıqda belə, həmişə müştəriyə bütün depodakı istinadların tam siyahısını göndərirdi. Digər diqqətəlayiq yenilik, alətlər dəstində yeni funksionallıq mövcud olduqda protokola yeni imkanlar əlavə etmək imkanıdır. Müştəri kodu köhnə protokola uyğun olaraq qalır və həm yeni, həm də köhnə serverlərlə işləməyə davam edə bilər, əgər server ikincini dəstəkləmirsə, avtomatik olaraq birinci versiyaya qayıdır.
  • “-show-scope” seçimi “git config” əmrinə əlavə edilib, müəyyən parametrlərin təyin olunduğu yeri müəyyənləşdirməyi asanlaşdırır. Git sizə müxtəlif yerlərdə parametrləri təyin etməyə imkan verir: depoda (.git/info/config), istifadəçi kataloqunda (~/.gitconfig), bütün sistem konfiqurasiya faylında (/etc/gitconfig) və komanda vasitəsilə xətt seçimləri və mühit dəyişənləri. "Git config" icra edərkən istədiyiniz parametrin dəqiq harada təyin olunduğunu başa düşmək olduqca çətindir. Bu problemi həll etmək üçün “--show-origin” seçimi mövcud idi, lakin o, yalnız parametrin təyin olunduğu fayla gedən yolu göstərir, bu, faylı redaktə etmək niyyətindəsinizsə faydalıdır, lakin sizə kömək etmir. "--system", "--global" və ya "-local" seçimlərindən istifadə edərək "git config" vasitəsilə dəyəri dəyişmək lazımdır. Yeni seçim "--show-scope" dəyişən tərifi kontekstini göstərir və -show-origin ilə birlikdə istifadə edilə bilər:

    $ git --list --scope-scope --show-origin
    qlobal fayl:/home/user/.gitconfig diff.interhunkcontext=1
    qlobal fayl:/home/user/.gitconfig push.default=current
    […] yerli fayl:.git/config branch.master.remote=origin
    yerli fayl:.git/config branch.master.merge=refs/heads/master

    $ git konfiqurasiya --show-scope --get-regexp 'fərq.*'
    qlobal diff.statgraphwidth 35
    yerli diff.rəngi dəyişmiş düzənlik

    $ git config --qlobal --unset diff.statgraphwidth

  • Bağlama parametrlərində etimadnamələr URL-lərdə maskaların istifadəsinə icazə verilir. Git-də istənilən HTTP parametrləri və etimadnamələri həm bütün bağlantılar (http.extraHeader, credential.helper) və həm də URL-əsaslı bağlantılar üçün (credential.https://example.com.helper, credential.https: //example. com.köməkçi). İndiyədək *.example.com kimi joker işarələrə yalnız HTTP parametrləri üçün icazə verilirdi, lakin etimadnamənin bağlanması üçün dəstəklənmirdi. Git 2.26-da bu fərqlər aradan qaldırılır və məsələn, istifadəçi adını bütün subdomenlərə bağlamaq üçün indi təyin edə bilərsiniz:

    [etimadnamə "https://*.example.com"]

    istifadəçi adı = ttaylorr

  • Qismən klonlaşdırma (qismən klonlar) üçün eksperimental dəstəyin genişləndirilməsi davam edir, bu, məlumatların yalnız bir hissəsini köçürməyə və deponun natamam nüsxəsi ilə işləməyə imkan verir. Yeni buraxılışa "git sparse-checkout add" yeni əmri əlavə olunur ki, bu da "git" əmri vasitəsilə bütün bu cür qovluqları bir anda siyahıya almaq əvəzinə, "checkout" əməliyyatını işləyən ağacın yalnız bir hissəsinə tətbiq etmək üçün fərdi kataloqlar əlavə etməyə imkan verir. seyrək yoxlama dəsti" (hər dəfə bütün siyahını yenidən göstərmədən bir-bir kataloq əlavə edə bilərsiniz).
    Məsələn, bloblar etmədən, yoxlamanı yalnız işləyən nüsxənin kök kataloqu ilə məhdudlaşdırmadan və "t" və "Sənədləşdirmə" qovluqları üçün ayrı-ayrılıqda yoxlama qeyd etmədən git/git deposunu klonlaşdırmaq üçün aşağıdakıları təyin edə bilərsiniz:

    $ git clone --filter=blob:none --sparse [e-poçt qorunur]:git/git.git

    $ cd git
    $ git seyrək-checkout init --konus

    $ git seyrək-checkout əlavə t
    ....
    $ git seyrək-checkout Documentation əlavə edin
    ....
    $ git seyrək yoxlama siyahısı
    Documentation
    t

  • Həm deponun cari məzmununu, həm də tarixi düzəlişləri axtarmaq üçün istifadə edilən “git grep” əmrinin performansı əhəmiyyətli dərəcədə yaxşılaşdırılıb. Axtarışı sürətləndirmək üçün çoxlu iplərdən (“git grep –threads”) istifadə edərək işləyən ağacın məzmununu skan etmək mümkün idi, lakin tarixi reviziyalarda axtarış tək yivli idi. İndi bu məhdudiyyət obyekt yaddaşından oxu əməliyyatlarını paralelləşdirmək imkanı tətbiq etməklə aradan qaldırıldı. Varsayılan olaraq, iplərin sayı CPU nüvələrinin sayına bərabərdir, əksər hallarda indi "-threads" seçimini açıq şəkildə təyin etməyi tələb etmir.
  • Repozitoriyanın bir neçə işçi nüsxəsi ilə işləməyə imkan verən “git worktree” əmrinin alt əmrləri, yolları, keçidləri və digər arqumentlərinin daxil edilməsinin avtomatik tamamlanması üçün əlavə dəstək.
  • ANSI qaçış ardıcıllığı olan parlaq rənglər üçün əlavə dəstək. Məsələn, “git config –color” və ya “git diff –color-moved” vurğulanan rənglər üçün parametrlərdə parlaq mavi üçün “--format” seçimi ilə “%C(brightblue)” təyin edə bilərsiniz.
  • Skriptin yeni versiyası əlavə edildi fsmonitor-gözətçi, mexanizmlə inteqrasiyanı təmin edir Facebook Gözətçisi fayl dəyişikliklərinin və yeni faylların görünüşünün izlənilməsini sürətləndirmək. Git yeniləndikdən sonra tələb olunur əvəz et depoda qarmaq.
  • Bitmaplardan istifadə edərkən qismən klonları sürətləndirmək üçün optimallaşdırmalar əlavə edildi
    (bitmap maşınları) çıxışı süzərkən bütün obyektlərin tam axtarışından qaçınmaq üçün. Qismən klonlaşdırma zamanı ləkələrin yoxlanılması (—filter=blob:none və —filter=blob:limit=n) indi həyata keçirilir.
    əhəmiyyətli dərəcədə daha sürətli. GitHub bu optimallaşdırmalar və qismən klonlaşdırma üçün eksperimental dəstək ilə yamaqlar elan etdi.

  • "git rebase" əmri "patch+apply" əvəzinə defolt "birləşmə" mexanizmindən (əvvəllər "rebase -i" üçün istifadə olunurdu) istifadə edərək başqa bir arxa hissəyə köçürüldü. Arxa tərəflər bəzi kiçik yollarla fərqlənir, məsələn, münaqişəni həll etdikdən sonra əməliyyatı davam etdirdikdən sonra (git rebase --continue), yeni backend commit mesajını redaktə etməyi təklif edir, köhnəsi isə sadəcə köhnə mesajdan istifadə edir. Köhnə davranışa qayıtmaq üçün siz "--apply" seçimindən istifadə edə və ya "rebase.backend" konfiqurasiya dəyişənini "tətbiq et" olaraq təyin edə bilərsiniz.
  • .netrc vasitəsilə müəyyən edilmiş autentifikasiya parametrləri üçün işləyici nümunəsi qutudan kənar istifadə üçün uyğun formada azaldılıb.
  • Rəqəmsal imza yoxlamasını həyata keçirən müxtəlif elementlər üçün minimum etibar səviyyəsini təyin etmək üçün gpg.minTrustLevel parametri əlavə edildi.
  • "git rm" və "git stash"-a "--pathspec-from-file" seçimi əlavə edildi.
  • SHA-2 əvəzinə SHA-1 heshing alqoritminə keçidə hazırlıq çərçivəsində test paketlərinin təkmilləşdirilməsi davam etdirildi.

Mənbə: opennet.ru

Добавить комментарий