Con un po 'di ginnastica è possibile aggirare il problema utilizzando svnsync
, che ha la capacità di correggere gli EOL. Supponiamo che il tuo repository venga scaricato in archive.svn
.
Innanzitutto creare il repository per caricare il repo indietro, ignorando i problemi EOL:
svnadmin create repo
svnadmin load repo < archive.svn --bypass-prop-validation
Ora create un nuovo repository per la copia in:
svnadmin create repo-fixed
svnsync
richiede un po 'di pre-commit hook, anche se non lo usi, quindi usa semplicemente il tuo editor per crearne uno vuoto in repo-fixed/hooks/pre-revprop-change
:
#!/bin/sh
exit 0
Inizializzare il repository di destinazione per svnsync
:
svnsync init file:///path/to/repo-fixed file:///path/to/repo
Ora copiare l'intero repository su:
svnsync sync file:///path/to/repo-fixed
Accidenti! svnsync
sarà anche darvi una buona notizia: (. Perché la squadra di Subversion non si aggiornava svnadmin
a fare lo stesso normalizzazione è un mistero per me) NOTE: Normalized svn:* properties to LF line endings
Una volta fatto, il dump del nuovo repository:
svnadmin dump repo-fixed > archive-fixed.svn
Ora hai archive-fixed.svn
, che dovrebbe essere identico a archive.svn
tranne che gli EOL sono stati risolti secondo necessità.
(opzionale) È ora possibile rimuovere il repository temporanea utilizzato per svnsync
:
rm -rf repo-fixed
Aggiornamento Si scopre se si carica questa nuova discarica, il client di Subversion ottiene un errore: Repository UUID does not match expected UUID
. Dovrai utilizzare svnadmin setuuid ...
a change the UUID ID to what it used to be.
(Questo post è il culmine di una moltitudine di frammenti e soluzioni parziali che ho trovato in giro per il web, grazie a tutte le persone che sapevano più di me;. Ho appena messo tutto insieme.)
Vedi anche :
ho aggiornato il vecchio server alla versione più recente, ma ho ancora avuto lo stesso problema. – xsl
Cosa stavi usando prima? Hai provato a impostare le proprietà del file per assicurarti che venga utilizzato il formato corretto? C'è un buon post [qui] (https://mikewest.org/2006/06/working-with-subversion-file-properties) che spiega come ... –
Ho finito per ignorare le terminazioni di riga con un parametro passato a svnadmin carica – xsl