Errore di blocco della copia di lavoro in svn tartaruga durante il commit


94

Sto usando Tortoise SVN per aggiornare e inviare modifiche al repository nel server ogni volta che apporto modifiche alla mia copia di lavoro. Ma da pochi giorni non sono in grado di eseguire il commit delle modifiche e ottengo il seguente errore ogni volta che provo a eseguire il commit.

Working copy 'C:\Program Files\EasyPHP\www\project\php' locked.
'C:\Program Files\EasyPHP\www\project' is already locked.

Ho provato a sbloccare la cartella facendo clic destro su di essa e selezionando Tortoise SVN> Rilascia blocco , dice

Non c'è niente da sbloccare. Nessun file ha un blocco in questa copia funzionante

Quale potrebbe essere il problema?

Risposte:


232

Nessun problema ... prova questo:

  • Vai alla cartella SVN di livello superiore.
  • Fare clic con il tasto destro sulla cartella (che contiene i file svn)> TortoiseSVN> CleanUp

Questo risolverà sicuramente il tuo problema. L'ho fatto un sacco di tempo ... :)

Nota. Assicurati che l'opzione "Rompi blocchi" sia selezionata nella finestra di dialogo Pulizia.


grazie @MicroEyes ... ora sono in grado di impegnarmi. Ho solo un piccolo dubbio. Dopo aver apportato modifiche a un file, devo prima eseguire il commit e quindi aggiornare il file (nella copia di lavoro) o aggiornare e quindi eseguire il commit?
Anil

2
Segui sempre l'aggiornamento, quindi esegui il commit. Altrimenti riceverai un messaggio per l'aggiornamento da TortoiseSVN, perché la copia della tua versione è più vecchia quindi memorizzata nel server SVN. Quindi, in ogni caso, devi aggiornare e impegnarti.
MicroEyes

1
sì ... che ha risolto il mio problema relativo all'aggiornamento della mia copia corrente alla revisione svn.
Jayesh Bhoi

Ho appena aggiunto file in SVN e ho provato a eseguirne il commit ma ho ricevuto lo stesso errore. ho provato il comando cleanUp ma non sono in grado di risolvere questo problema.
Ashok Chandrapal

Lo sto sperimentando molto. Posso ridurre il tempo impiegato da svn prima che venga visualizzato questo messaggio di errore (attualmente da cinque a dieci secondi)? Quindi posso iniziare la pulizia prima.
non utente

15

La risposta accettata non ha funzionato per me. Per risolvere il problema, ho dovuto fare clic con il pulsante destro del mouse sul file che era bloccato, selezionare repo-browser. Questo ha aperto un popup con i file così come sono sul server SVN. Ho quindi fatto clic con il pulsante destro del mouse sul file bloccato e selezionato break lock.

Quando ho chiuso il browser del repository, di nuovo su Explorer ho potuto finalmente impegnarmi!


Devi solo assicurarti che l'opzione "Rompi blocchi" sia selezionata nella finestra di dialogo Pulizia. Penso che sia selezionato per impostazione predefinita (ed è per questo che questo non è stato menzionato nella risposta originale).
Nux

12
  1. Fare clic con il tasto destro sulla cartella.
  2. TortoiseSVN-> Controlla modifiche.
  3. Fare clic sul pulsante Controlla repository.
  4. Rompere il blocco su tutti i file restituiti.

3

Mi sono imbattuto anche in questo problema. Per alcuni vorrei far notare che se è bloccato CONTROLLA CON IL TUO TEAM. Qualcuno del team potrebbe avere alcune cose bloccate perché ci stanno lavorando (questo consente agli sviluppatori di lavorare su cose senza che altri entrino e provino a lavorare anche sullo stesso contenuto). In tal caso, rilasciare il blocco e quindi eseguire l'aggiornamento può potenzialmente perdere dati per lo sviluppatore che lo ha bloccato.

Con questo in mente, la mia preoccupazione era che l'opzione "clean up" potesse cambiare la mia copia di lavoro o rimuovere le informazioni dal livello Repo di Subversion. Questo non è il caso. La risposta ha funzionato per me. Il mio si è bloccato quando ho fatto clic su Annulla durante un aggiornamento. Ho finito per tirare alcuni dei nostri rami e non avevo bisogno della roba, quindi ho premuto Annulla. La mia copia di lavoro è stata bloccata. Non sono riuscito a trovare documenti che risultassero "bloccati" quando ho utilizzato il comando "sblocca blocco". Questo mi ha lasciato perplesso e dopo una rapida lettura (e questo thread) ho tentato il comando 'clean up'. Dopo una pulizia ha risolto il mio problema e nulla è stato più bloccato.

