In un articolo precedente (https://www.dopsitalia.com/script/82/Migrare-Repository-Git-Azure-DevOps-GitHub.aspx) abbiamo già osservato come sia facile migrare un repository di git. Questo è possibile indipendentemente dalla sorgente, che potrebbe essere su Azure DevOps, così come su BitBucket o altro, perchè alla fine sotto il cofano c'è sempre git come engine.
I repository, però, stanno diventando sempre più complessi e possono contenere anche dati di grandi dimensioni, come immagini di macchine virtuali, sample di dati per l'esecuzione di test, audio, video e così via. Questi dati, solitamente, non vengono conservati come oggetti "standard" di git, ma potrebbero richiedere l'uso di git-lfs, ovvero Git Large File Storage.
Il lavoro di git-lgs è quello di rimpiazzare questi file di grandi dimensioni con dei semplici puntatori all'interno di git, così che si possa fare il clone del repository velocemente, se abbiamo bisogno di una fix, indipendentemente da questi file "pesanti".
Per integrare il codice dell'esempio precedente, nella fase di clone, dobbiamo integrare questi comandi:
git clone --bare <git-url> <folder> cd <folder> git lfs fetch --all
Così facendo, non cloniamo il repository, ma solo i puntatori, inclusi gli oggetti contenuti in git-lfs.
Successivamente, possiamo procedere al push, includendo anche gli oggetti di git-lfs.
git push --mirror <git-url> git lfs push --all <git-url>
L'uso di git-lfs in GitHub è soggetto a limitazioni e costi aggiuntivi in base alla dimensione degli oggetti e alla banda utilizzata nel clone degli oggetti stessi.
Commenti
Per inserire un commento, devi avere un account.
Fai il login e torna a questa pagina, oppure registrati alla nostra community.
Approfondimenti
Creare una libreria CSS universale: Nav menu
Rendere i propri workflow e le GitHub Action utilizzate più sicure
Recuperare l'ultima versione di una release di GitHub
Disabilitare le run concorrenti di una pipeline di Azure DevOps
Recuperare automaticamente un utente e aggiungerlo ad un gruppo di Azure DevOps
Applicare un filtro per recuperare alcune issue di GitHub
Creare una libreria CSS universale: Immagini
Eseguire i worklow di GitHub su runner potenziati
Gestire gli accessi con Token su Azure Container Registry
Ottimizzare le pull con Artifact Cache di Azure Container Registry
Bloccare l'esecuzione di un pod in mancanza di un'artifact attestation di GitHub