git 2.54

git 2.54

Intruduttu versione di u sistema di gestione di u codice surghjente distribuitu git 2.54Git hè assai pruduttivu è furnisce capacità di sviluppu non lineare basate nantu à a ramificazione è a fusione. Per assicurà l'integrità storica è a resilienza à i cambiamenti retroattivi, usa l'hashing implicitu di tutta a storia precedente in ogni commit, è ancu firme digitali di tag è commit individuali. Codice Git distribuitu da licenziatu sottu GPLv2+.

In paragone cù a versione precedente, a nova versione include 770 cambiamenti preparati cù a participazione di 137 sviluppatori (66 di i quali eranu novi à u sviluppu Git).

menu innovazioni:

  • U cumandamentu " hè statu implementatustoria di git", chì furnisce capacità sperimentali per riscrive a storia di i cambiamenti, più simplice è sicura Hè più faciule d'utilizà chè u rebase di i commits cù u cumandamentu git rebase. Fornisce duie operazioni:

    • riformulazione di a storia di git Per riscrive u missaghju in u commit specificatu senza cambià l'arburu di travagliu o l'indice (eccettu per a nota, u restu ferma intattu). Per esempiu, per curregge un errore di battitura.
    • divisione di a storia di git per dividisce interattivamente u commit specificatu in dui commit diversi, spustendu e parti selezziunate da u commit originale à u commit supplementu.

    Si prevede chì più cumandamenti saranu aghjunti in e versioni future: git history fixup per riparà un commit, git history drop per rimuovere un commit, git history reorder per cambià l'ordine di i commit è git history squash per schiaccià i commit.

  • Un novu metudu per definisce i gestori hè statu implementatu (ganciu) in i fugliali di cunfigurazione. Invece di piazzà i script cù i gestori in u cartulare .git/hooks in ogni repositoriu, i cumandamenti per invucà i gestori ponu avà esse specificati direttamente in i fugliali di cunfigurazione. I paràmetri ponu esse ligati à un repositoriu o specificati in i fugliali di cunfigurazione chì s'applicanu à tutti i repositori (/etc/gitconfig) o i repositori di l'utilizatori (~/.gitconfig). Parechji gestori ponu esse ligati à un unicu avvenimentu. I script da .git/hooks cuntinueghjanu à esse chjamati, ma sò eseguiti dopu à i gestori da i fugliali di cunfigurazione. Per vede a lista di i gestori, aduprate u cumandamentu git hook list, è per disattivà selettivamente l'invucazione di i gestori, aduprate l'impostazione hook. .attivatu = falsu:

[hook "linter"] event = pre-commit command = ~/bin/linter --cpp20 [hook "no-leaks"] event = pre-commit command = ~/bin/leak-detector $ git hook list pre-commit global linter ~/bin/linter --cpp20 local no-leaks ~/bin/leak-detector

  • In una squadra "mantenimentu di gitA strategia geometrica hè attivata per difettu (git config set maintenance.strategy geometric), ciò chì riduce u tempu di mantenimentu per i grandi monorepositori. In paragone cù a strategia aduprata prima, chì aduprava una logica simile à u cumandamentu git gc, a nova strategia evita di riimballà tutti l'uggetti è elimina l'operazioni chì richiedenu troppu risorse cum'è a fusione di tutti i packfiles (induve pussibule, a fusione hè fatta in parte è senza eliminà l'uggetti sguassati).
  • A basa di dati di l'uggetti (ODB) è e so API assuciate sò state migrate versu una nova architettura basata annantu à backend inseribili. Questa ristrutturazione astrae u furmatu di almacenamentu di l'uggetti è permetterà l'implementazione di funziunalità cum'è backend alternativi è furmati d'uggetti, per esempiu, per un almacenamentu più efficiente di grandi fugliali binari o per ottimizà e prestazioni di grandi servizii di hosting Git.
  • In una squadra "struttura di u repositoriu git", chì mostra infurmazioni nantu à a struttura di u repositoriu, furnisce una visualizazione micca solu di a dimensione generale, ma ancu di l'uggetti più grandi di ogni tipu, ciò chì permette di stimà a dimensione senza aduprà un'utilità di terze parti. git-sizer.

