rilascio del sistema di controllo distribuito delle versioni . Git è uno dei sistemi di controllo delle versioni più popolari, affidabili e ad alte prestazioni, che offre strumenti flessibili per lo sviluppo non lineare, basati su ramificazione e fusione. Per garantire l'integrità della storia e la resistenza alle modifiche retroattive, viene utilizzata la hash implicita dell'intera storia precedente in ogni commit, è inoltre possibile la verifica tramite firme digitali dei tag e dei commit da parte degli sviluppatori.
Rispetto all'ultima versione, nel nuovo rilascio sono stati introdotti 537 cambiamenti, preparati con la partecipazione di 71 sviluppatori, dei quali 19 hanno partecipato per la prima volta allo sviluppo. Principali :
- Annullata l'inclusione predefinita realizzata nella versione precedente del protocollo di comunicazione Git, che viene utilizzato quando si collega un client a un server Git in remoto. Il protocollo è attualmente considerato non pronto per l'uso predefinito a causa della scoperta di problematiche che richiedono ulteriori considerazioni.
- Aggiunto un insieme di opzioni per la configurazione della connessione SSL quando ci si connette tramite proxy.
- Ampliate le informazioni restituite durante l'uso dei filtri di trasformazione «clean» e «smudge». Ad esempio, ora viene mostrato l'oggetto , in cui compare il blob trasformato.
- Per evitare confusione, nel comando «git describe» viene ora sempre applicata la modalità di output estesa («—long»), se viene individuato un tag sostituito legato al commit (in passato, un tag firmato o annotato che descriveva il commit veniva visualizzato anche se era stato rinominato o spostato nella gerarchia «refs/tags/», e il comando «git show tag^0» non funzionava come previsto — «refs/tags/tag» non veniva trovato o addirittura veniva restituito un altro tag).
- Durante l'esecuzione di «git pull» ora viene emesso un avviso se la variabile di configurazione pull.rebase non è esplicitamente impostata e non vengono applicate le opzioni «—[no-]rebase» o «—ff-only». Per sopprimere l'avviso da parte di coloro che non intendono eseguire l'operazione di rebase, è possibile impostare il valore della variabile su «false».
- Eseguita una revisione delle opzioni di «git pull» condivise con «git fetch». Documentate precedenti opzioni simili non menzionate e garantita la trasmissione delle opzioni dimenticate a «git fetch».
- Nel comando «git rebase» è stata aggiunta l'opzione «—no-gpg-sign» per sovrascrivere l'impostazione «commit.gpgSign».
- In «git format-patch» è stata aggiunta la possibilità di visualizzare le intestazioni «From:» e «Subject:» come sono, senza la trasformazione di caratteri non presenti nella codifica ASCII.
- In «git log» è stata aggiunta l'opzione «—show-pulls», che consente di visualizzare non solo i commit in cui sono state effettuate le modifiche, ma anche il commit per il merge di queste modifiche da un ramo separato.
- Unificata la gestione dell'input interattivo in tutti i componenti e aggiunto il richiamo di fflush() dopo aver mostrato il prompt di input, ma prima dell'operazione di lettura.
- In «git rebase», è permesso applicare nuovamente tutti i commit locali senza eseguire prima l'operazione «checkout», anche se alcuni di essi erano stati precedentemente inviati all'upstream.
- Il valore della variabile di configurazione ‘pack.useSparse’ è stato cambiato in ‘true’ per abilitare per default le ottimizzazioni precedentemente considerate sperimentali.
- È stata aggiunta l'opzione «—autostash» in «git merge».
- Migliorata l'interfaccia di «sparse-checkout».
- In «git update-ref —stdin» sono state aggiunte nuove azioni,
che consentono di controllare direttamente le transazioni di aggiornamento dei riferimenti, ad esempio per implementare un aggiornamento atomico a due fasi dei riferimenti in più repository. - Aggiunti modelli userdiff per documenti Markdown.
- Rimosso il limite di esclusione di tutti i percorsi nei modelli sparse-checkout, che portava a un albero di lavoro vuoto.
- L'operazione «git restore —staged —worktree» ora utilizza per default il contenuto del branch «HEAD», invece di restituire un errore.
- Continua il lavoro per passare all'algoritmo di hash SHA-2 al posto di SHA-1.
- Rivista la codifica per l'interazione con GnuPG.
Fonte: opennet.ru
