Uscita del sistema di gestione delle versioni Git 2.32

Dopo tre mesi di sviluppo, è stata pubblicata la versione distribuita del sistema di gestione delle versioni Git 2.32. Git è uno dei sistemi di gestione delle versioni più popolari, affidabili e performanti, che offre strumenti flessibili per lo sviluppo non lineare basati su ramificazioni e fusioni. Per garantire l'integrità della cronologia e la resilienza alle modifiche retroattive, viene utilizzato un hashing implicito dell'intera cronologia precedente in ogni commit, e è possibile anche certificare con firme digitali gli specifici tag e commit degli sviluppatori.

Rispetto all'ultima versione, nella nuova edizione sono stati adottati 617 cambiamenti, preparati con la partecipazione di 100 sviluppatori, di cui 35 hanno partecipato per la prima volta allo sviluppo. Le principali novità sono:

  • Nel comando «git commit» è stata aggiunta l'opzione «—trailer [=]», che semplifica l'allegare al commit informazioni strutturate personali (trailer) nel formato chiave/valore, che possono essere successivamente elaborate con il comando «interpret-trailers».
  • Invece del meccanismo GIT_CONFIG_NOSYSTEM, utilizzato per evitare la lettura del file di configurazione globale di sistema, è stato proposto di utilizzare il meccanismo GIT_CONFIG_SYSTEM, che consente di specificare esplicitamente da quale file caricare le impostazioni di sistema, oltre al parametro GIT_CONFIG_GLOBAL per sovrascrivere le impostazioni associate a singoli utenti nel $HOME/.gitconfig. Assegnare un valore vuoto alla variabile GIT_CONFIG_SYSTEM cambia il comportamento in equivalente a GIT_CONFIG_NOSYSTEM.
  • Utilizzando la seconda versione del protocollo di comunicazione Git, durante l'esecuzione di «git push» è stata implementata la determinazione dell'antenato comune sul lato ricevente, il che ha permesso di migliorare l'efficienza di «git push» al livello di «git fetch» ed escludere il caricamento di oggetti non necessari.
  • È stata aggiunta un'interfaccia IPC semplice, che consente di creare servizi come fsmonitor.
  • È stata interrotta la gestione dei file «.gitattributes», «.gitignore» e «.mailmap» se sono collegamenti simbolici.
  • Per il trasporto HTTP è stato aggiunto il supporto per la cache delle password, utilizzate con successo per sbloccare il certificato.
  • Nel comando «git stash show» è stata implementata la possibilità di visualizzare la parte non tracciata dello storage dei file temporaneamente rimossi.
  • È stata proposta una strategia di ri-imballaggio avanzata per il repository nel comando «git repack», che riduce il consumo di risorse durante il ri-imballaggio.
  • Nel comando «git commit» è stata implementata una variante estesa dell'opzione «—fixup» (creazione di un commit per «rebase —autosquash») — «—fixup=(reword|amend):», che offre la scelta di modificare solo il messaggio nel log oppure il messaggio e il contenuto.
  • Nel comando «git send-email» è stata considerata l'impostazione dell'opzione core.hooksPath.
  • Nell'opzione «git format-patch -v» è consentito l'uso di contatori che non sono numeri interi.
  • Nel comando «git clone» è stata aggiunta l'opzione «—reject-shallow», che vieta il clone dai repository in modalità shallow (senza la cronologia completa delle modifiche).
  • Nel programma «gitweb» è stata aggiunta una modalità di nascondimento delle email, che sostituisce le stringhe simili alle email durante l'output.
  • È stata modificata la logica di gestione del comando «git apply —3way», che ora tenta prima di applicare l'algoritmo di fusione a tre vie e solo in caso di errore o conflitto ritorna all'applicazione normale del patch (prima era l'opposto).
  • Nel comando «git apply» è consentita la specifica simultanea delle opzioni «—3way» e «—cached».
  • Nel Userdiff sono stati aggiunti dei modelli per il linguaggio «Scheme».
  • Nel comando «git log» è stata aggiunta l'opzione «—diff-merges=» e l'impostazione log.diffMerges per scegliere la modalità predefinita.
  • Nei comandi «git add» e «git rm» è stata aggiunta una protezione aggiuntiva contro la modifica dei dati nei percorsi al di fuori dell'area di operazione del clone parziale (sparse checkout).
  • Nel comando «git rev-list» è stata aggiunta l'opzione «—filter=object:type=» per escludere un certo tipo di oggetti dal pack-file generato dal comando pack-objects.
  • Nel comando «git pack-objects» è vietato specificare valori negativi nelle opzioni che accettano valori numerici, come «—window» e «—depth».

Fonte: opennet.ru

Acquista hosting affidabile per siti web con protezione DDoS, VPS VDS server 🔥 Acquista hosting affidabile per siti web con protezione DDoS, VPS VDS server | ProHoster