2011-02-01 15 views
45

Se avete lavorato con gli strumenti di SVN in Eclipse (Subversion, sovversiva) prima, allora si rischia familiarità con il 'copia di lavoro 'XXX' bloccato ..." Errore.Perché continuo a ricevere SVN: Working Copy XXXX bloccato; prova a eseguire 'pulizia'?

ho trovato un post molto utile con un soluzione per questo problema: Working copy XXX locked and cleanup failed in SVN

grande come la soluzione è, è un dolore per farlo più e più volte qualcuno sa il motivo per cui continuo a ricevere questo errore e quali passi ho potuto prendere per evitare che si

.?

Contesto: Sto creando un plug-in Eclipse che implica l'ascolto di eventi SVN, quindi nel test di questo plug-in, sto costantemente aprendo e chiudendo lo spazio di lavoro. alleato esegue 1 o 2 commit ogni volta che apro lo spazio di lavoro. Ogni tanto il commit fallisce e ottengo l'errore 'working copy locked'. Mi piacerebbe che questo errore non succedesse più, quindi qualsiasi consiglio è apprezzato.

Grazie!

+0

Avete stato in grado di risolvere questo problema senza fare il Team -> Pulizia? Non voglio che i miei utenti debbano continuare a fare un refresh/clean up ... –

risposta

81
  1. selezionare il progetto
  2. clic destro sul selezionato Progetto
  3. Team -> Pulizia

Problema risolto.

Nota: i passaggi precedenti funzionano solo Eclipse (pacchetto Indigo)

+0

Grazie. La pulizia ha sicuramente aiutato. – rickygrimes

+2

Funziona anche su Eclipse Luna ... Grazie per il suggerimento. – CanC

+0

E Keplar. Meraviglioso grazie!! – Phish

9

Ho già avuto un sacco di problemi con SVN e una cosa che mi ha sicuramente causato problemi è la modifica dei file all'esterno di Eclipse o l'eliminazione manuale delle cartelle (che contiene le cartelle .svn), che probabilmente mi ha dato di più guaio.

modificare Si dovrebbe anche fare attenzione a non interrompere le operazioni di SVN, anche se a volte un bug può verificarsi e questo potrebbe causare il file .lock di non essere rimosso, e di conseguenza il vostro errore.

+0

Hai fatto un buon punto, credo che il motivo per cui stavo ottenendo gli errori è perché stavo eseguendo il debug del mio plugin e che i breakpoint stavano interrompendo i comandi SVN . – jbranchaud

14

Generalmente viene creato un file .lock che decide lo stato di blocco/sblocco controllando l'esistenza di questo file. Penso che se elimini solo questo file .lock, il problema andrà via.

+6

non sono al mio computer per testarlo .. ma non 'svn cleanup' risolve anche quello? So che di solito elimini solo il file .lock: p –

+1

Perché viene bloccato? Non ho mai chiesto che fosse bloccato e non penso che le mie interazioni con Eclipse o sovversione lo garantiscano. Inoltre, sotto le opzioni della squadra, ci sono opzioni di blocco e sblocco. Durante questo errore, l'opzione Blocca è abilitata e l'opzione Unlock è disabilitata. – jbranchaud

+0

Anche la pulitura SVN fallisce. Questo non sembra essere un modo per risolvere questo problema. – jbranchaud

3

Dopo ulteriori esplorazioni e test, sembra che questo problema sia stato causato dal debug del plug-in e dall'utilizzo dei punti di interruzione. A SVN/Subclipse apparentemente non piaceva avere punti di interruzione a metà della loro esecuzione e, di conseguenza, venivano creati questi file di blocco. Non appena ho iniziato a eseguire il plug-in, questo problema è scomparso.

2

Ho avuto lo stesso problema utilizzando il pacchetto com.xxx.service.model.