fonte: http://tortoisesvn.net/docs/nightly/TortoiseSVN_en/tsvn-dug-locking.html


2

Ci sono molteplici significati di "lock" in SVN e alcune di queste risposte che parlano di "break lock" o un compagno di squadra in possesso di un lucchetto non usano il significato pertinente per la domanda originale. Questa domanda ha a che fare con i "blocchi di copia di lavoro" (cioè sono interamente locali rispetto alla copia di lavoro sul tuo computer e non hanno nulla a che fare con te o con i tuoi compagni di squadra che tengono un blocco / check-out su un file). La risposta accettata da MicroEyes si riferisce all'uso corretto ed è la tua migliore opzione quando ciò accade.

Se una pulizia non funziona, potrebbe essere necessario controllare una nuova copia funzionante del progetto. Se sono presenti file modificati e non vincolati, sarà necessario copiarli sulla nuova copia di lavoro in modo da non perdere le modifiche.

Vedi questa pagina nella documentazione Tortoise SVN per una descrizione dei tre usi di "lock": http://tortoisesvn.net/docs/nightly/TortoiseSVN_en/tsvn-dug-locking.html

Estratto (enfasi aggiunta):

I tre significati di "Lock"

In questa sezione, e quasi ovunque in questo libro, le parole "lock" e "locking" descrivono un meccanismo di mutua esclusione tra utenti per evitare conflitti di commit. Sfortunatamente, ci sono altri due tipi di "blocco" con cui Subversion, e quindi questo libro, a volte deve essere interessato.

Il secondo è il blocco della copia di lavoro , utilizzato internamente da Subversion per prevenire conflitti tra più client Subversion che operano sulla stessa copia di lavoro. Di solito ottieni questi blocchi ogni volta che un comando come update / commit / ... viene interrotto a causa di un errore. Questi blocchi possono essere rimossi eseguendo il comando cleanup sulla copia di lavoro, come descritto nella sezione chiamata "Cleanup".

...


2

Non avevo idea di quale file avesse il blocco, quindi quello che ho fatto per uscire da questo problema è stato:

  1. Sono andato alla cartella di livello più alto
  2. Fare clic su pulizia e spuntare anche dai metodi di pulizia -> Rompi serrature

Questo ha funzionato per me.


1

Avevo provato varie cose, incluso "Clean Up" nelle sottodirectory inferiori. Infine, ho provato ad aggiornare la cartella di primo livello. Niente. Poi ho letto il suggerimento "Ripulisci il livello superiore". L'ho provato. La parte di pulizia è riuscita, ma il blocco è rimasto. La mia soluzione era tornare al livello superiore, ripulire, quindi ripulire ogni cartella rossa (!) In cui potevo approfondire . Dopo tutto è stato "ripulito", l'aggiornamento ha funzionato perfettamente. Anche il suggerimento "break lock" sembra buono, con l'eccezione che qualcuno nella tua squadra potrebbe avere un blocco legittimo sulle cose.


0

Sono riuscito a bloccarmi da un file in svn - non so come - ma quando ho provato a (ri) -ottenere il blocco (Tortoise mostrava l'opzione "Ottieni blocco" per il file), si è lamentato che aveva già il serratura. Ho provato a cancellare il file e ad eseguire il cambio di directory - stesso risultato. Ho provato CleanUp (incluso l'aggiornamento dell'overlay), ma anche quello non è riuscito.

La soluzione era entrare nel repo-browser Tortoise, trovare il file e utilizzare la funzione break lock .


0

Se questo ( https://stackoverflow.com/a/11764922/3045875 ) non aiuta: controlla se un altro strumento SVN sta interferendo e chiudi lo strumento. Abbiamo solo faticato un paio d'ore a unire utilizzando TortoiseSVN e abbiamo avuto dozzine di tali errori di blocco. Alla fine abbiamo capito che l'integrazione SVN di Matlabs stava interferendo e dopo aver chiuso tutto ha funzionato.


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.