La cartella è bloccata e non riesco a sbloccarla


108

Quando cerco di aggiornare o eseguire il commit del codice da un progetto, mi dice che la cartella è bloccata. Quando provo a "rilasciare il blocco" dice che non c'è niente da sbloccare in questo spazio di lavoro.

Cosa significa? Perché non posso aggiornare, eseguire il commit o persino ripulire il progetto.


Quale versione di svn stai usando?
Chriseyre2000

Assembla for a repository, Tourtise SVN 1.7
Iyad Al aqel

Quindi hai una cartella .svn in ogni directory o solo la radice?
Chriseyre2000

Hai provato di nuovo a controllare il progetto in una copia di lavoro separata?
Bernard

Sì, funziona se lo controllo in una cartella diversa, ma il database non si apre
Iyad Al aqel

Risposte:


161

Fare clic con il tasto destro sulla cartella della directory di lavoro di Subversion e selezionare TortoiseSVN-> Clean Up dal menu contestuale. Questo ricorserà attraverso la tua directory di lavoro e ripulirà tutte le azioni incomplete, rimuoverà il file local blocchi (che è diverso dall'usare il blocco di Subversion di un file nel repository che consente a tutti di conoscere il blocco).

Se non funziona, verifica se riesci a trovare i nomi dei file che sono stati modificati, ma non ancora salvati, salvali e ripeti il ​​checkout.


28
Ho avuto questo problema e la pulizia non ha funzionato (non riuscendo a pulire a causa dei blocchi locali), ma salendo alla cartella principale (che era anche sotto il controllo della versione) e facendo la pulizia lì ha risolto il problema.
Malvineous

2
Puoi rompere i blocchi locali selezionando l' Break locksopzione.
aagjalpankaj

1
Il commento di @Malvineous è prezioso. Dovrebbe pubblicare questo come risposta.
Lazy Ninja

16

Se il file è stato bloccato da te (stesso account svn), puoi seguire questi passaggi:

Fare clic con il pulsante destro del mouse sul file o sulla cartella bloccata e selezionare TortoiseSVN-> Ottieni blocco ... e selezionare " [] Ruba i lucchetti " nell'angolo inferiore sinistro della finestra di dialogo, fare clic su "OK". Se viene completato correttamente, va bene. Quando fai di nuovo clic con il pulsante destro del mouse sul file, puoi vedere TortoiseSVN-> Rilascia blocco ... , fare clic per sbloccare.


12

Utilizzando la riga di comando svn per sbloccare le cartelle locali, basta usare svn cleanup .

Prima:

# svn commit -m "fixing #1234"

commettere

# svn st

prima

# svn cleanup

Dopo:

# svn st

dopo

# svn commit -m "fixing #1234"

after2


10

A chiunque abbia ancora questo problema ( Errore: copia di lavoro "{DIR}" bloccata. ), ho la tua soluzione:

Ho scoperto che quando una delle finestre di TortoiseSVN si blocca, lascia un TSVNCache.exe che ha ancora alcuni handle per la tua copia di lavoro e che sta causando i problemi di blocco che stai vedendo (e impedisce anche a Clean Up di fare il suo lavoro).

Quindi per risolvere questo problema:

O

1a) Utilizzare Process Explorer o simile per eliminare gli handle di proprietà di TSVNCache.exe

1b) .. O ancora più semplice, usa semplicemente Task Manager per uccidere TSVNCache.exe

Poi

2) Fare clic con il pulsante destro del mouse -> TortoiseSVN -> Pulisci. Deve essere verificato solo "Pulisci stato copia di lavoro".

Da lì, buon aggiornamento / impegno. È possibile riprodurre il comportamento di blocco eseguendo l'aggiornamento SVN e quindi eliminando rapidamente il processo TortoiseProc.exe prima che l'aggiornamento termini.


8

Questa è stata la prima volta che ho avuto questo problema. Ho anche provato a riavviare il PC, senza alcun effetto. Questo risolve il mio problema:

Soluzione per me:

  1. Fare clic con il tasto destro sulla directory di lavoro del progetto.
  2. Naviga in TortoiseSVN .
  3. Naviga per ripulire .
  4. Lascia tutte le opzioni predefinite e seleziona Break Locks
  5. Fare clic su OK

Questo funziona per me. Sono stato in grado di eseguire modifiche.


1
La selezione della casella di controllo Break Locks risolve il mio problema.
Banketeshvar Narayan

Questa è la risposta perfetta che stavo cercando. Grazie
mille

Questa dovrebbe essere la risposta corretta. Pratico, facile e diretto al punto!
Oana-Elena Danescu

