Domanda

Ricevo questo errore quando eseguo un svn update :

  

Copia di lavoro XXXXXXXX bloccata Per favore   eseguire " Pulizia " comando

Quando eseguo la pulizia, ottengo

  

La pulizia non è riuscita a elaborare   seguenti percorsi: XXXXXXXX

Come uscire da questo ciclo?

È stato utile?

Soluzione

Un approccio sarebbe quello di:

  1. Copia gli elementi modificati in un'altra posizione.
  2. Elimina la cartella contenente il percorso del problema.
  3. Aggiorna la cartella contenente tramite Subversion.
  4. Copia i file indietro o unisci le modifiche secondo necessità.
  5. Commit

Un'altra opzione sarebbe quella di eliminare la cartella di livello superiore e riprovare. Spero che non arrivi a questo.

Altri suggerimenti

Per me, il trucco era eseguire svn cleanup nella parte superiore della mia copia di lavoro, non nella cartella in cui avevo lavorato tutto il tempo prima che si verificasse il problema.

Cerca nella cartella .svn , ci sarà un file chiamato lock . Elimina quel file e sarai in grado di aggiornare. Potrebbero esserci più file di blocco nella directory .svn di ogni sottodirectory. Dovranno anche eliminare. Questo potrebbe essere fatto semplicemente come un batch dalla riga di comando con ad esempio

find . -name 'lock' -exec rm -v {} \;

Nota che stai modificando manualmente i file nella cartella .svn . Sono stati messi lì per un motivo. Tale motivo potrebbe essere un errore, ma in caso contrario potresti danneggiare la tua copia locale.

SOURCE: http://www.svnforum.org/2017/viewtopic. php? p = 6068

Nel mio caso l'ho risolto eliminando manualmente un record in SQLite " .svn \ wc " record di blocco file nella tabella WC_LOCK.

Ho aperto il " WC " file con editor SQLite ed eseguito

delete from WC_LOCK

screenshot che mostra tutte le voci eliminate da WC_LOCK

Seguendo il commento di eakkas , potrebbe essere necessario eliminare anche tutte le voci dalla tabella WORK_QUEUE .

Il modo più semplice di sempre:

  1. Vai a Directory principale (cartella) di Progetto .
  2. Pres Tasto destro
  3. Premi TortoiseSVN quindi Premi Pulisci ...
  4. La finestra di dialogo di pulizia apparirà automaticamente
  5. Seleziona Pulisci stato copia funzionante , Blocca blocchi , Correggi timestamp , Vuoto copie originali , < code> Aggiorna overlay shell , Includi esterni
  6. Pres OK

Hai svolto il tuo lavoro con successo.

Controlla le schermate come riferimento.

Primo passo:

invio descrizione dell'immagine qui

Secondo passaggio: Abilita l'opzione Blocco interruzioni (seconda casella di controllo nella finestra popup di pulizia) inserisci qui la descrizione dell'immagine

Spero che questo ti possa aiutare molto.

Un collega al lavoro vede costantemente questo messaggio, e per lui è perché ha eliminato una directory sotto il controllo versione SVN senza cancellandolo da SVN, e quindi ha creato una nuova directory al suo posto, non sotto versione controllo, con lo stesso nome.

Se questo è il tuo problema ...:

Esistono diversi modi per risolverlo, a seconda di come / perché la directory è stata sostituita.

In entrambi i casi, dovrai probabilmente:

A) Rinomina la directory esistente con un nome temporaneo

B) Esegui un ripristino SVN per ripristinare la directory eliminata dal file system, ma non da SVN

Da lì, lo faresti

A) Copia i file pertinenti nella directory che è stata eliminata

B) Se si è verificato un cambiamento significativo dei contenuti nella directory, eseguire un'eliminazione SVN sull'originale, eseguire il commit e rinominare la nuova directory con il nome desiderato, seguito da un'aggiunta SVN per ottenere che uno sotto il controllo della versione.

Per me nessuna delle soluzioni precedenti ha funzionato. Ho trovato una soluzione rompendo le serrature. Quando ho eseguito svn cleanup, ho selezionato " Break Locks " insieme a " Pulisci stato copia di lavoro " ;.

 inserisci qui la descrizione dell'immagine

Questo ha funzionato per me.

  1. Vai alla cartella principale,
  2. Clic destro e pulizia
  3. Controlla tutte le opzioni disponibili
  4. Premi ok

Dopo la pulizia ti permetterà di aggiornare all'ultima versione.

Per me, in realtà è stata colpa di Tortoise, in un certo senso. Tortoise si è appena lamentato "non è possibile ripulire, eseguire la pulizia", ??ma quando ho eseguito la riga di comando (svn cleanup), mi ha chiaramente detto che non poteva eliminare alcuni file che erano in uso, la soluzione alla quale era ovvia. Una volta chiuso Visual Studio (che stava mantenendo i file aperti), la pulizia ha funzionato bene.

