Rilascio del sistema di gestione del codice sorgente Git 2.44

Dopo tre mesi di sviluppo, è stata pubblicata la versione 2.44 del sistema di gestione distribuita dei codici sorgente Git. Git è uno dei sistemi di versionamento più popolari, affidabili e ad alte prestazioni, che offre strumenti flessibili per lo sviluppo non lineare, basati su ramificazioni e fusioni. Per garantire l'integrità della cronologia e la resistenza alle modifiche "retroattive", viene utilizzato un hashing implicito dell'intera cronologia precedente in ogni commit; è anche possibile la verifica tramite firme digitali di tag e commit da parte dei singoli sviluppatori. Il codice di Git è distribuito sotto licenza GPLv2+.

Rispetto alla versione precedente, nella nuova versione sono stati introdotti 503 cambiamenti, sviluppati con la partecipazione di 85 sviluppatori, di cui 34 hanno partecipato per la prima volta allo sviluppo. Le principali novità sono:

  • È stata aggiunta una nuova command "git replay", che può essere utilizzata come alternativa a "git rebase" e impiegata per ricreare la cronologia su server senza albero di lavoro (bare-repository, privo di albero di lavoro), gestione simultanea di più rami, esecuzione dell'operazione rebase su rami diversi da quelli attualmente estratti, o semplicemente per accelerare le operazioni di fusione.
  • Aggiunta del supporto per il sistema di integrazione continua GitLab CI.
  • Aggiunto il supporto per gli attributi dei percorsi nelle comandi 'git add' e 'git stash', definiti analogamente al comando 'git show'. Ad esempio, 'git add ':(attr:~binary)'' può essere utilizzato per aggiungere tutti i file di testo (non binari) all'indice. Inoltre, in questa nuova versione è stato introdotto l'attributo 'builtin_objectmode' per filtrare i percorsi dei file in base ai permessi. Ad esempio, 'git add ':(attr:builtin_objectmode=100755)'' può essere utilizzato per aggiungere tutti i file eseguibili.
  • È stata aggiunta la supporto per il riutilizzo di oggetti distribuiti su più pack-file, per i quali è presente un indice aggregato (multi-pack-index) con dati sulla disponibilità degli oggetti (ottimizzazione che consente di fare riferimento all'uso di dati già presenti nei pack-file invece di trasferire effettivamente i dati). A partire dalla versione 2.44, git può ora gestire il riutilizzo di oggetti attraverso più pack-file senza la necessità di riunire il repository in un unico pack-file. Per abilitare questa nuova funzionalità, è necessario eseguire i comandi: git config —global pack.allowPackReuse multi git multi-pack-index write —bitmap

    Dopo di che, il numero di pack-file da cui sono riutilizzati gli oggetti può essere tracciato nel valore "pack-reused … (from N)", mostrato durante l'esecuzione di "git push".

  • Il comando "git rebase —autosquash" può ora essere utilizzato per operazioni di rebase in modalità non interattiva, consentendo di eseguire il rebase e applicare rapidamente le correzioni fixup senza esaminare l'elenco delle modifiche e senza modificare la variabile di ambiente GIT_SEQUENCE_EDITOR.
  • Nel comando «git merge-file» è stata aggiunta l'opzione «—diff-algorithm» per selezionare un algoritmo alternativo per la valutazione delle differenze tra i file.
  • Nel comando «git checkout -B <branch> [<start-point>]» è vietato aggiornare ed estrarre rami che utilizzano un'altra area di lavoro. Per ripristinare il comportamento precedente è stata aggiunta l'opzione «—ignore-other-worktrees».
  • È stata aggiunta la possibilità di impostare il valore «true» per l'impostazione «git config advice.pushAlreadyExists», che rimuove dal messaggio di suggerimento (hint) le istruzioni per disabilitarlo («Disabilita questo messaggio con…»), che occupano spazio sullo schermo.
  • Ottimizzata l'esecuzione del comando «git for-each-ref» con l'opzione «—no-sort», che ora produce un'uscita in ordine indeterminato (in precedenza, specificando «—no-sort», veniva comunque applicata una sorta alfabetica). Dopo le ottimizzazioni, l'applicazione di «—no-sort» ora accelera «git for-each-ref» di circa il 20% nei repository con un numero elevato di riferimenti.
  • Nel backend di gestione delle credenziali wincred è stata aggiunta la supporto per l'aggiornamento dei token OAuth, in modo simile a come è implementato nei backend credential-cache e credential-libsecret.
  • In «git fetch» è stata aggiunta la supporto per il parametro di configurazione «fetch.all», che sarà elaborato in modo simile all'aggiunta dell'opzione «—all» nella riga di comando.

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