Git 2.35 mənbəyə nəzarət buraxılışı

İki aylıq inkişafdan sonra paylanmış mənbə idarəetmə sistemi Git 2.35 buraxıldı. 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ə qarşı müqaviməti 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 teqləri 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 494 tərtibatçının iştirakı ilə hazırlanmış 93 dəyişiklik daxil edilib, onlardan 35-i ilk dəfə işlənmədə iştirak edib. Əsas yeniliklər:

  • Git obyektlərini rəqəmsal imzalamaq üçün SSH açarlarından istifadə imkanları genişləndirilib. Bir neçə açarın etibarlılıq müddətini məhdudlaşdırmaq üçün “valid-before” və “valid-sonra” OpenSSH direktivlərinə dəstək əlavə edilmişdir ki, bununla da açarın tərtibatçılardan biri tərəfindən çevrilməsindən sonra imzalarla düzgün işləməyi təmin edə bilərsiniz. Bundan əvvəl köhnə və yeni açarla imzaların ayrılması ilə bağlı problem var idi - köhnə açarı silsəniz, onunla edilən imzaları yoxlamaq mümkün olmayacaq və onu tərk etsəniz, mümkün qalacaq. artıq başqa açarla əvəz edilmiş köhnə açarla yeni imzalar yaradın. valid-before və valid-sonradan istifadə edərək, imzanın yaradıldığı vaxta əsasən açarların əhatə dairəsini ayıra bilərsiniz.
  • Birləşmə zamanı münaqişələr haqqında məlumatı göstərmək üçün rejimi seçməyə imkan verən merge.conflictStyle parametrində münaqişənin əvvəlində və ya sonunda göstərilən bütün standart sətirləri münaqişədən kənara çıxaran “zdiff3” rejiminin dəstəyi ortaya çıxdı. informasiyanın daha yığcam təqdim edilməsinə imkan verən sahədir.
  • "git stash" əmrinə "--mərhələli" rejimi əlavə edildi, bu, yalnız indeksə əlavə edilmiş dəyişiklikləri gizlətməyə imkan verir, məsələn, əvvəlcə bəzi mürəkkəb dəyişiklikləri müvəqqəti olaraq təxirə salmalı olduğunuz bir vəziyyətdə. artıq hazır olanı əlavə edin və bir müddət sonra qalanları ilə məşğul olun. Rejim “git commit” əmrinə bənzəyir, yalnız indeksdə yerləşdirilmiş dəyişiklikləri yazır, lakin “git stash —staged”də yeni öhdəlik yaratmaq əvəzinə nəticə müvəqqəti saxlama sahəsində saxlanılır. Dəyişikliklərə ehtiyac olduqda, onları "git stash pop" əmri ilə geri qaytarmaq olar.
  • “git log” əmrinə “--format=%(describe)” yeni format təyinedicisi əlavə edilib ki, bu da “git log”un çıxışını “git describe” əmrinin çıxışı ilə birləşdirməyə imkan verir. "git təsviri" üçün parametrlər birbaşa spesifikatorun daxilində müəyyən edilir ("-format=%(describe:match=) , xaric = )"), qısaldılmış teqləri də daxil edə bilərsiniz ("—format=%(təsvir:tags=) )") və obyektləri müəyyən etmək üçün onaltılıq simvolların sayını konfiqurasiya edin (“—format=%(təsvir edin: abbrev=) )"). Məsələn, teqlərində buraxılış namizədi teqi olmayan və 8 simvollu identifikatorları göstərərək son 8 öhdəliyi sadalamaq üçün aşağıdakı əmrdən istifadə edə bilərsiniz: $ git log -8 —format='%(describe:exclude=*-rc) *,qısaltma=13 )' v2.34.1-646-gaf4e5f569bc89 v2.34.1-644-g0330edb239c24 v2.33.1-641-g15f002812f858 v2.34.1-643b.v2-95. 94-gb056bd 2.34.1bbc642f56 v95-8-gffb7f2.34.1d v203-9- gdf2980902c2.34.1adeb640 v3-41-g212b2.34.1a639
  • user.signingKey parametri indi “ssh-” növü ilə məhdudlaşmayan və açara tam fayl yolunu göstərən yeni açar növlərini dəstəkləyir. Alternativ növlər "key::" prefiksi ilə müəyyən edilir, məsələn, ECDSA açarları üçün "key::ecdsa-sha2-nistp256".
  • “—histogram” rejimində, eləcə də rəng fərqində boşluqların vurğulanmasını idarə edən “—color-moved-ws” seçimindən istifadə edərkən dəyişikliklər siyahısının yaradılması sürəti nəzərəçarpacaq dərəcədə artırılıb.
  • Birləşmə konfliktlərini təhlil edərkən, fərqlərə baxarkən və ya axtarış əməliyyatını yerinə yetirərkən Vim-i faylda istədiyiniz mövqeyə dəqiq sıçrayış haqqında məlumat vermək üçün istifadə edilən "git jump" əmri əhatə olunan birləşmə konfliktlərini daraltmaq imkanı verir. Məsələn, əməliyyatları yalnız "foo" kataloqu ilə məhdudlaşdırmaq üçün "git jump merge - foo", "Sənədləşdirmə" kataloqunu emaldan xaric etmək üçün - "git jump merge - ':^Documentation'" təyin edə bilərsiniz.
  • Obyektlərin ölçüsünü əks etdirən dəyərlər üçün "imzasız uzun" əvəzinə "size_t" növünün istifadəsini standartlaşdırmaq üçün işlər görülmüşdür ki, bu da 4 GB-dan böyük fayllarla "təmiz" və "ləklənmə" filtrlərindən istifadə etməyə imkan vermişdir. bütün platformalarda, o cümlədən LLP64 məlumat modeli olan platformalarda , 4 baytla məhdudlaşan “imzasız uzun” növü.
  • “-empty=(stop|drop|saxla)” seçimi “git am” əmrinə əlavə edilmişdir ki, bu da poçt qutusundan yamaqları təhlil edərkən yamaqları olmayan boş mesajların davranışını seçməyə imkan verir. “Stop” dəyəri bütün yamaq əməliyyatını dayandıracaq, “damla” boş yamağı atlayacaq və “saxlamaq” boş öhdəlik yaradacaq.
  • Performansı yaxşılaşdırmaq və məkana qənaət etmək üçün "git reset", "git diff", "git blame", "git fetch", "git pull" və "git ls-files" əmrlərinə qismən indekslər (seyrək indeks) üçün dəstək əlavə edilib. qismən klonlama əməliyyatlarının (seyrək yoxlama) həyata keçirildiyi anbarlar.
  • "git sparse-checkout init" əmri köhnəldi və "git seyrək yoxlama dəsti" ilə əvəz edilməlidir.
  • Repozitoriyada filiallar və teqlər kimi istinadların saxlanması üçün yeni "qaytarıla bilən" backendin ilkin tətbiqi əlavə edildi. Yeni backend JGit layihəsi tərəfindən istifadə edilən blok yaddaşdan istifadə edir və çoxlu sayda istinadların saxlanması üçün optimallaşdırılıb. Backend hələ refs sistemi ilə inteqrasiya olunmayıb və praktik istifadə üçün hazır deyil.
  • "git grep" əmrinin rəng palitrası GNU grep yardım proqramına uyğunlaşdırılıb.

Mənbə: opennet.ru

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