Come riparare un repository danneggiato (che ha una directory .svn centralizzata)?


19

Di recente ho aggiornato la mia installazione di TortoiseSVN alla versione 1.7.1. Questo mi ha costretto ad aggiornare anche la mia copia di lavoro. L'aggiornamento ha rimosso tutte (tranne una) le directory .svn da tutte le sottodirectory lasciando solo una nella root.

Ora improvvisamente (ovviamente; sospetto che il mio software antivirus) si verifichi un errore quando, ad esempio, provo a ripulire la copia di lavoro. Inoltre non sono in grado di impegnare nulla.

Il messaggio di errore durante la pulizia è:

La pulizia non è riuscita a elaborare i seguenti percorsi: C: \ svn

Impossibile aprire il file "C: \ svn.svn \ pristine \ 73 \ 73bcc5fa7819f84f56b81dfa0236f0aac7b7d404.svn-base": il sistema non riesce a trovare il file specificato.

Ho rintracciato l'errore da correlare alla presenza di una directory all'interno della copia di lavoro. Se lo rinomino, allora tutto funziona. Quando è presente ottengo l'errore. L'ho anche cancellato e verificato di nuovo. Nessuna modifica, l'errore persiste.

Con le versioni precedenti ho potuto riparare facilmente i danni in .svn: basta eliminare la cartella offensiva e ricontrollare. Non posso più farlo perché ora la directory .svn è centralizzata.

Cosa potrei fare per riparare la mia copia di lavoro?

Risposte:


21

Impossibile aprire il file 'C: \ svn.svn \ pristine \ 73 \ 73bcc5fa7819f84f56b81dfa0236f0aac7b7d404.svn-base

Ho appena avuto un errore simile e in realtà ho dovuto fare quel file con il blocco note e quindi la pulizia ha funzionato.


1
Ma è sicuro da fare? "Svn cleanup" renderà di nuovo quel file non vuoto? (Perché sicuramente lo era prima, no?)
hans_meine,

Posso verificare che questo metodo funzioni, non sono sicuro di quale sia l'esito / la perdita dalla creazione di un file così vuoto - ma non crearlo, non mi ha permesso di "procedere con il commit"
nrathaus

4

Invece di creare un file vuoto (cosa che non osavo fare), ho fatto un nuovo checkout temporaneo della sola directory interessata (specificando la stessa revisione) e ho copiato il file mancante dalla nuova sottocartella .svn in quella della directory di lavoro non funzionante .

Per illustrare ulteriormente questo, nel mio caso, il file svn lamentato era .svn/pristine/d1/d12a84ef7be5dad86b76e1a45fc3da4698d38796.svn-base, che è esattamente il percorso che si trova nel nuovo checkout parziale.


3

Abbiamo avuto lo stesso problema dopo l'aggiornamento dalla versione precedente a Tortoise SVN 1.7.7.

Dato che non ho trovato altra soluzione, ho eliminato la copia di lavoro locale e l'ho verificato di nuovo. Ora funziona bene.


2

Ho riscontrato il problema mentre ho interrotto un'unione. Non ho potuto eseguire alcuna azione SVN. Durante l'esecuzione di una pulizia SVN, è stato riscontrato un errore che non riusciva a trovare un file specificato che causava un errore di pulizia.

Ho creato un file fittizio con quel nome esatto nella cartella specificata e ho pulito un SVN.

Quindi sono stato in grado di procedere.


0

Ho avuto un problema simile, in cui si diceva che C:\working_copy\dir\file.xmlnon è stato possibile trovare un file . Avevo cancellato la dirdirectory. Nel mio caso, semplicemente l'aggiunta di una nuova dircartella e file.xmlfile (con testo vuoto) ha permesso di continuare la pulizia, quindi ho potuto aggiornare correttamente la copia di lavoro.


0

Il mio problema era che avrei dovuto riconfigurare tutto il progetto nel mio IDE se avessi controllato dal repository scratch, non mi importava di salvare le modifiche.

Ho rimosso la directory .svn e il repository di checkout nella stessa directory.

Il problema è stato risolto: sono stato in grado di eseguire tutte le operazioni svn e il progetto era ancora configurato in IDE

Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.