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.

Iyad Al aqel
fonte
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.

David W.
fonte
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.

cuixiping
fonte
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

Sebas
fonte
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.

Jonathon J Howey
fonte
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.

WilliamK
fonte
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

manav mn
fonte
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!

Akhilesh
fonte
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
rasky74
fonte
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í!

Stacker
fonte
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.
Vinayak
fonte
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.

Vinnu
fonte
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

user7257040
fonte
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.

Luisca94
fonte
0

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

rsivakumar
fonte
-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.

JMM
fonte
-1

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

Đức Thắng Nguyễn
fonte
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.

med_alpa
fonte