Tenho muitas alterações em uma pasta de trabalho e algo estragou tudo ao tentar fazer uma atualização.
Agora, quando emito uma 'limpeza svn', recebo:
>svn cleanup .
svn: In directory '.'
svn: Error processing command 'modify-wcprop' in '.'
svn: 'MemPoolTests.cpp' is not under version control
MemPoolTests.cpp é um novo arquivo que outro desenvolvedor adicionou e foi derrubado na atualização. Não existia na minha pasta de trabalho antes.
Existe algo que eu possa fazer para tentar avançar sem precisar fazer check-out de uma nova cópia do repositório?
Esclarecimento: Obrigado pelas sugestões sobre como mudar o diretório e trazer uma nova cópia para baixo. Eu sei que é uma opção, mas é uma que eu gostaria de evitar, pois há muitas alterações aninhadas em vários diretórios (isso deveria ter sido um ramo ...)
Estou esperando uma maneira mais agressiva de fazer a limpeza, talvez de alguma forma forçar o arquivo SVN está tendo problemas para voltar a um estado conhecido (e tentei excluir a cópia de trabalho dele ... isso não ajudou).
Respostas:
Quando começar tudo de novo, não é uma opção ...
Excluí o arquivo de log no
.svn
diretório (também excluí o arquivo incorreto.svn/props-base
), fiz uma limpeza e retomei minha atualização.fonte
find . -type f -name lock
sudo rm -rf | find . -type f -name lock
.svn/prop-base
eu tenho.svn/[pristine|tmp|entries|format|wc.db]
As coisas mudaram com o SVN 1.7, e a solução popular de excluir o arquivo de log no diretório .svn não é viável com a mudança para uma implementação de cópia de trabalho de banco de dados.
Aqui está o que eu fiz que parecia funcionar:
Isso é um pouco confuso, em termos de processos. Basicamente, o que estamos fazendo é excluir o .svn corrompido e criar um novo .svn para o mesmo caminho de checkout. Em seguida, movemos esse novo .svn para o diretório de trabalho antigo e o atualizamos para o repositório.
Acabei de fazer isso no TSVN e parece funcionar bem e não requer uma verificação e download completos.
-Jody
fonte
svn cleanup --force
. E é claro que todas as operações de adição, exclusão e (com 1.8) renomeação são perdidas.Dê uma olhada
http://www.anujvarma.com/svn-cleanup-failedprevious-operation-has-not-finished-run-cleanup-if-it-was-interrupted/
Resumo da correção do link acima (Agradecimentos a Anuj Varma)
fonte
Se todo o resto falhar:
fonte
A versão mais recente (estou usando o 1.9.5) resolve esse problema adicionando uma opção de "Quebrar bloqueios" no menu de limpeza. Apenas verifique se esta caixa de seleção está marcada ao fazer a limpeza.
fonte
Esta resposta se aplica apenas a versões anteriores à 1.7 (obrigado @ ŁukaszBachman) .
O Subversion armazena suas informações por pasta (em .svn), portanto, se você está apenas lidando com uma subpasta, não precisa fazer check-out de todo o repositório - apenas a pasta que funcionou:
Isso fornecerá uma boa cópia de trabalho da pasta borked, mas você ainda terá as alterações em borked_dir.bak. O mesmo princípio se aplica ao Windows / TortoiseSVN.
Se você tiver alterações em uma pasta isolada, consulte o
ou
fonte
svn up
o mesmo repo que estava no meio de umasvn up
aba diferente - esqueci que tinha feito isso e o deixei incompleto na noite anterior..svn
diretório.Então
Espero que ajude
fonte
Eu tive o mesmo problema. Eu não poderia confirmar, e a limpeza falharia.
Usando um cliente de linha de comando, pude ver uma mensagem de erro indicando que estava falhando ao mover um arquivo de
.svn/props
para.svn/prop-base
.Olhei para o arquivo específico e descobri que estava marcado como somente leitura. Após remover o atributo somente leitura, consegui limpar a pasta e confirmar minhas alterações.
fonte
É possível que você tenha um problema com dois nomes de arquivos diferentes apenas em maiúsculas. Se você encontrou esse problema, a criação de outro diretório de cópias de trabalho não resolve o problema.
Os sistemas de arquivos atuais do Windows (ou seja, ruins) simplesmente não refletem a diferença entre
Filename
eFILEname
. Você tem duas correções possíveis:svn rename -m "broken filename case" http://server/repo/FILEname http://server/repo/filename
fonte
Execute o
svn cleanup
comando em um terminal (se houver falha no Eclipse, que foi o meu caso):Tentei soluções diferentes explicadas aqui, mas nenhuma funcionou .
Equipe de ação → Falha na atualização da cabeça :
Equipe de ação → A limpeza falha com o mesmo erro.
Solução que funcionou para mim: execute o comando svn cleanup em um terminal .
O comando foi bem sucedido.
Em seguida, a equipe → Atualização no Eclipse funcionou novamente.
Nota: minha versão do SVN é 1.9.3.
Verifique também a resposta de Chris se
svn cleanup
não funcionar.fonte
Eu tentei fazer
svn cleanup
através do console e recebi um erro como:Então, eu criei este arquivo manualmente (vazio) e o fiz
svn cleanup
novamente. Desta vez, foi feito OK.fonte
Eu tive o mesmo problema. Para mim, a causa foi um conflito com o EasySVN e (TortoiseSVN ou apenas SVN). Eu tive atualização automática e confirmação com o EasySVN (que não estava funcionando).
Quando desliguei, não consegui limpar, confirmar ou atualizar. Nenhuma das soluções acima funcionou, mas a reinicialização funcionou :)
fonte
Eu apenas tive esse mesmo problema no Windows 7 de 64 bits. Executei o console como administrador e excluí o diretório .svn do diretório do problema (ocorreu um erro sobre logs ou algo assim, mas o ignorei). Em seguida, no explorer, excluí o diretório do problema que não estava mais aparecendo como sob controle de versão. Em seguida, executei uma atualização e as coisas prosseguiram conforme o esperado.
fonte
Se o problema for a distinção entre maiúsculas e minúsculas (que pode ser um problema ao fazer check-out em um Mac e no Windows) e você não tiver a opção de fazer check-out em um sistema * nix, o seguinte deve funcionar. Aqui está o processo desde o início:
(O checkout segue ... então ...)
Aqui, o SVN está tentando verificar dois arquivos com nomes semelhantes que diferem apenas entre maiúsculas
Header_3_noBookmark.gif
e minúsculas - eHeader_3_nobookmark.gif
. Os sistemas de arquivos Mac são padrão para não diferenciar maiúsculas de minúsculas de uma maneira que faz com que o SVN se engasgue em situações como essa. Assim...No entanto, correr
svn cleanup
não funciona, como sabemos.spacer.gif
não é o problema aqui… Simplesmente não pode passar do erro anterior para o próximo arquivo. Portanto, excluí todos os arquivos do diretório que não sejam.svn
e removi o log SVN. Isso fez a limpeza funcionar, para que eu pudesse fazer check-out e renomear o arquivo incorreto.Depois disso, consegui voltar ao diretório raiz do projeto e executar o
svn up
check-out.fonte
Sempre que tenho problemas semelhantes, uso o rsync (NB: uso Linux ou Mac OS X) para ajudar da seguinte forma:
Dessa forma, você terá um novo checkout, mas com os mesmos arquivos de trabalho. Para mim, isso sempre funciona como um encanto.
fonte
Eu me deparei com isso ultimamente. O truque para mim foi depois de selecionar "Limpar", na caixa de diálogo de opções pop-up, marque "Break Locks" e depois "OK". Limpou com sucesso para mim.
fonte
O Subclipse fica confuso com o comportamento de bloqueio verdadeiramente diabólico do Windows. Unlocker é seu amigo. Isso pode encontrar arquivos bloqueados e liberar à força os bloqueios.
fonte
(Antes de tentar mover pastas e fazer um novo checkout.)
Exclua a pasta em que os arquivos incorretos estão - sim, até a
.svn
pasta e faça umasvn cleanup
na pasta superior / principal.fonte
Eu enfrentei o mesmo problema. Após algumas pesquisas na Internet, encontrei o artigo abaixo . Então percebi que estava logado como um usuário diferente do usuário em que havia usado para configurar o SVN, basicamente uma questão de permissão.
fonte
Quando enfrento esse problema com o TortoiseSVN (Windows), vou ao Cygwin e executo a ' limpeza do svn '; ele limpa corretamente para mim, após o qual tudo funciona no TortoiseSVN.
fonte
As respostas aqui não me ajudaram, mas antes de verificar o projeto novamente, fechei e abri o Eclipse (Subversive é meu cliente SVN) e o problema desapareceu.
fonte
Pode não ser aplicável em todas as situações, mas quando eu encontrei esse problema recentemente, minha "correção" era atualizar o pacote Subversion no meu sistema. Eu estava executando o 1.4.algo e, quando atualizei para o mais recente (1.6.6 no meu caso), o check-out funcionou.
(Tentei fazer o download novamente, mas um checkout para um diretório limpo sempre ficava no mesmo local.)
fonte
Às vezes, o bloqueio somente leitura acontece em unidades de rede com o Windows. Tente desconectar e reconectar novamente. Em seguida, limpe e atualize.
fonte
Depois de analisar a maioria das soluções citadas aqui, eu ainda estava recebendo o erro.
A questão era insensível caso OS X . O check-out de um diretório que possui dois arquivos com o mesmo nome, mas com letras maiúsculas diferentes causa um problema. Por exemplo, ApproximationTest.java e Approximationtest.java não devem estar no mesmo diretório. Assim que nos livramos de um dos arquivos, o problema desaparece.
fonte
Eu encontrei um problema em que, após uma atualização, o SVN mostrava uma pasta como conflitada. Estranhamente, isso só era visível através da linha de comando - o TortoiseSVN achou que estava tudo bem.
svn cleanup
,svn revert
,svn update
Esvn resolve
eram todos bem sucedida no que fixa esta.Acabei por resolver o problema da seguinte forma:
Depois disso, estava tudo bem.
Observe que eu não tive nenhuma alteração local; portanto, não sei se você estaria em risco. Eu não usei o método delete / update sugerido por outras pessoas - entrei nesse estado tentando isso no diretório my_dir / sub_dir / sub_sub_dir (que começou com os mesmos sintomas) - então não queria me arriscar a piorar as coisas novamente!
Não é exatamente um tópico, mas talvez seja útil se alguém se deparar com este post como eu.
fonte
Não não não! Se você estiver usando o SVN 1.7 ou superior, o comando cleanup deve fazer o trabalho!
Também fiz alguns experimentos e descobri que a solução (pelo menos no Eclipse ) estava executando a limpeza apenas para a pasta especificada na mensagem de erro e não para o projeto inteiro!
fonte
eu fiz
sudo chmod 777 -R .
para poder alterar as permissões. Semsudo
, não funcionaria, me dando o mesmo erro que executar outros comandos.Agora você pode fazer o que
svn update
for, sem ter que desfazer o diretório inteiro e recriá-lo. Isso é especialmente útil, pois seu IDE ou editor de texto já pode ter certas guias abertas ou problemas de sincronização. Você não precisa descartar e substituir seu diretório de trabalho por esse método.fonte
Resolvi esse problema copiando o diretório .svn de um colega no meu e atualizando minha cópia de trabalho. Foi uma solução agradável, rápida e limpa.
fonte
Existem algumas sugestões muito boas na resposta anterior, mas se você estiver tendo problemas com o TortoiseSVN no Windows (um bom produto, mas ...) sempre faça o fallback para a linha de comando e faça uma "limpeza svn" simples primeiro.
Em muitas circunstâncias, o cliente Windows não executará o comando cleanup, mas a limpeza funciona bem usando o utilitário de linha de comando SVN.
fonte
Enquanto enfrentava um problema semelhante, a mesclagem manual na exibição de sincronização do repositório ajudou a resolver o problema.
Um nome de arquivo estava em conflito com outro e mencionava claramente o problema. Renomear o arquivo mais recente para um nome diferente o resolveu.
fonte