Altri programmi possono anche tenere aperti i file nel repository causando questo problema. Excel con un xls aperto è stato un colpevole in un'altra istanza, quindi potrebbe essere saggio chiudere tutti i programmi che potrebbero utilizzare qualsiasi cosa nel repository o anche riavviare per forzare la chiusura dei programmi e quindi riprovare a ripulire.

Ho avuto questo problema perché le cartelle esterne non vogliono essere collegate in una cartella esistente. Se si aggiunge una riga di proprietà svn: externals in cui la destinazione è una cartella esistente (con o senza versione), verrà visualizzato l'errore di blocco della copia Woring SVN. Qui una pulizia ti dirà anche che tutto va bene, ma l'aggiornamento non funzionerà.

Soluzione: eliminare la cartella problematica dal repository ed eseguire un aggiornamento nella cartella principale in cui è impostata la proprietà svn: externals. Questo creerà la cartella e tutto andrà di nuovo bene.

Questo problema è sorto per me perché svn: externals per i file richiede che la cartella di destinazione sia controllata dalla versione. Dopo aver notato che questo non funziona su diversi repository, sono passato da file esterni a cartelle esterne e sono entrato in questo casino.

Il modo più semplice per farlo è mostrare cartelle nascoste e quindi aprire la cartella .SVN. Dovresti vedere un file zero KB chiamato " lock " l'eliminazione di questo risolverà il problema

Ho riscontrato lo stesso identico problema usando SVN 1.7 e nessuna delle correzioni sopra menzionate ha funzionato.

Prima di tutto, assicurati di eseguire il backup di tutto il contenuto modificato.

Dopo aver trascorso un paio d'ore (non ho scaricato di nuovo tutto perché la mia filiale ha dimensioni superiori a 6 GB), ho scoperto che esiste un file db chiamato " wc " nella cartella .svn del tuo ramo.

Apri il file db usando qualsiasi db manager (ho usato il plugin sqlite manager di firefox) e vai alla tabella WC_LOCK. Questa tabella contiene le voci per i blocchi acquisiti. Elimina i record dalla tabella e il gioco è fatto :)

Quando ho questo problema, trovo che l'esecuzione del comando di pulizia direttamente sul percorso del problema generalmente funzioni. Quindi eseguirò nuovamente la pulizia dalla radice funzionante e si lamenterà di qualche altra directory. e ripeto solo fino a quando smette di lamentarsi.

Se utilizzi un computer Windows, visualizza il repository tramite un browser e potresti vedere due file con lo stesso nome ma usando casi diversi. Subversion fa distinzione tra maiuscole e minuscole e Windows no, quindi puoi ottenere un blocco quando Windows pensa che stia scaricando lo stesso file e Subversion no. Elimina i nomi dei file duplicati nel repository e riprova.

L'ho fatto semplicemente creando una nuova cartella, controllando il progetto, copiando i file aggiornati nella nuova cartella.

È stato risolto con un nuovo checkout.

Stai usando TortoiseSVN e hai appena aggiornato? Ho avuto questo problema prima di passare da 1.4 a 1.5 e non riavviare. (Prova a riavviare).

Il motivo per cui è necessario riavviare è perché il file della cache diventa tutto funky.

Altrimenti, per proseguire, esportare quella copia di lavoro in una nuova cartella (non copiare le cartelle nascoste .svn), ricontrollare il progetto e spostare nuovamente tutto il codice, quindi procedere con il commit.

/ p>

elimina semplicemente le cartelle .svn, quindi esegui una pulizia nella directory principale. Funziona perfettamente !!

Nelle versioni in Mac OS: Azione - > Pulizia dei blocchi di copia funzionanti su ...

Ricevo spesso un tale problema. Il mio modello che causa problemi di pulizia.

  1. Apro il file immagine nel visualizzatore.
  2. Elimina file / cartella immagine.
  3. Sto cercando di eseguire il commit / l'aggiornamento

La chiusura del visualizzatore di immagini in cui viene aperto il file eliminato risolve il problema. Forse altri software possono bloccare la pulizia allo stesso modo.

In generale. Credo che il riavvio del computer possa aiutare in questi casi.

SVN normalmente aggiorna la sua struttura interna (.svn / prop-base) dei file in una cartella prima che i file effettivi vengano recuperati dal repository. Una volta recuperati i file, questo verrà cancellato. Spesso l'errore viene generato perché " aggiorna " non riuscito o annullato prematuramente durante l'avanzamento dell'aggiornamento.

  1. Controlla che tutti i file siano elencati nella directory .svn / prop-base
  2. Rimuovi tutti i file che non si trovano nella cartella
  3. Pulizia
  4. Aggiorna

Ora l'aggiornamento dovrebbe funzionare.

Ho avuto lo stesso problema perché ho esportato una cartella in una cartella controllata dalla versione. Ho dovuto eliminare la cartella da TortoiseSVN, quindi eliminare la cartella dal filesystem (a TortoiseSVN non piacciono le sottocartelle senzaversioni ... perché no ???)

Non eliminare la soluzione!

nella cartella .svn hai un file chiamato lock che è lungo 0 byte

