Ripristino di un repository SVN

Causa corruzione del filesystem di una pennetta USB, ho avuto la possibilità di approfondire la conoscenza di SVN, in particolare sull’argomento recupero dati non proprio irrimediabilmente persi. 🙂

Premesso che il modo migliore è ripristinare un bel backup fresco fresco (dei 4 reporitory che utilizzo, 3 li ho recuparati così), ho trovato utili informazioni qui: in particolare il comando svnadmin verify,  svnadmin dump e svnadmin load, utili per verificare lo stato del repository commit per commit, per esportare i dati e per re-inserirli in un nuovo reporitory.

Di uno dei backup sono riuscito a recuperare solamente la prima parte, mentre gli ultimi 15 commit circa erano corrotti, per cui ho dovuto caricare il rimanente a mano, usando le copie di lavoro locali.
Per fortuna, spulciando i file del repository corrotto, ho trovato dove erano salvate i dati dei commit (percorso REPO_ROOT/db/revs/0, un file per commit con in fondo la lista dei file modificati) e dove i messaggi (percorso REPO_ROOT/db/revprops/0), potendo in questo modo effettuare un “merge” manuale commit per commit, file per file.

E visse (il programmatore) felice e contento… molto probabilmente in cerca di una nuova pennetta e di un sistema di backup un po’ meno manuale. 😀

Lascia un commento

Il tuo indirizzo email non sarà pubblicato. I campi obbligatori sono contrassegnati *