Struttura di u repositoriu $git... | * Oggetti i più grandi | | | * Commits | | | * Dimensione massima [1] | 17.23 KiB | | * Parenti massimi [2] | 10 | | * Arburi | | | * Dimensione massima [3] | 58.85 KiB | | * Entrate massime [4] | 1.18k | | * Blobs | | | * Dimensione massima [5] | 1019.51 KiB | | * Tags | | | * Dimensione massima [6] | 7.13 KiB |

  • In una squadra "git replay", utilizatu invece di git rebase per ricreà a storia nantu à un servitore senza un arburu funzionale, hà attivatu l'aghjurnamenti atomichi di riferimentu per difettu (invece di elencà i cumandamenti update-ref da eseguisce manualmente), hà implementatu una opzione --revert per annullà i cambiamenti da una seria di commit, hà assicuratu chì i commit vioti risultanti sò scartati, è hà resu pussibule di ricreà a storia finu à u commit radice.
  • IN "git rev-list" è cumandamenti simili, l'opzione --maximal-only hè stata aghjunta per mustrà solu i commit chì ùn sò micca raggiungibili da altri commit.
  • À a squadra "infurmazioni di u repositoriu git» aghjunta l'opzione --keys per elencà tutte e chjave cunnisciute.
  • In una squadra "git aghjunghje -pQuandu si naviga trà i blocchi di codice cù i tasti "J" è "K", i blocchi digià appruvati è saltati sò avà marcati. L'opzione --no-auto-advance hè stata aghjunta per disattivà l'avanzamentu automaticu à u schedariu prossimu, chì vi permette di rivisità i schedarii precedenti prima di fà un commit.
  • L'interfaccia web hè stata ottimizzata.gitweb» per travaglià cù i dispusitivi mobili.
  • In una squadra "git apply –directory» assicura chì i percorsi di file cum'è ./un/../normalized/path sò nurmalizati prima di l'usu.
  • A capacità di aghjunghje sottucumandamenti persunalizati via u piazzamentu di file git hè documentata. in u cartulare cù i fugliali eseguibili.
  • À a squadra "git mandà-e-mail» Aggiuntu u supportu per i certificati di i clienti.
  • Per a squadra "statutu di git» L'impostazione status.compareBranches hè stata implementata, chì vi permette di specificà e branche cù e quali a branca attuale serà paragunata:

[status] paragunate i rami = @{upstream} @{push}

  • IN "git rebase» aghjunta l'opzione --trailer per simplificà l'aghjunta di metadati à tutti i commit:

git rebase --trailer "Rivistu da: Test "`

  • À a squadra "git fast-import» Aghjunta a pussibilità di rimpiazzà e firme per i commit chì sò diventati invalidi dopu l'impurtazione.
  • Aghjuntu u supportu per a cumpattazione di l'indice multi-pack (MIDX), chì combina picculi strati d'indice MIDX chì cuntenenu informazioni nantu à a dispunibilità di l'uggetti è e mappe di bit associate, riducendu u numeru di strati accumulati in i repositori di longa data.
  • U cumandamentu git backfill permette avà di specificà revisioni (intervalli di commit) è maschere di percorsu (specificazione di percorsu) per limità e parte scaricate di a storia di i cambiamenti:

git backfill main~100..main git backfill — '*.c'

  • Aggiunte forme alternative per chjamà u cumandamentu git config list - git config -l è git config --list.
  • I caratteri non ASCII sò permessi in i nomi di l'alias di cumanda specificati in u schedariu di cunfigurazione:

[alias "get"] cumanda = recuperà

  • A visualizazione di e firme chì e so chjave GPG sò scadute ma eranu valide à u mumentu di a firma di u commit hè stata cambiata. Queste firme sò avà visualizate cum'è valide cù una nota nantu à a scadenza di a chjave (prima, eranu evidenziate in rossu, dendu l'impressione chì ùn eranu valide).
  • Quandu si accede à i repositori via HTTP, u codice d'errore 429 (Troppu Richieste) hè avà trattatu currettamente. E richieste chì fiascanu cù questu errore ùn sò più trattate cum'è fatali, ma cum'è errori tempuranei per i quali l'operazione deve esse ritentata dopu un certu periodu di tempu. U ritardu di ripetizione hè specificatu cù l'opzione http.retryAfter, u numeru di tentativi hè http.maxRetries, è u timeout hè http.maxRetryTime.

Source: linux.org.ru

Cumprate un hosting affidabile per i siti cù prutezzione DDoS, servitori VPS VDS 🔥 Cumprate un hosting di siti web affidabile cù prutezzione DDoS, servitori VPS VDS | ProHoster