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
Cancellare una run di un workflow di GitHub
Come EF 8 ha ottimizzato le query che usano il metodo Contains
Utilizzare EF.Constant per evitare la parametrizzazione di query SQL
Filtrare i dati di una QuickGrid in Blazor con una drop down list
Change tracking e composition in Entity Framework
Recuperare l'ultima versione di una release di GitHub
Utilizzare l'espressione if inline in una pipeline di Azure DevOps
Path addizionali per gli asset in ASP.NET Core MVC
Gestire gli accessi con Token su Azure Container Registry
Usare il colore CSS per migliorare lo stile della pagina
Creare una custom property in GitHub
Simulare Azure Cosmos DB in locale con Docker