Git 2.31 è ora disponibile e arriva con la manutenzione git

Pochi giorni fa è stato annunciato il rilascio della nuova versione di Git 2.3, uno dei sistemi di controllo delle versioni più popolari, affidabili e ad alte prestazioni, che fornisce strumenti di sviluppo non lineari flessibili basati su branching e merging.

Rispetto alla versione precedente, sono state adottate 679 modifiche nella nuova versione, preparato con la partecipazione di 85 sviluppatori, di cui 23 hanno partecipato per la prima volta allo sviluppo.

Punti salienti di Git 2.31

In questa nuova versione di Git 2.31 viene evidenziata l'aggiunta del comando "git maintenance" che consente il lavoro periodico su sistemi che non supportano cron. Ad esempio, con il nuovo comando, è possibile organizzare l'avvio periodico del processo di creazione del pacchetto del repository in modo da non dover attendere il completamento del blocco del repository quando il pacchetto viene eseguito automaticamente quando vengono eseguiti più comandi.

Un altro cambiamento che spicca è quello aggiunto il supporto per mantenere un indice inverso su disco (recensione) per i file del pacchetto, poiché Git memorizza tutti i dati sotto forma di oggetti, che vengono memorizzati in file separati. Per migliorare l'efficienza del lavoro con il repository, gli oggetti vengono inoltre inseriti nei file del pacchetto, in cui le informazioni vengono presentate sotto forma di un flusso di oggetti che vengono seguiti uno dopo l'altro.

Per ogni file di pacchetto, viene creato un file di indice (.idx), che consente di utilizzare l'identificatore di oggetto per determinare molto rapidamente l'offset nel file del pacchetto in cui è memorizzato questo oggetto. L'indice inverso (.rev) proposto in Git 2.31 mira a semplificare il processo di determinazione di un identificatore di oggetto dalle informazioni sulla posizione dell'oggetto in un file di pacchetto.

In precedenza, tale conversione veniva eseguita al volo durante l'analisi da un file di pacchetto ed è stato archiviato solo in memoria, che non consentiva il riutilizzo di detti indici e costringeva a generare l'indice di volta in volta. L'operazione di costruzione di un indice è ridurre per costruire un array di coppie di posizioni degli oggetti e ordinarlo in base alla posizione, il che può richiedere molto tempo per file di pacchetti di grandi dimensioni.

D'altra parte, possiamo trovarlo ottimizzazioni delle prestazioni aggiunte in base all'apparenza nel formato file del grafico di conferma, che serve per ottimizzare l'accesso alle informazioni sulle conferme, nuovi dati sulla generazione del numero di conferme, che possono essere utilizzati per velocizzare le operazioni aggiuntive con le conferme.

Inoltre, aggiunta la possibilità di sovrascrivere il nome del ramo predefinito nei nuovi repository (configurazione init.defaultBranch). Quando si accede a repository esterni, git prova a controllare il ramo a cui punta HEAD, cioè, se il server esterno utilizza il ramo "main" per impostazione predefinita, l'operazione "git clone" proverà a trovare "main" localmente.

Delle altre modifiche che risaltano:

  • L'opzione "–disk-use" aggiunto al comando "git rev-list" per visualizzare un riepilogo delle dimensioni degli oggetti.
  • Il supporto per la libreria di espressioni regolari deprecata PCRE1 è stato rimosso.
  • Fornita la possibilità di vietare con forza l'uso di scorciatoie, agendo indipendentemente dall'algoritmo di hashing. Il divieto si abilita assegnando il valore "no" al parametro core.abbrev.
  • L'opzione "–path-format" è stata aggiunta al comando "git rev-parse" per definire esplicitamente l'output di percorsi relativi o assoluti.
  • Gli script di completamento automatico di Bash facilitano l'aggiunta di regole di completamento per i sottocomandi "git" personalizzati.
  • Aggiunta l'opzione "–stdin" al comando "git bundle" per leggere i collegamenti dal flusso di input standard.
  • Le opzioni "–left-only" e "–right-only" sono state aggiunte al comando "git range-diff" per mostrare solo un lato dell'intervallo confrontato.
  • Aggiunta l'opzione "–skip-to = »Al comando« git difftool »per riprendere una sessione interrotta da un percorso arbitrario.
  • Il Codice di condotta (Codice di condotta), che definisce i principi di base per la risoluzione dei conflitti tra sviluppatori, è stato aggiornato alla versione 2.0 (in precedenza era utilizzata la versione 1.4).

Infine se vuoi saperne di più, puoi consultare il seguente collegamento.


Lascia un tuo commento

L'indirizzo email non verrà pubblicato. I campi obbligatori sono contrassegnati con *

*

*

  1. Responsabile dei dati: Miguel Ángel Gatón
  2. Scopo dei dati: controllo SPAM, gestione commenti.
  3. Legittimazione: il tuo consenso
  4. Comunicazione dei dati: I dati non saranno oggetto di comunicazione a terzi se non per obbligo di legge.
  5. Archiviazione dati: database ospitato da Occentus Networks (UE)
  6. Diritti: in qualsiasi momento puoi limitare, recuperare ed eliminare le tue informazioni.