come dice Hubert, svnadmin pack
impacchetterà tutti i singoli file di repository in una directory in un unico grande file. Questo ti farà risparmiare un po 'di spazio, ma rimanda solo il giorno della resa dei conti per te. (dovrebbe rendere le operazioni di cronologia più veloci, quindi è comunque un buon suggerimento). Una cosa da notare è che funziona solo su directory frammentate (cioè la nuova struttura di directory consiste nel mettere 1000 revisioni in una singola directory, quindi avviare una nuova directory) e racchiude solo le vecchie directory di shard, non quella con la revisione corrente dentro.
Pertanto, l'unica opzione è eliminare le vecchie revisioni dalla cronologia. Ciò richiede svnadmin dump e load, con facoltativamente un filtro per rimuovere le directory nel tuo repository che non ti servono più. (ad es. vecchie filiali temporanee).
Eseguire il dump è semplice: svnadmin dump -r xxx:HEAD
dove xxx è la revisione più vecchia che si desidera conservare (ovvero questo scaricherà le revisioni più recenti, quindi la revisione antica verrà scartata, come l'archiviazione). Puoi conservare l'archivio delle vecchie revisioni scaricandole anche ( svnadmin dump -r 1:xxx
)
Una volta che hai il tuo dumpfile, caricarlo è facile come eseguire svnadmin load passando il nome del dumpfile. potrebbe essere una buona idea eliminare il vecchio repository prima di caricarne uno nuovo - in tal caso si ottengono i vantaggi delle ultime proprietà del filesystem del server, se non sono già disponibili.
Se si desidera mantenere tutte le vecchie revisioni ma filtrare determinate directory, è necessario eseguire il file di dump tramite svndumpfilter , che rimuoverà i percorsi specificati. Ricorda che vorrai scaricare senza usare l'opzione --incremental.
Ovviamente, prova tutte le operazioni localmente - esegui il dump in un file locale, quindi caricalo in un repository temporaneo sull'unità locale (sarà anche più veloce) e verifica che la cronologia e l'ultima versione funzionino correttamente - Esporto l'ultima revisione in un directory e utilizzare winmerge per verificare che i file siano identici a un'esportazione dell'ultima revisione dal repository live. Provalo anche con una revisione storica se vuoi essere paranoico.