Uscita del sistema di controllo delle versioni Git 2.50

È stata pubblicata la versione distribuita del sistema di controllo delle versioni Git 2.50. Git si distingue per le sue elevate prestazioni e offre strumenti per lo sviluppo non lineare basati su ramificazioni e fusioni. Per garantire l'integrità della cronologia e la resistenza alle modifiche retroattive, utilizza l'hashing implicito dell'intera cronologia precedente in ogni commit, oltre alla certificazione con firme digitali dei singoli tag e commit da parte degli sviluppatori. Il codice di Git è distribuito sotto licenza GPLv2+.

Rispetto alla versione precedente, questa nuova versione include 621 modifiche, frutto del lavoro di 98 sviluppatori, di cui 35 partecipano per la prima volta allo sviluppo. Le principali novità:

  • È stata ampliata la possibilità di suddividere in più file pack gli oggetti irraggiungibili («cruft packs»), ai quali non esistono riferimenti nel repository (non sono referenziati da branch o tag). L'uso di più piccoli file pack anziché uno grande consente di ridurre significativamente le operazioni di input/output durante il reimpacchettamento di repository con un gran numero di oggetti irraggiungibili, poiché per ogni operazione di reimpacchettamento non è necessario riscrivere tutti i dati.

    Nella nuova versione è stata proposta l'opzione «—combine-cruft-below-size», che consente di organizzare la fusione dei file pack esistenti, il cui peso non supera il valore specificato. A differenza della precedente opzione «—max-cruft-size», la nuova opzione «—combine-cruft-below-size» non limita la dimensione massima del file pack risultante, rendendo più efficace la fusione dei file pack nei repository con un numero elevato di oggetti irraggiungibili, distribuiti su più file pack.

  • È stata aggiunta la supporto sperimentale per l'aggiornamento incrementale degli indici multi-pack MIDX, in cui ogni livello dell'indice MIDX contenente informazioni sulla disponibilità degli oggetti viene collocato in un file bitmap separato. Nelle repository molto grandi, la versione realizzata degli indici permette di aggiungere nuove bitmap di disponibilità degli oggetti in modo rapido ed efficiente man mano che arrivano i commit.
  • Dalla base di codice è stato rimosso il vecchio motore per le operazioni di merge 'recursive', sostituito da un motore completamente riprogettato 'ORT' (Ostensibly Recursive’s Twin), che offre prestazioni superiori, funzionalità migliori e una maggiore facilità di manutenzione. ORT consente di determinare la possibilità di unione di due oggetti senza creare nuovi oggetti nella repository (con il vecchio motore era necessaria l'esecuzione del comando 'git merge-tree —write-tree', che registrava nuovi oggetti nella repository). In Git 2.50, nel comando merge-tree è stata implementata l'opzione '—quiet', che consente di verificare la possibilità di unione basandosi sul codice di ritorno senza scrivere dati nella repository.
  • In «git cat-file —batch» and similar commands, the option «—filter» has been added, allowing certain objects to be skipped during the operation. git cat-file —batch-check='%(objectname)' —filter='object:type=tree'
  • The command «git maintenance» has implemented three new actions: worktree-prune, rerere-gc, and reflog-expire. The worktree-prune action is intended for removing outdated or corrupted worktrees in the repository. The rerere-gc action removes old records left over from resolving merge conflicts. The reflog-expire action removes outdated inaccessible objects from the reflog.
  • The command «git reflog drop» has been added, which removes all reflog data for the specified branch.
  • Optimizations have been made to the processing and usage of references, such as implementing reference prefix caching, eliminating unnecessary checks when executing the «git update-ref» command, and increasing the efficiency of searching for existing reference iterators.
  • KeepAlive settings have been added for the cURL library: http.keepAliveIdle, http.keepAliveInterval, and http.keepAliveCount.
  • In the command «git rev-list», the ability to output in a machine-readable format has been implemented, where each field is separated by a NUL character.
  • Il linguaggio Perl è escluso dalle dipendenze necessarie per gli strumenti di gestione della documentazione e per l'esecuzione del set di test ("make test"). Molti one-liner Perl nei test sono stati sostituiti con funzioni shell o riscritti in linguaggio C.
  • Aggiunto un elaboratore userdiff per il formato dei file di configurazione ".ini".
  • Nel comando send-email è stata migliorata la compatibilità con il server SMTP di Outlook.

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