Quando lavoriamo su un repository privato utilizzato per i nostri test o sviluppi personali, potremmo caricare alcuni dati privati. I caricamenti di file indesiderati in più commit aumenteranno drasticamente le dimensioni del repository.
Una volta terminato il lavoro di sviluppo e quando decideremo di rendere pubblico il repository, dovremo considerare la rimozione dei dati privati impegnati nel repository in fase di sviluppo.
Possiamo rimuoverlo facilmente dall'applicazione sul nostro computer di sviluppo e dare un commit al repository. Ma i dati rimangono ancora nei commit precedenti.
Qui dobbiamo trovare una soluzione per rimuovere i file dalla cronologia delle revisioni. Se troviamo un metodo efficace per farlo, possiamo anche aiutare i nostri clienti con la gestione delle quote dei repository e anche altro Manutenzione dell'applicazione e supporto.
Ho eseguito alcuni test con l'opzione 'svndumpfilter' e potrei riuscire a trovare una soluzione per rimuovere i file dalla cronologia delle revisioni del repository SVN.
Se qualcuno riscontra un problema con il repository svn oltre la quota o è interessato a rimuovere file indesiderati dalla cronologia, può seguire i passaggi indicati di seguito:
1. Fai un dump del tuo repository.
svnadmin dump /var/svn/REPOSITORY > dumpfile
2. Filtrare il file di dump.
svndumpfilter esclude /percorso/del/file/in/rimuovi < dumpfile > nuovodumpfile
Questo rimuoverà il file “/percorso/del/file/da/rimuovere”. Puoi rimuovere più file contemporaneamente in questo modo:
svndumpfilter esclude file1 file2 < dumpfile > nuovodumpfile
3. Crea un nuovo archivio.
svnadmin crea /var/svn/REPOSITORY_NEW
4. Importare il file dump nel nuovo repository.
svnadmin carica /var/svn/REPOSITORY_NEW < nuovodumpfile
5. Sostituisci il vecchio repository con quello nuovo.
mv /var/svn/REPOSITORY /var/svn/REPOSITORY_OLD
mv /var/svn/REPOSITORY_NEW /var/svn/REPOSITORY
Per verificarlo, sfoglia la cronologia e vedi uno dei file che hai rimosso, riceverai un errore indicante che il file non è stato trovato. Potrebbe essere necessario effettuare un nuovo checkout e un commit per vedere se tutto funziona come previsto. Se tutto funziona correttamente, possiamo rimuovere i file di dump e il vecchio backup del repository.
Provaci. Saluti!!
Inserito per conto di Sanal Inasu
Mettiti in contatto con noi.