A pasta está bloqueada e não consigo desbloqueá-la


108

Quando estou tentando atualizar ou confirmar o código de um projeto, ele me diz que a pasta está bloqueada. Quando tento "desbloquear", diz que não há nada para desbloquear neste espaço de trabalho.

O que isso significa? Por que não consigo atualizar, confirmar ou até mesmo limpar o projeto.


Qual versão do svn você está usando?
Chriseyre2000

Assembla para um repositório, Tourtise SVN 1.7
Iyad Al aqel

Então, você tem uma pasta .svn em cada diretório ou apenas a raiz?
Chriseyre2000

Você tentou verificar o projeto novamente em uma cópia de trabalho separada?
Bernard

Sim, está funcionando se eu verificar em uma pasta diferente, mas o banco de dados não está abrindo
Iyad Al aqel

Respostas:


161

Clique com o botão direito na pasta do diretório de trabalho do Subversion e selecione TortoiseSVN-> Limpar no Menu de Contexto. Isto irá percorrer seu caminho através do seu diretório de trabalho e limpar quaisquer ações incompletas, remover os bloqueios locais (que é diferente de usar o bloqueio do Subversion de um arquivo no repositório que permite que todos saibam sobre o bloqueio).

Se isso não funcionar, veja se você consegue encontrar os nomes dos arquivos que foram alterados, mas ainda não confirmados, salve-os e refaça o checkout.


28
Eu tive esse problema e a limpeza não funcionou (falha na limpeza por causa dos bloqueios locais), mas ir até a pasta pai (que também estava sob controle de versão) e fazer a limpeza lá corrigiu o problema.
Malvino

2
Você pode quebrar os bloqueios locais marcando a Break locksopção.
aagjalpankaj

1
O comentário de @Malvineous é precioso. Deve postar isso como uma resposta.
Lazy Ninja de

16

Se o arquivo foi bloqueado por você (mesma conta svn), você pode seguir estas etapas:

Clique com o botão direito no arquivo ou pasta bloqueado e selecione TortoiseSVN-> Obter bloqueio ... , e marque " [] Roubar os bloqueios " no canto inferior esquerdo da caixa de diálogo, clique em "OK". Se for concluído com sucesso, tudo bem. Quando você clica com o botão direito no arquivo novamente, você pode ver TortoiseSVN-> Liberar bloqueio ... , clique para desbloquear.


12

Usando a linha de comando svn para desbloquear as pastas locais, basta usar svn cleanup.

Antes:

# svn commit -m "fixing #1234"

comprometer

# svn st

antes

# svn cleanup

Depois de:

# svn st

depois de

# svn commit -m "fixing #1234"

depois de 2


10

Para qualquer pessoa que ainda esteja tendo esse problema ( Erro: Cópia de trabalho '{DIR}' bloqueada. ), Eu tenho sua solução:

Eu descobri que quando uma das janelas do TortoiseSVN falha, ele deixa um TSVNCache.exe que ainda tem alguns identificadores para sua cópia de trabalho e que está causando os problemas de bloqueio que você está vendo (e também impede que o Clean Up faça seu trabalho).

Então, para resolver isso:

Ou

1a) Use o Process Explorer ou semelhante para excluir os identificadores de propriedade de TSVNCache.exe

1b) ..Ou ainda mais fácil, basta usar o Gerenciador de Tarefas para matar TSVNCache.exe

Então

2) Clique com o botão direito -> TortoiseSVN -> Limpar. Apenas "Limpar o status da cópia de trabalho" precisa ser verificado.

A partir daí, boa atualização / comprometimento. Você pode reproduzir o comportamento do Lock executando SVN Update e, em seguida, eliminando rapidamente o processo TortoiseProc.exe antes que a atualização termine.


8

Esta foi a primeira vez que tive esse problema. Até tentei reiniciar o PC, sem efeito. Isso resolve meu problema:

Solução para mim:

  1. Clique com o botão direito em Project Working Directory.
  2. Navegue pelo TortoiseSVN .
  3. Navegue para limpar .
  4. Deixe todas as opções padrão e marque Break Locks
  5. Clique OK

Isso funciona para mim. Eu fui capaz de enviar alterações.


1
Marcar a caixa de seleção Break Locks corrige meu problema.
Banketeshvar Narayan