Puoi eliminare tutti questi file da tutte le cartelle .svn nella tua soluzione e funzionerà

Ha funzionato nel mio caso

Unversioning sul posto dei file e un nuovo checkout nella stessa posizione, ha risolto questo problema per me.

In TortoiseSVN, per eseguire un unversioning sul posto, trascinare a destra la cartella principale della copia di lavoro dall'elenco dei file su se stesso nell'albero delle directory e scegliere " SVN Esporta elementi con versione qui " dal menu a comparsa. TortoiseSVN nota che la destinazione è la stessa della fonte e suggerisce di annullare la revisione della copia di lavoro.

Dopo l'annullamento della revisione, fai un nuovo checkout nella stessa cartella (che ora contiene una copia senzaversione di tutti i file che avevi). TortoiseSVN ti avvertirà che stai effettuando il checkout in una cartella esistente, ma puoi andare avanti.

Successivamente, pulizie, aggiornamenti e altre operazioni hanno funzionato senza intoppi. Poiché entrambi i passaggi precedenti preservano le modifiche locali, non dovrebbe esserci alcuna perdita di informazioni (ma il backup della copia di lavoro prima di ciò può essere comunque una buona idea).

Un avvertimento: se la copia di lavoro contiene versioni miste o modifiche di proprietà senza commit, tali informazioni andranno perse. Per me, questo non è un evento comune e, data la scelta di una copia di lavoro corrotta o la perdita di modifiche di proprietà non impegnate, tendo a optare per quest'ultima.

Ho riscontrato questo problema in cui "ripulisci" ha funzionato, ma l '"aggiornamento" continuerebbe a fallire. La soluzione che ha funzionato è stata quella di eliminare la cartella in questione tramite Windows Explorer, non l'eliminazione di TortoiseSVN (che segna la cancellazione come qualcosa da impegnare nel repository, e quindi ho fatto un "checkout" per essenzialmente "aggiornare" la cartella dal respository.

Maggiori informazioni sulla differenza tra un'eliminazione O / S e un'eliminazione SVN qui: http://tortoisesvn.net/docs/release/TortoiseSVN_en/tsvn-dug -rename.html

In particolare:

  

Quando TortoiseSVN & # 8594; Elimina un file, viene rimosso immediatamente dalla tua copia di lavoro e contrassegnato per l'eliminazione nel repository al prossimo commit.

E

  

Se un file viene eliminato tramite Explorer anziché utilizzare il menu di scelta rapida TortoiseSVN, la finestra di dialogo di commit mostra quei file e consente di rimuoverli dal controllo versione anche prima del commit. Tuttavia, se aggiorni la tua copia funzionante, Subversion individuerà il file mancante e lo sostituirà con l'ultima versione dal repository.

Se sei su Linux, prova questo:

find "/the/path/to/your/directory" -name .svn -type d | xargs chmod 0777 -R

Quindi esegui il comando cleanup su quella directory, quindi prova ad aggiornare.

Ho fatto quanto segue per risolvere il mio problema:

  1. Rinominata la cartella offensiva inserendo un " _ " di fronte a nome della cartella.
  2. Ha fatto un " Pulizia " della cartella principale.
  3. Rinominata la cartella in questione con il nome originale.
  4. Ha eseguito un commit.

In Esplora soluzioni, fai clic con il pulsante destro del mouse sul progetto, nel sottomenu di apertura fai clic su sovversione e seleziona clean-up. Risolverà il problema, come ha fatto per me. Spero che funzioni.

Per eseguire la pulizia

  1. Elimina la cartella .svn.

  2. Esegue lo svncheckout nella cartella principale.

  3. Prova a eseguire l'operazione di pulizia.

Questo ha risolto il mio problema.

Per me, il problema era con l'unità disco completamente piena (inode Linux nel mio caso), quando ho eliminato alcune cartelle ha ripreso a funzionare.

L'errore era il seguente (su qualsiasi azione svn):

$ svn cleanup
svn: E155004: Run 'svn cleanup' to remove locks (type 'svn help cleanup' for details)
svn: E155004: Working copy locked; try running 'svn cleanup' on the root of the working copy ('/my/directory') instead.
svn: E155004: Working copy '/my/directory' locked
svn: E200030: sqlite[S14]: unable to open database file
svn: E200030: Additional errors:
svn: E200030: sqlite[S14]: unable to open database file

L'ho avuto sotto TortoiseSVN e l'errore era legato a una nuova directory che avevo creato con un nuovo progetto. Avevo appena creato questo progetto, quindi non esisteva prima questa directory. Ho cercato nel browser del repository e la nuova cartella era effettivamente già nel repository, ma TortoiseSVN non l'ha mostrato come impegnata.

Per evitarlo, dato che avevo appena creato la cartella, l'ho eliminata nel repository e quindi ho eseguito un commit. Ha funzionato bene.

Da quando l'ho fatto al di fuori di Visual Studio, ho dovuto riavviare Visual Studio per poterlo capire di nuovo.

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top