Disponibile il sistema di controllo delle versioni Git 2.43

Dopo tre mesi di sviluppo, è stata pubblicata la versione 2.43 del sistema distribuito di gestione dei codici sorgente Git. Git è uno dei sistemi di controllo versione più popolari, affidabili e performanti, che offre strumenti flessibili per lo sviluppo non lineare, basati su ramificazioni e fusioni di rami. Per garantire l'integrità della storia e la resistenza alle modifiche retroattive, viene utilizzato un hashing implicito dell'intera storia precedente in ogni commit, con la possibilità di autenticare tramite firme digitali i singoli tag e commit da parte degli sviluppatori.

Rispetto alla versione precedente, la nuova versione incorpora 464 cambiamenti, sviluppati con la partecipazione di 80 sviluppatori, dei quali 17 hanno partecipato per la prima volta alla progettazione. Le principali novità:

  • Nel comando «git repack» sono state aggiunte le opzioni «--filter» e «--filter-to», che consentono di rieseguire la compressione del repository tenendo conto di un filtro di oggetti specificato, e, se necessario, spostare in una posizione separata gli oggetti che non soddisfano tale filtro. Le opzioni possono essere utilizzate per separare il repository in base a criteri specifici (ad esempio, per rimuovere oggetti non necessari o troppo grandi), mantenendo la possibilità di accesso a tutte le parti tramite il cloning parziale. Ad esempio, per mantenere nel repository blob di dimensioni inferiori a 1 MB e spostare in un repository separato gli oggetti più grandi, è possibile eseguire: $ git init --bare ../backup.git $ git repack -ad --filter='blob:limit=1m' \ --filter-to=../backup.git/objects/pack/pack

    L'inizializzazione del repository tramite cloning parziale consente di lavorare con una copia incompleta del repository, gestendo correttamente le richieste per oggetti mancanti (alla richiesta di oggetti mancanti, questi verranno caricati on-the-fly secondo necessità).

  • È stata aggiunta la possibilità di lavorare con più file pack contenenti informazioni sugli oggetti inaccessibili («cruft packs»), a cui non fanno riferimento rami o tag nel repository. Con la nuova opzione «git repack —max-cruft-size» è possibile definire la dimensione massima di un singolo file pack e separare il database degli oggetti inaccessibili in una serie di file pack di piccole dimensioni. L'utilizzo di più piccoli file pack anziché uno grande consente di ridurre significativamente le operazioni di input/output durante la ripackaging di repository con un numero elevato di oggetti inaccessibili, poiché per ogni operazione di ripackaging non sarà necessario riscrivere tutti i dati.
  • È stata aggiunta il riconoscimento dei tentativi di eseguire una doppia annullamento del commit tramite «git revert» e il conto di questo fatto nella generazione del messaggio di annullamento (nella ripetizione di «git revert», anziché «Revert: Revert: fix bug», verrà registrato «Reapply fix bug», e se l'operazione di annullamento viene eseguita per la terza volta — «Revert Reapply fix bug»). $ git revert —no-edit HEAD >/dev/null $ git revert —no-edit HEAD >/dev/null $ git log —oneline a300922 (HEAD -> main) Reapply «fix bug» 0050730 Revert «fix bug» b290810 fix bug
  • È consentito l'uso combinato delle opzioni «—rfc» e «—subject-prefix». Ad esempio, per generare un'email con il prefisso «[RFC PATCH bpf-next]» nell'oggetto del messaggio, puoi specificare: $ git format-patch —subject-prefix=»PATCH bpf-next» —rfc
  • Nel comando «git log», è consentito utilizzare il segnaposto «%(decorate)» per mostrare i nomi dei branch collegati quando si definisce il formato utilizzando l'opzione «—format», ad esempio: $ git log —format=’%cr%(decorate) (%h) %s’ 3 giorni fa (HEAD -> master, origin/master, origin/HEAD) (e0939bec27) RelNotes: piccole correzioni di wording nelle note di rilascio della versione 2.43.0 7 giorni fa (tag: v2.43.0-rc1) (dadef801b3) Git 2.43-rc1 7 giorni fa (8ed4eb7538) Merge branch ‘tb/rev-list-unpacked-fix’
  • In «git for-each-ref» e comandi simili è stata aggiunta la possibilità di applicare le regole .mailmap ai formati specificati attraverso l'opzione «—format», come «%(authorname)» e «%(committeremail)».

Fonte: opennet.ru

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