Esta é a resposta perfeita que estou procurando. Muito obrigado
vamshi krishna kurella

Esta deve ser a resposta correta. Prático, fácil e direto ao ponto!
Oana-Elena Danescu

3

Para desbloquear um arquivo em sua cópia de trabalho do prompt de comando que está bloqueado por outro usuário, use a --forceopção.

$ svn unlock --force tree.jpg


E se eu quiser desbloquear um diretório?
IgorGanapolsky

@IgorGanapolsky Dê o nome do diretório em vez do nome do arquivo no comando acima
manav mn

@IgorGanapolsky que mensagem de erro você está recebendo. Deixe-me verificar
manav mn

O nó não é um arquivo !
IgorGanapolsky

3

Eu tive esse problema e segui as etapas abaixo para resolvê-lo:

  1. Vá para a pasta principal em vez da pasta secundária
  2. Selecione a limpeza de SVN
  3. Clique em OK.

Faça esta etapa na pasta pai em vez da pasta filha!

Funcionou para mim!


1

Eu estava movendo uma pasta para um nível acima e para outra pasta. Meu erro foi mover de dentro da pasta pai.

Mau exemplo:

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

O SVN precisa atualizar o diretório pai com as informações das pastas excluídas.
Você deve fazer isso a partir da raiz comum das pastas de origem e destino ou usar caminhos completos.

Bom exemplo:

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

1

Eu tive esse problema de não conseguir desbloquear um arquivo do lado do cliente. Decidi ir para o lado do servidor, que era muito mais simples.

No servidor SVN:

Localize fechaduras

 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"

Remover o cadeado

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

É isso aí!


0

Solução:

  1. Clique com o botão direito em Project Working Directory.
  2. Navegue pelo TortoiseSVN.
  3. Navegue para limpar.
  4. Selecione Limpar o status da cópia de trabalho (marque)
  5. Clique OK
  6. Repita as etapas 1 e 2 e navegue para liberar o bloqueio.
  7. Clique em OK. O bloqueio do seu projeto é aberto.

0

Além da resposta de David M, ao fazer a limpeza -> marque a opção 'quebrar bloqueios'. Isso garantirá a liberação dos bloqueios. Então faça svn update. Isso funcionou para mim.


0

Para desbloquear um documento bloqueado: 1. Clique com o botão direito -> Bloquear 2. Marque a caixa de seleção "Roubar os bloqueios" 2. Libere o bloqueio


0

Eu pesquiso muito sobre esse problema, mas nenhuma solução conserta meu problema até que eu tente o seguinte:

Minha pasta repo é compartilhada com uma máquina virtual Windows xp, então eu executo a limpeza da VM e, em seguida, executo o SVN UPDATE no host.

Funcionou para mim

Saudações da Costa Rica.


0

Consegui resolver esse problema em minha máquina renomeando as pastas para diminuir o caminho da pasta.


-1

Isso aconteceu depois de o Tortoise ser corrompido e travar ao tentar atualizar as pastas. Acabei reinstalando o Tortoise, mas o bloqueio fantasma ainda estava presente. A partir daí tive que deletar a pasta e fazer um novo checkout. Obviamente, tive muita sorte por não ter nenhuma nova alteração para fazer commit no momento. De qualquer forma, não são boas notícias, e se alguém tiver uma solução melhor, eu adoraria ouvir. Mesmo usando "Break Lock", ou seja, desbloquear com a opção de forçar, nada mudou.


-1

Limpe, marque todas as caixas de seleção => Este trabalho para mim


O mesmo que Đức Thắng Nguyễn. Faça uma limpeza "robusta".

-1

Encontrei este problema após estas operações:

  1. bloquear a pasta
  2. modificar arquivos
  3. remover arquivos e atualizar pastas -> novos arquivos baixados
  4. tente confirmar ou liberar o bloqueio

Eu finalmente resolvi o problema forçando o bloqueio novamente: TortoiseSVN -> Obter bloqueio -> marque "roubar bloqueio" e depois confirme ou libere o bloqueio.

Ao utilizar nosso site, você reconhece que leu e compreendeu nossa Política de Cookies e nossa Política de Privacidade.
Licensed under cc by-sa 3.0 with attribution required.