IzplatÄ«tās avota kontroles sistēmas Git 2.26 izlaiÅ”ana

Pieejams izplatÄ«ta avota kontroles sistēmas izlaiÅ”ana Git 2.26.0. Git ir viena no populārākajām, uzticamākajām un augstas veiktspējas versiju kontroles sistēmām, kas nodroÅ”ina elastÄ«gus nelineārus izstrādes rÄ«kus, kuru pamatā ir sazaroÅ”ana un apvienoÅ”ana. Lai nodroÅ”inātu vēstures integritāti un noturÄ«bu pret retroaktÄ«vām izmaiņām, katrā saistÄ«bā tiek izmantota visas iepriekŔējās vēstures netieÅ”a jaukÅ”ana, kā arÄ« ir iespējams sertificēt atseviŔķus tagus un saistÄ«bas ar izstrādātāju digitālajiem parakstiem.

SalÄ«dzinot ar iepriekŔējo versiju, jaunajā versijā tika iekļautas 504 izmaiņas, kas sagatavotas, piedaloties 64 izstrādātājiem, no kurām 12 izstrādē piedalÄ«jās pirmo reizi. Galvenais jauninājumiem:

  • Noklusējums ir pārslēgts uz otrā versija Git sakaru protokols, ko izmanto, kad klients attālināti izveido savienojumu ar Git serveri. Protokola otrā versija ir ievērojama ar to, ka nodroÅ”ina iespēju filtrēt zarus un tagus servera pusē, atgriežot klientam saÄ«sinātu saiÅ”u sarakstu. IepriekÅ” jebkura vilkÅ”anas komanda vienmēr nosÅ«tÄ«ja klientam pilnu atsauču sarakstu visā repozitorijā, pat ja klients atjaunināja tikai vienu filiāli vai pārbauda, ā€‹ā€‹vai viņa repozitorija kopija ir atjaunināta. Vēl viens ievērojams jauninājums ir iespēja pievienot protokolam jaunas iespējas, kad rÄ«ku komplektā kļūst pieejama jauna funkcionalitāte. Klienta kods joprojām ir saderÄ«gs ar veco protokolu un var turpināt strādāt gan ar jauniem, gan veciem serveriem, automātiski atgriežoties pie pirmās versijas, ja serveris neatbalsta otro.
  • Komandai ā€œgit configā€ ir pievienota opcija ā€œ-show-scopeā€, kas atvieglo noteiktu iestatÄ«jumu definÄ“Å”anas vietas identificÄ“Å”anu. Git ļauj definēt iestatÄ«jumus dažādās vietās: repozitorijā (.git/info/config), lietotāja direktorijā (~/.gitconfig), visas sistēmas konfigurācijas failā (/etc/gitconfig) un ar komandu palÄ«dzÄ«bu. lÄ«nijas opcijas un vides mainÄ«gie. Izpildot ā€œgit configā€, ir diezgan grÅ«ti saprast, kur tieÅ”i ir definēts vēlamais iestatÄ«jums. Lai atrisinātu Å”o problēmu, bija pieejama opcija ā€œ--show-originā€, taču tā parāda tikai ceļu uz failu, kurā ir definēts iestatÄ«jums, kas ir noderÄ«gi, ja vēlaties rediģēt failu, bet nepalÄ«dz, ja jāmaina vērtÄ«ba, izmantojot ā€œgit configā€, izmantojot opcijas ā€œ--systemā€, ā€œ--globalā€ vai ā€œ-localā€. Jaunā opcija "--show-scope" parāda mainÄ«gā definÄ«cijas kontekstu, un to var izmantot kopā ar -show-origin:

    $ git --list --show-scope --show-origin
    globālais fails:/home/user/.gitconfig diff.interhunkcontext=1
    globālais fails:/home/user/.gitconfig push.default=current
    [ā€¦] local file:.git/config branch.master.remote=origin
    lokālais fails:.git/config branch.master.merge=refs/heads/master

    $ git config --show-scope --get-regexp 'diff.*'
    globālā diff.statgraphwidth 35
    vietējais diff.colormoved līdzenums

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

  • IesieÅ”anas iestatÄ«jumos akreditācijas dati Masku izmantoÅ”ana vietrāžos URL ir atļauta. Jebkurus HTTP iestatÄ«jumus un akreditācijas datus pakalpojumā Git var iestatÄ«t gan visiem savienojumiem (http.extraHeader, credential.helper), gan uz URL balstÄ«tiem savienojumiem (credential.https://example.com.helper, credential.https: //example. com.palÄ«gs). LÄ«dz Å”im aizstājējzÄ«mes, piemēram, *.example.com, bija atļautas tikai HTTP iestatÄ«jumos, bet netika atbalstÄ«tas akreditācijas datu saistÄ«Å”anai. Git 2.26 Ŕīs atŔķirÄ«bas ir novērstas, un, piemēram, lai saistÄ«tu lietotājvārdu visiem apakÅ”domēniem, tagad varat norādÄ«t:

    [akreditācijas dati "https://*.example.com"]

    lietotājvārds = ttaylorr

  • Eksperimentālā atbalsta paplaÅ”ināŔana daļējai klonÄ“Å”anai (daļējiem kloniem) turpinās, ļaujot pārsÅ«tÄ«t tikai daļu datu un strādāt ar nepilnu repozitorija kopiju. Jaunajā laidienā ir pievienota jauna komanda "git sparse-checkout add", kas ļauj pievienot atseviŔķus direktorijus, lai lietotu operāciju "checkout" tikai daļai no darba koka, nevis uzskaitÄ«t visus Ŕādus direktorijus uzreiz, izmantojot komandu "git". rets izrakstÄ«Å”anās komplekts" (varat pievienot pa vienam direktorijai, katru reizi nenorādot visu sarakstu atkārtoti).
    Piemēram, lai klonētu git/git repozitoriju, neizraisot blobs, ierobežojot izrakstÄ«Å”anos tikai ar darba kopijas saknes direktoriju un atseviŔķi atzÄ«mējot izrakstÄ«Å”anos direktorijiem "t" un "Documentation", varat norādÄ«t:

    $ git klons --filter=blob:none --sparse [e-pasts aizsargāts]:git/git.git

    $ cd git
    $ git sparse-checkout init --cone

    $ git rets-checkout pievienot t
    ....
    $ git sparse-checkout pievienot dokumentāciju
    ....
    $ git rets izrakstīŔanās saraksts
    Dokumentācija
    t

  • Komandas ā€œgit grepā€, ko izmanto, lai meklētu gan paÅ”reizējā repozitorija saturā, gan vēsturiskajos labojumos, veiktspēja ir ievērojami uzlabota. Lai paātrinātu meklÄ“Å”anu, bija iespējams skenēt darba koka saturu, izmantojot vairākus pavedienus (ā€œgit grep ā€“threadsā€), taču meklÄ“Å”ana vēsturiskajos labojumos tika veikta ar vienu pavedienu. Tagad Å”is ierobežojums ir noņemts, ievieÅ”ot iespēju paralēli nolasÄ«t no objekta krātuves. Pēc noklusējuma pavedienu skaits ir iestatÄ«ts vienāds ar CPU kodolu skaitu, kas vairumā gadÄ«jumu tagad neprasa skaidri iestatÄ«t opciju ā€œ-threadsā€.
  • Pievienots atbalsts apakÅ”komandu, ceļu, saiÅ”u un citu komandas ā€œgit worktreeā€ argumentu ievades automātiskai pabeigÅ”anai, kas ļauj strādāt ar vairākām repozitorija darba kopijām.
  • Pievienots atbalsts spilgtām krāsām, kurām ir ANSI evakuācijas secÄ«bas. Piemēram, izcelto krāsu iestatÄ«jumos ā€œgit config ā€“colorā€ vai ā€œgit diff ā€“color-movedā€ varat norādÄ«t ā€œ%C(brightblue)ā€, izmantojot opciju ā€œ--formatā€ spilgti zilai krāsai.
  • Pievienota jauna skripta versija fsmonitor-sargs, nodroÅ”inot integrāciju ar mehānismu Facebook Sargs lai paātrinātu failu izmaiņu izsekoÅ”anu un jaunu failu parādÄ«Å”anos. Pēc atjaunināŔanas ir nepiecieÅ”ams git aizstāt āķis repozitorijā.
  • Pievienota optimizācija, lai paātrinātu daļēju klonÄ“Å”anu, izmantojot bitkartes
    (bitkartes iekārtas), lai izvairÄ«tos no pilnÄ«gas visu objektu meklÄ“Å”anas, filtrējot izvadi. Tagad tiek veikta blobu pārbaude (ā€”filter=blob:none un ā€”filter=blob:limit=n) daļējas klonÄ“Å”anas laikā.
    ievērojami ātrāk. GitHub paziņoja par ielāpiem ar Ŕīm optimizācijām un eksperimentālu atbalstu daļējai klonÄ“Å”anai.

  • Komanda "git rebase" ir pārvietota uz citu aizmugursistēmu, izmantojot noklusējuma sapludināŔanas mehānismu (iepriekÅ” izmantots "rebase -i"), nevis "patch+apply". Aizmugursistēmas dažos nelielos veidos atŔķiras, piemēram, pēc darbÄ«bas turpināŔanas pēc konflikta atrisināŔanas (git rebase --continue), jaunā aizmugursistēma piedāvā rediģēt commit ziņojumu, bet vecā vienkārÅ”i izmantoja veco ziņojumu. Lai atgrieztos pie iepriekŔējās darbÄ«bas, varat izmantot opciju "--apply" vai iestatÄ«t konfigurācijas mainÄ«go "rebase.backend" uz "apply".
  • Autentifikācijas parametru apdarinātāja piemērs, kas norādÄ«ts, izmantojot .netrc, ir samazināts lÄ«dz formai, kas piemērota lietoÅ”anai ārpus kastes.
  • Pievienots iestatÄ«jums gpg.minTrustLevel, lai iestatÄ«tu minimālo uzticamÄ«bas lÄ«meni dažādiem elementiem, kas veic ciparparaksta pārbaudi.
  • Pievienota opcija "--pathspec-from-file" "git rm" un "git stash".
  • Testu komplektu uzlaboÅ”ana turpinājās, gatavojoties pārejai uz SHA-2 jaukÅ”anas algoritmu SHA-1 vietā.

Avots: opennet.ru

Pievieno komentāru