Per risolvere il problema, ho prima effettuato un backup delle modifiche al codice nel pacchetto del modello. Quindi eliminato il pacchetto del modello e sincronizzato con il repository. Mostrerà in arrivo l'intera cartella/pacchetto. Quindi ho aggiornato il mio codice.

Infine, incollare il vecchio codice di commit nel repository SVN. Funziona bene.

1

Questo è successo a me quando ho copiato una directory da un altro progetto di sovversione e ho tentato di eseguire il commit. La soluzione consisteva nell'eliminare il director .svn all'interno della directory che volevo eseguire.

0

Questo tipo di problema può verificarsi quando si eliminano/spostare i file - in essenza di apportare modifiche al tuo struttura di directory. Subversion controlla solo le modifiche apportate nei file già aggiunti a subversion, non le modifiche apportate alla struttura delle directory. Invece di usare copia del sistema operativo ecc comandi piuttosto usano svn copy ecc Si prega di consultare http://svnbook.red-bean.com/en/1.7/svn.tour.cycle.html

Inoltre, al momento di commettere modifiche svn primi negozi un "Sommario" di cambiamenti in una todo list. Eseguendo le operazioni svn in questo elenco di cose da fare, blocca il file per impedire altre modifiche mentre vengono eseguite queste azioni svn. Se l'azione svn viene interrotta a metà, ad esempio da un arresto anomalo, il file rimarrà bloccato fino a svn potrebbe completare le azioni nell'elenco delle cose da fare. Questo può essere "riattivato" utilizzando il comando svn cleanup. Si prega di vedere http://svnbook.red-bean.com/en/1.7/svn.tour.cleanup.html

4

Assicurarsi di pulire esattamente ciò che dice la console. Per esempio, se una sottocartella (un pacchetto) è chiuso:

svn: E155004: Commit failed (details follow): 
    svn: E155004: Working copy 'C:\Users\laura\workspace\tparser\src\de\test\order' locked 
    svn: E155004: 'C:\Users\laura\workspace\tparser\src\de\test\order' is already locked. 

pulizia C:/Users/liparulol/lavoro/tparser/src/de/mc/ETN/parser/ordine

allora avete bisogno di ripulire la cartella specificata e non l'intero progetto. Se sei in Eclipse, fai clic con il pulsante destro del mouse sul pacchetto, non sulla cartella del progetto ed esegui la pulizia.

+0

questa è la vera soluzione, salvavita. – andreasperelli

3

Ciò accade quando qualcosa è andato storto in una delle tue cartelle nel tuo progetto. È necessario trovare la cartella esatta che ha bloccato ed eseguito svn cleanup nella cartella specifica. È possibile risolvere questo come segue:

  1. corsa svn commit comando per scoprire quale cartella è andato storto.
  2. cambia directory in quella cartella ed esegui svn cleanup. Quindi è fatto.
0

Soluzione: Step1: necessario rimuovere “bloccare” il file che presentano sotto “.svn” file nascosto. Step2: Nel caso in cui non v'è alcun “blocco” del file allora si potrebbe vedere “we.db” è necessario aprire il database e la necessità di eliminare il contenuto solo dalle seguenti tabelle - bloccare - wc_lock Step3: Pulisci il tuo progetto Step4: Prova a eseguire il commit ora. Step5: Fatto.

1

Il seguente dovrebbe sbloccare una copia di lavoro bloccata (testato su versione client svn 1.6.11 e la versione ellisse: Mars.2 di uscita (4.5.2))

Fase 1: (vai a lavorare directory della copia) $ cd working_copy_dir

passaggio 2: (connettersi al database sqlite svn) $ sqlite3 .svn/wc.db

passaggio 3: (elimina tutti i record dalla tabella WC_LOCK) sqlite> elimina da WC_LOCK;

Fase 4: (disconnettersi dal SQLite 3 database) SQLite> Ctrl + D

passaggio 5: (da Eclipse) fate clic destro sul vostro copia di lavoro, quindi fare clic su Team -> Aggiorna/Cleanup

Problemi correlati