3

Per sbloccare un file nella tua copia di lavoro dal prompt dei comandi che è attualmente bloccato da un altro utente, usa l' --forceopzione.

$ svn unlock --force tree.jpg


E se volessi sbloccare una directory?
IgorGanapolsky

@IgorGanapolsky Assegna il nome della directory invece del nome del file nel comando precedente
manav mn

@IgorGanapolsky quale messaggio di errore stai ricevendo. Fammi controllare
manav mn

Il nodo non è un file !
IgorGanapolsky

3

Ho avuto questo problema e ho eseguito i passaggi seguenti per risolverlo:

  1. Vai alla cartella principale invece che alla cartella figlio
  2. Seleziona SVN cleanup
  3. Fare clic su OK.

Fai questo passaggio sulla cartella principale invece che sulla cartella figlia!

Ha funzionato per me!


1

Stavo spostando una cartella su di un livello e in un'altra cartella. Il mio errore è stato eseguire lo spostamento dall'interno della cartella principale.

Cattivo esempio:

pwd -> C:\Repo\ParentDir\
svn move ./DirtoCopy ../AnotherDir

SVN deve aggiornare la directory principale con le informazioni sulle cartelle eliminate.
Devi farlo dalla radice comune delle cartelle di origine e di destinazione o utilizzare percorsi completi.

Buon esempio:

svn move C:\Repo\ParentDir\DirtoCopy C:\Repo\NewLocation

1

Ho avuto questo problema in cui non sono riuscito a sbloccare un file dal lato client. Ho deciso di passare al lato server che era molto più semplice.

Sul server SVN:

Individua le serrature

 svnadmin lslocks /root/of/repo
 (in my case it was var/www/svn/[name of Company])

 You can add a specific path to this by svnadmin lslocks /root/of/repo "path/to/file"

Rimuovere il lucchetto

 svnadmin rmlocks /root/of/repo “path/to/file” 

Questo è tutto!


0

Soluzione:

  1. Fare clic con il tasto destro sulla directory di lavoro del progetto.
  2. Naviga in TortoiseSVN.
  3. Naviga per ripulire.
  4. Seleziona Pulisci stato copia di lavoro (fai un segno di spunta)
  5. Fare clic su OK
  6. Ripeti i passaggi 1 e 2, quindi naviga per rilasciare Blocco.
  7. Fare clic su OK Il blocco del progetto viene aperto.

0

Oltre alla risposta di David M, durante la pulizia -> seleziona l'opzione "Rompi blocchi". Ciò garantirà il rilascio dei blocchi. Quindi eseguire l'aggiornamento svn. Questo ha funzionato per me.


0

Per sbloccare un documento bloccato: 1. Fai clic con il pulsante destro del mouse -> Blocca 2. Seleziona la casella di controllo "Ruba i lucchetti" 2. Rilascia il lucchetto


0

Faccio molte ricerche su questo problema ma nessuna soluzione risolve il mio problema finché non provo questo:

La mia cartella repo è condivisa con una macchina virtuale Windows xp, quindi eseguo la pulizia dalla VM e poi eseguo SVN UPDATE dall'host.

Ha funzionato per me.

Saluti dal Costa Rica.


0

Sono stato in grado di risolvere questo problema sulla mia macchina rinominando le cartelle per ridurre il percorso della cartella.


-1

Questo è accaduto dopo che Tortoise si è danneggiato e si è bloccato durante il tentativo di aggiornare le cartelle. Ho finito per reinstallare Tortoise, ma il lucchetto fantasma era ancora presente. Da lì ho dovuto eliminare la cartella e fare un nuovo checkout. Ovviamente sono stato davvero fortunato a non avere nuove modifiche da eseguire in quel momento. Comunque, non è una gran notizia, e se qualcuno ha una soluzione migliore mi piacerebbe sentirla io stesso. Anche l'utilizzo di "Break Lock", ovvero sblocco con l'opzione force, non ha cambiato nulla.


-1

Pulisci, seleziona tutte le caselle di controllo => Questo funziona per me


Uguale a Đức Thắng Nguyễn. Fai una pulizia "robusta".

-1

Ho riscontrato questo problema dopo queste operazioni:

  1. ottenere il blocco sulla cartella
  2. modificare i file
  3. rimuovere i file e aggiornare le cartelle -> nuovi file scaricati
  4. provare a eseguire il commit o rilasciare il blocco

Alla fine ho risolto il problema forzando di nuovo il blocco: TortoiseSVN -> Ottieni blocco -> seleziona "ruba blocco" quindi conferma o rilascia il blocco.

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.