Dopo tre mesi di sviluppo, è stato pubblicato il rilascio del sistema distribuito di gestione dei testi sorgente Git 2.40. Git è uno dei sistemi di gestione delle versioni più popolari, affidabili e ad alte prestazioni, che offre strumenti flessibili per lo sviluppo non lineare, basati su branch e merging. Per garantire l'integrità della cronologia e la resilienza alle modifiche retroattive, viene utilizzato un hashing implicito dell'intera cronologia precedente in ogni commit. È anche possibile verificare le firme digitali degli sviluppatori per singoli tag e commit.
Rispetto al rilascio precedente, nella nuova versione sono stati incorporati 472 cambiamenti, effettuati con la partecipazione di 88 sviluppatori, di cui 30 hanno partecipato per la prima volta. Le principali novità sono:
- Nel comando git-jump è stato aggiunto il supporto per l'editor Emacs, oltre all'editor Vim già supportato. Git-jump è utilizzato per passare all'editor di testo informazioni sulle posizioni nel file per una navigazione rapida e per passare alla modifica del codice in un determinato punto. Ad esempio, git-jump può essere utilizzato per passare nell'editor tra le righe ottenute dall'analisi dei conflitti di merge, dalla valutazione delle differenze e dall'esecuzione di ricerche (è possibile eseguire "git jump grep foo" e poi passare rapidamente tra le posizioni in cui appare il pattern "foo").
- Nel comando "git cat-file" è stato assicurato il supporto per l'applicazione delle opzioni "-s" e "--batch-check" insieme a "--use-mailmap" per determinare correttamente la dimensione dell'oggetto tenendo conto della sostituzione dell'identificatore effettuata sulla base delle associazioni email nel file mailmap (in precedenza, l'opzione "--use-mailmap" influenzava solo l'output del contenuto, senza considerare che le coppie nome/email vecchie e sostituite potevano avere dimensioni diverse).
- Nel comando "git check-attr" è stata aggiunta l'opzione "--source" per scegliere l'albero con il file " .gitattributes" necessario, che sarà utilizzato per determinare gli attributi attuali in presenza di più file " .gitattributes" nel repository.
- L'implementazione del comando "git bisect" è stata riscritta in linguaggio C e integrata nel file eseguibile principale di git (in precedenza, il comando era implementato come uno script Shell).
- Rimossa la vecchia implementazione del comando «git add —interactive», scritta in Shell (in git 2.26 è stata proposta una versione integrata in C, ma la vecchia implementazione in Shell è rimasta disponibile e regolata dall'impostazione add.interactive.useBuiltin).
- Al comando «git merge-tree» è stata aggiunta l'opzione ‘—merge-base’.
- Al comando «git range-diff» è stata aggiunta l'opzione «—abbrev=».
- È stata aggiunta la possibilità di ridefinire l'editor delle liste per la modalità interattiva del comando rebase impostando la variabile GIT_SEQUENCE_EDITOR tramite il comando «git var», analogamente a «git var GIT_EDITOR».
- Nel sottosistema delle credenziali è stata aggiunta la supporto per le password con scadenza limitata.
- Negli script di completamento automatico per Bash è stata implementata una modalità di funzionamento senza distinzione tra maiuscole e minuscole.
Fonte: opennet.ru
