Erro de cópia de trabalho bloqueado no tortoise svn durante a confirmação

94

Estou usando o Tortoise SVN para atualizar e enviar alterações para o repositório no servidor sempre que faço alterações em minha cópia de trabalho. Mas a partir de alguns dias não sou capaz de fazer o commit das alterações e recebo o seguinte erro sempre que tento fazer o commit.

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

Eu tentei desbloquear a pasta clicando com o botão direito nela e selecionando Tortoise SVN> Liberar bloqueio , diz

Não há nada para desbloquear. Nenhum arquivo tem bloqueio nesta cópia de trabalho

Qual pode ser o problema?

Anil
fonte

Respostas:

232

Sem problemas ... tente isto:

  • Vá para a pasta SVN de nível superior.
  • Clique com o botão direito na pasta (que contém seus arquivos svn)> TortoiseSVN> CleanUp

Isso certamente resolverá seu problema. Eu fiz isso muito tempo ... :)

Nota. Certifique-se de que a opção "Quebrar bloqueios" esteja selecionada na caixa de diálogo Limpar.

MicroEyes
fonte
obrigado @MicroEyes ... agora posso me comprometer. Só tenho uma pequena dúvida. Depois de fazer alterações em um arquivo, devo primeiro confirmar e depois atualizar o arquivo (na cópia de trabalho) ou atualizar e depois confirmar?
Anil
2
Sempre siga a atualização e depois confirme. Caso contrário, você receberá uma mensagem do TortoiseSVN para atualizar, porque sua cópia da versão é mais antiga do que armazenada no servidor SVN. Então, de qualquer forma, você tem que atualizar e comprometer.
MicroEyes
1
sim ... isso resolveu o meu problema relacionado à atualização da minha cópia atual para a revisão svn.
Jayesh Bhoi
Acabei de adicionar arquivos no SVN e tentar confirmá-lo, mas recebi o mesmo erro. Tentei o comando cleanUp, mas não consigo resolver este problema.
Ashok Chandrapal
Estou experimentando muito isso. Posso reduzir o tempo que o svn leva antes de mostrar esta mensagem de erro (cinco a dez segundos atualmente)? Posso começar a limpeza mais cedo.
não um usuário
15

A resposta aceita não funcionou para mim. Para corrigir esse problema, tive que clicar com o botão direito do mouse no arquivo que estava bloqueado e selecionar repo-browser. Isso abriu um pop-up com os arquivos como eles estão no servidor SVN. Em seguida, cliquei com o botão direito no arquivo bloqueado e selecionei break lock.

Quando fechei o navegador do repositório, de volta ao explorer pude finalmente confirmar!

Johann
fonte
Você só precisa ter certeza de que a opção "Quebrar bloqueios" está selecionada na caixa de diálogo Limpar. Acho que está selecionado por padrão (e é por isso que não foi mencionado na resposta original).
Nux,
12
  1. Clique com o botão direito na pasta.
  2. TortoiseSVN-> Verifique se há modificações.
  3. Clique no botão Verificar repositório.
  4. Quebre o bloqueio em todos os arquivos devolvidos.
Elsabe
fonte
3

Eu encontrei esse problema também. Para alguns gostaria de ressaltar que se estiver trancado VERIFIQUE COM SUA EQUIPE. Alguém na equipe pode ter algumas coisas bloqueadas porque estão trabalhando nisso (isso permite que os desenvolvedores trabalhem nas coisas sem que outros entrem e tentem trabalhar no mesmo conteúdo também). Se for esse o caso, liberar o bloqueio e, em seguida, atualizar tem o potencial de perder dados para o desenvolvedor que o bloqueou.

Com isso em mente, minha preocupação era que a opção "limpar" possivelmente mudaria minha cópia de trabalho ou removeria informações do nível Repo do Subversion. Esse não é o caso. A resposta funcionou para mim. O meu travou quando cliquei em cancelar no meio de uma atualização. Acabei puxando alguns dos nossos galhos e não precisava do material, então cliquei em cancelar. Minha cópia de trabalho foi bloqueada. Não consegui encontrar nenhum documento que aparecesse como "bloqueado" quando usei o comando 'liberação de bloqueio'. Isso me deixou confuso e após uma leitura rápida (e este tópico) eu tentei o comando 'limpar'. Depois de uma limpeza, ele resolveu meu problema e nada foi bloqueado mais.

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

