2012-09-03 13 views
14

Sto provando a svn update la mia copia di lavoro SVN con TortoiseSVN ma l'aggiornamento non riesce, chiedendo di eseguire prima la pulizia.pristine svn-base file mancante

Tuttavia, il svn cleanup non riesce anche a dichiarare che un \.svn\pristine\20\20long-namecbf.svn-base file cannot be found.

Ho già provato a rilasciare il blocco ma anche questo non funziona.

Qualche idea su come procedere?

risposta

2

È possibile utilizzare SmartSVN per ripristinare il file pristine perso.
Scaricare e installarlo. Non è gratuito, ma una prova gratuita di 30 giorni dovrebbe essere sufficiente per riparare il tuo repository.
Aprire la copia di lavoro in SmartSVN. Per la riparazione, selezionare Modifica>Convalida Area Amministrazione ...
Enjoy!

+0

Si prega di aggiungere come, ho visto alcuni riferimenti a SmartSVN, ma tutti non riescono a spiegare come. – bonitzenator

+0

Ho modificato la risposta come vostra richiesta. – duccom

+0

Grazie duccom, questo ha molto più senso. – bonitzenator

4

Sono riuscito a sostituire la directory .svn con la stessa copia appena estratta. Fortunatamente per me, la copia locale era sulla stessa revisione del repository. Non sono sicuro quali sarebbero le implicazioni se non fosse il caso.

26

Questo problema:

non riesce a trovare il file .svn \ incontaminata \ 24 \ 24fd530d4bd82341fb514ab912c9e10adbc4ad89.svn-base

ho copiato uno svn-base da altro file e rinominato questo con 24fd530d4bd82341fb514ab912c9e10adbc4ad89. svn-base. E eseguire un'operazione di pulizia. Successivamente ho incontrato un altro file mancante. Usando allo stesso modo, e alla fine ho risolto questo problema.

Da una riga di comando di Windows con installato SilkSVN:

cd project directory 
svn status 

Questo genererà un errore. Selezionare e copiare il testo directory e il nome del file quindi incollare:

echo > .svn\pristine\<paste> 

Ad esempio:

echo > 24\24fd530d4bd82341fb514ab912c9e10adbc4ad89.svn-base 

Con questa conoscenza in mano, sarebbe ragionevolmente banale scrivere un file batch che può risolvere automaticamente questi problemi per tutti. Il comando svn genererà un valore% ERRORLEVEL% che può essere verificato per errore.

+6

Questo mi ha portato a una soluzione ancora più semplice: basta creare un file vuoto con il nome file specificato ed eseguire 'svn cleanup'. (Btw. Questa dovrebbe essere la risposta accettata). – Csq

1

Per me il file era lì ma aveva (1) aggiunto al nome. (Una copia) ff4c7be3da460bb91144d6761cc5743536c983f4 (1) Svn-base

ho rimosso il "(1)" e la pulizia funzionato benissimo ff4c7be3da460bb91144d6761cc5743536c983f4.svn-base

5

Ho risolto questo da

  1. Creazione di un file vuoto /workingdirectory/.svn/pristine/da/da39a3ee5e6b4b0d3255bfef95601800afd80009.svn-base

  2. Run svn cleanup