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

Tərəfindən təqdim edildi paylanmış mənbəyə nəzarət sisteminin buraxılması git 2.22.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. Tarixin bütövlüyünü və geriyə qüvvədə olan dəyişikliklərə qarşı müqaviməti təmin etmək üçün hər bir commitdə bütün əvvəlki tarixçənin 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 745 tərtibatçının iştirakı ilə hazırlanmış 74 dəyişiklik daxil edilib, onlardan 18-i ilk dəfə olaraq işlənmədə iştirak edib. Əsas yeniliklər:

  • 1.18 buraxılışından bəri mövcud olan yeni "git rebase --rebase-merges" commit rebase rejimi indi köhnəlmiş köhnə "--preserve-merges" seçimini əvəz edir. "Git rebase" əməliyyatı bir sıra öhdəlikləri yeni əsas öhdəlik ilə əvəz etmək üçün istifadə olunur, məsələn, bəzi yeni xüsusiyyətlər inkişaf etdirən ayrıca filialı filialdan sonra əlavə edilmiş düzəlişləri ehtiva edən master filialın cari vəziyyətinə köçürmək üçün :

    o - o - o (mənim xüsusiyyətim)

    /

    o - o - o - o - o (usta)

    o - o - o (mənim xüsusiyyətim)

    /

    o - o - o - o - o (usta)

    Köçürülən filialda filial strukturunu qorumaq üçün əvvəllər “--preserve-merges” seçimi istifadə oluna bilərdi ki, bu da interaktiv rejimdə işə salındıqda (git rebase -i --preserve-merges) icra tarixçəsini redaktə etməyə imkan verir, lakin anbar strukturunun tam saxlanmasına zəmanət vermədi. Yeni “--rebase-merges” rejimi, köçürmələrin silinməsi, yenidən qruplaşdırılması və adının dəyişdirilməsi daxil olmaqla, interaktiv əməliyyatların tam spektrini təmin etməklə, köçürülən filialda dəyişikliklərin strukturunu qoruyub saxlamağa imkan verir.

    Məsələn, "--rebase-merges" imkan köçürülmüş filialda filial strukturunu qoruyaraq, ayrı filialdan daha yeni master filiala öhdəlikləri yenidən yükləyin və öhdəçilik qeydlərində dərhal bəzi dəyişikliklər edin.

  • “git branch new A...B” və “git checkout -b new” konstruksiyalarından istifadə etməklə digər iki filialın birləşmə əsasının (birləşmə bazası, ortaq əcdadla əlaqəsi) müəyyən edilməsinin nəticəsi əsasında yeni filial yaratmaq üçün əlavə dəstək A...B”, burada “A ...B” iki müəyyən edilmiş öhdəliklər arasında birləşmə bazasını müəyyən etməyi nəzərdə tutur, “git checkout A...B”-nin HEAD-i əsas öhdəliyə və “diff A. ..B" "B" öhdəliyi ilə "A" öhdəliyi ilə eyni "Əcdad" arasındakı dəyişiklikləri göstərir.

    Məsələn, ayrıca mənim xüsusiyyətim filialı üzərində işləyərkən, bu xüsusiyyət fərqli bir filialdan başlamaq istədiyiniz zaman istifadə edilə bilər, məsələn, mənim xüsusiyyətim filialının yoxlanıldığı master filialda eyni yerdən. Əvvəllər bu, dəyişiklik jurnalını əl ilə yoxlamağı tələb edirdi, əgər sizin böyük dəyişikliklər tarixiniz varsa, bu, əlverişsiz idi, sonra master və mənim funksiyam filialları arasında birləşmə bazasının hashını hesablamaq üçün “git merge-base master my-feature” proqramını işə salmaq lazımdır. və ortaq əcdad “git budaq mənim-digər-xüsusiyyətim hash”ə nisbətən yeni filial yaratmaq. Git 2.22-də siz iki digər filialın birləşmə bazasına nisbətən budaq yaratmaq üçün "git branch my-other-feature A...B" sintaksisindən istifadə edə bilərsiniz;

  • Kassa əməliyyatı zamanı əldə edilmiş filialın adını göstərmək üçün "git branch --show-current" seçimi əlavə edildi;
  • “git checkout —no-overlay — dir” seçimi əlavə edildi ki, bu da yoxlama əməliyyatını yerinə yetirərkən direktor kataloqunun məzmununu master filialının vəziyyətinə tam uyğun gələn forma gətirməyə imkan verir. Məsələn, əgər dir kataloqunun yerli nüsxəsində master filialında olmayan fayl varsa, o zaman standart olaraq “git checkout master - dir” icra edilərkən o, qalacaq və əgər “--no-overlay” varsa. ” seçimi göstərilib, o, silinəcək;
  • "git diff" əmri variantları təhlil etmək üçün universal API istifadə edir ki, bu da opsiyaların idarə edilməsini digər git utilitləri ilə birləşdirməyə imkan verir. Məsələn, “git diff”də bütün variantların öz antaqonistləri var (“--function-context” və “--no-function-context”);
  • “git log” çıxışında öhdəliklərə əlavə edilmiş genişləndirilmiş teqləri süzgəcdən keçirmə imkanı əlavə edildi (“treyler” – imzalanan-off- və Həmmüəllif kimi əlavə məlumat bayraqları). Etiketləri həm açar, həm də dəyər üzrə filtrləmək mümkündür, məsələn:
    "git log --pretty="%(qoşqular:key=Yoxlayanlar,yalnız dəyər)";

  • Daha çevik və strukturlaşdırılmış çıxış formatı təklif edən yeni izləmə mühərriki, Trace2 əlavə edildi. Trace2 daha ətraflı təhlil və sazlama üçün yerinə yetirilən əməliyyatlar və performans məlumatları haqqında telemetriya toplamağa imkan verir (işləyici istifadəçi tərəfindən təyin edilir, heç bir məlumat xaricdən göndərilmir);
  • “git bisect” hesabatı daha oxunaqlı hala gətirildi, burada problemli öhdəliklər indi daha aydın şəkildə vurğulanır və hər bir fayl üzrə dəyişikliklərin xülasə statistikası göstərilir (dəyişən sətirlərin sayı səviyyəsində);
  • Kataloq adlarının dəyişdirilməsinin müəyyən edilməsi üçün evristik üsullar ad dəyişdirmə etiketlərinin yanlış quraşdırılmasını aradan qaldırmaq üçün yenidən işlənmişdir. Şübhə olduqda, belə kataloqlar indi ziddiyyətli kimi qeyd olunur;
  • Başqa bir teqdə teq quraşdırmağa çalışdığınız zaman xəbərdarlıq göstərilir, bu adətən səhvən edilir və etiketin yanlış öhdəliyə qoyulmasına səbəb ola bilər (məsələn, “git tag -f -m “yenilənmiş mesaj” kimi konstruksiya. my-tag1 my-tag2″ köhnə teqdə teq yaradılması ilə nəticələnəcək, halbuki tərtibatçı köhnə teq tərəfindən göstərilən öhdəliyə yeni teqin quraşdırılmasını gözləyirdi);
  • Yaratma bitmap repozitoriyaları (disk əsaslı "əlçatanlıq bitmapları" strukturu) üçün aktivləşdirilib ki, bu da hər bir icra üçün mövcud olan obyektlər dəstləri haqqında məlumatları saxlayır və sizə əsas obyektin mövcudluğunu tez müəyyən etməyə imkan verir. Bu struktur məlumatların axtarışı əməliyyatlarının icra müddətini əhəmiyyətli dərəcədə azaldır (git fetch).

Mənbə: opennet.ru

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