Eric
fonte
2

Existem vários significados de "bloqueio" no SVN e algumas dessas respostas que falam sobre "quebrar o bloqueio" ou um colega de equipe segurando um bloqueio não estão usando o significado relevante para a pergunta original. Esta questão está lidando com "bloqueios da cópia de trabalho" (ou seja, eles são inteiramente locais para a cópia de trabalho em seu computador e não têm nada a ver com você ou com seus colegas de equipe bloqueando / retirando um arquivo). A resposta aceita pela MicroEyes refere-se ao uso correto e é a sua melhor opção quando isso acontecer.

Se uma limpeza não funcionar, você pode precisar verificar uma nova cópia de trabalho do projeto. Se você tiver quaisquer arquivos modificados e não confirmados, você precisará copiá-los para a nova cópia de trabalho para não perder suas alterações.

Veja esta página na documentação do Tortoise SVN para uma descrição dos três usos de "bloqueio": http://tortoisesvn.net/docs/nightly/TortoiseSVN_en/tsvn-dug-locking.html

Trecho (ênfase adicionada):

Os três significados de “travar”

Nesta seção, e em quase todas as partes deste livro, as palavras “bloqueio” e “bloqueio” descrevem um mecanismo de exclusão mútua entre usuários para evitar confronto de commits. Infelizmente, existem dois outros tipos de “bloqueio” com os quais o Subversion, e portanto este livro, às vezes precisam se preocupar.

O segundo são os bloqueios da cópia de trabalho , usados ​​internamente pelo Subversion para evitar confrontos entre vários clientes Subversion operando na mesma cópia de trabalho. Normalmente você obtém esses bloqueios sempre que um comando como update / commit / ... é interrompido devido a um erro. Esses bloqueios podem ser removidos executando o comando de limpeza na cópia de trabalho, conforme descrito na seção chamada “Limpeza”.

...

G. Stevens
fonte
2

Eu não tinha ideia de qual arquivo estava bloqueado, então o que fiz para resolver esse problema foi:

  1. Foi para a pasta de nível mais alto
  2. Clique em limpar e também assinalado nos métodos de limpeza -> Quebrar bloqueios

Isso funcionou para mim.

cosmoto91
fonte
1

Tentei várias coisas, incluindo "Limpar" nos subdiretórios inferiores. Finalmente, tentei atualizar a pasta de nível superior. Nada. Então li a dica "Limpe o nível superior". Eu tentei isso. A parte de limpeza teve sucesso, mas o bloqueio permaneceu. Minha solução foi voltar ao nível superior, limpar e, em seguida, limpar cada pasta vermelha (!) Que eu pudesse acessar . Depois que tudo foi "limpo", a atualização funcionou perfeitamente. A dica de "quebrar o bloqueio" também parece boa, com a exceção de que alguém em sua equipe pode ter um bloqueio legítimo nas coisas.

Jim
fonte
0

Eu consegui me bloquear de um arquivo no svn - não sei como - mas quando eu tentei (re) obter o bloqueio (o Tortoise estava mostrando a opção "Obter Bloqueio" para o arquivo), ele reclamou que já tinha o feche. Tentei excluir o arquivo e confirmar a alteração do diretório - o mesmo resultado. Tentei o CleanUp (incluindo a atualização da sobreposição), mas também falhou.

A solução foi entrar no navegador de repositório do Tortoise, encontrar o arquivo e usar a função de quebra de bloqueio .

user1844643
fonte
0

Se isso ( https://stackoverflow.com/a/11764922/3045875 ) não ajudar: Verifique se outra ferramenta SVN está interferindo e feche a ferramenta. Nós apenas lutamos algumas horas para mesclar usando o TortoiseSVN e tivemos dezenas de erros de bloqueio. Eventualmente percebemos que a integração do Matlabs SVN está interferindo e depois de fechar tudo deu certo.

RMK
fonte
-1

Solução Windows:

https://sourceforge.net/projects/win32svn/

1. Baixe-o e adicione-o ao caminho do sistema.

2. Vá para o diretório de trabalho, execute "svn clean" e "svn update" no cmd.

xiaoliuzi
fonte