Restaurar conexão do projeto Eclipse subversion

100

Tenho um projeto no subversion, que estou desenvolvendo usando o Eclipse. Eu fiz a verificação original do repositório svn de dentro do Eclipse. Tudo estava bem por algumas semanas, então por alguma razão desconhecida, o Eclipse (especificamente: subclipse em Ganymede) não reconhece mais meu projeto como estando sob controle svn. O menu de contexto da equipe mostra apenas as opções de menu básicas "aplicar patch" / "compartilhar este projeto". No shell, ainda posso atualizar o projeto usando as ferramentas de linha de comando svn, portanto, sei que as credenciais svn ainda funcionam. Outros projetos em subversão na mesma cópia do Eclipse ainda funcionam.

Sei que posso excluir a cópia local e verificar novamente, mas prefiro entender o que deu errado - consertar o problema em vez de mascarar os sintomas. Onde o Eclipse armazena seu conhecimento de quais projetos estão sob controle de versão? Olhei para o .projectarquivo e o .settingsdiretório, mas não pude ver nenhuma menção óbvia da natureza do svn ou algo semelhante, mesmo nos projetos que ainda estão funcionando corretamente.

Ian Dickinson
fonte

Respostas:

124

Se você estiver usando sublipse como seu provedor de SVN, eu recomendo fazer o seguinte

Equipe -> Compartilhar projeto geralmente é o suficiente para conectar os metadados.

(isto é, supondo que os arquivos .svn ainda estejam lá, o que parecem estar se você puder trabalhar na linha de comando).

Espero que isso ajude porque isso aconteceria, não tenho ideia

Paul Whelan
fonte
9
Tenho o mesmo problema, mas essa resposta não me ajuda. Eclipse me oferece para criar um novo projeto no Subversion. Não há possibilidade de reconectar o projeto.
migu
1
Maneira confirmada de fazer isso.
pestaa
1
Muito obrigado por esta resposta, me economizou muito tempo. Agora posso finalmente atualizar todo o meu conjunto de trabalho.
Cedric Meury
1
Isso funcionou para mim (com Eclipse Indigo 64 bits e Subclipse), obrigado! Queria apenas acrescentar que o comentário "presumindo que os arquivos .svn ainda existem" talvez não seja exatamente correto. Ou seja, fiquei surpreso ao ver que, embora meu projeto ainda esteja associado ao meu repositório (como TortoiseSVN confirmou), não havia um diretório .svn no diretório do projeto ! Sempre pensei que houvesse tal dir em todos os diretórios controlados por SVN, mas vejo agora que não é o caso. De qualquer forma, o ponto do OP era que se o diretório ainda está em configuração, então isso deve funcionar, parece válido.
Rob Cranfill de
1
Também trabalhei no Subversive ... Obrigado!
jaibatrik
23

Eu encontrei uma maneira fácil de reimportar o projeto

Jerry
fonte
1
Você é o cara ... :) Eu só tinha a opção "Aplicar Patch" e isso resolveu ... Por que não pensei nisso :)
IncrediApp
Sim, reimportar parece ser o mais fácil :-)
user942640
Eu só tinha a opção de menu "Aplicar patch" também. A reimportação funcionou. Deve haver um arquivo de configuração em algum lugar que determine isso. Em retrospecto, gostaria de ter feito backup do espaço de trabalho de configuração relevante e arquivos / pastas do projeto para que eu pudesse ver o que mudou. Esperançosamente, a próxima pessoa que ler esta solução o fará e compartilhe o que mudou.
Pixelstix
7

Apenas fazer Team -> Share Project (de acordo com a resposta a esta pergunta fornecida por @Paul Whelan) não funcionou para mim. O assistente de compartilhamento de projeto agiu como se o projeto ainda não estivesse no SVN (embora a pasta .svn estivesse presente para o meu projeto).

Acabei resolvendo o problema desinstalando os add-ons Subversive e JavaHL (via Ajuda | Sobre o Eclipse | botão Detalhes de instalação | guia Software instalado | Desinstalar ...) e, em seguida, reinstalando o Subversive. Quando solicitado após reiniciar o Eclipse, optei por instalar o conector SVNKit em vez do conector JavaHL.

Depois de fazer isso, quando tentei mais uma vez Equipe -> Compartilhar Projeto ..., o Eclipse reconheceu corretamente que meu projeto já estava presente no SVN e restaurou a conexão com sucesso.

Jon Schneider
fonte
Por que compartilhar projeto? compartilhar projeto irá publicar seu projeto local para o servidor svn, se você tiver algo localmente que não deveria ir para a máquina svn isso pode causar problemas, o que ele quer fazer é restabelecer a conexão, o que aparentemente não é possível, solução seria um novo check-out, eventualmente, instale o subclipse em vez do subversivo
JBoy
4

Adendo: acontece que meu problema se manifesta quando eu inicio o Eclipse fora da vpn da empresa, com um projeto no espaço de trabalho que está anexado a um repositório svn dentro da vpn. Felizmente, mudar os plug-ins Eclipse svn de subversivo para subclipse resolveu o problema.

Ian

Ian Dickinson
fonte
3

Do eclipse, fechei o (s) projeto (s) e reabri o que resolveu o problema. Todos os links do SVN estão de volta para todos os projetos em meu espaço de trabalho.

Nathan
fonte
1
Tentei fechar e reabrir o projeto, mas não funcionou para mim.
Epu
2

Eu tive o mesmo problema e este fórum me ajudou a encontrar a resposta certa.

Meu projeto anterior foi configurado usando subclipse. O novo eclipse teve subvesive.

Instalar o subclipse me ajudou a recuperar as opções de svn em equipe!

Espero que isso ajude mais alguém.

Saudações

Anshu Prateek

user414944
fonte
Não consigo instalar o subclipse no kepler. qualquer solução?
Vivek,
1

Sem saber em que plataforma você está, não sei se o seu problema é semelhante ao meu. No entanto, recentemente (na verdade, em duas plataformas diferentes!) Tive problemas em que uma atualização para o Subversive (ou talvez o próprio Eclipse, não está claro) fez com que os conectores não carregassem mais. Sem os conectores, o Subversive não pode se conectar a um projeto. Mas o Eclipse não vai bloquear você do seu projeto por causa disso, ele apenas removerá a funcionalidade relacionada ao SVN.

Observe a visualização de Erros, que é um log dos vários erros do Eclipse (exceções de classe não encontrada, etc.) e veja se há alguma linha relacionada aos componentes do Subversive. Infelizmente, eu realmente não posso recomendar uma solução - na minha plataforma Mac OSX foi o suficiente para reinstalar os principais elementos e conectores Subversive. Na minha máquina Linux (possivelmente devido a uma atualização do sistema operacional), estou tendo que reinstalar completamente o Eclipse, pois muito lixo se acumulou para que eu seja capaz de investigá-lo totalmente.

rjray
fonte
1

No lançamento do Juno com o Subversive, eu fiz:

  • Arquivo / Importar abre o pop-up Importar.
  • A partir daí, selecione Projetos Gerais / Existentes no Espaço de Trabalho.
  • No próximo painel, você seleciona o diretório raiz. Em seguida, ele mostrará todos os subdiretórios. Todos eles serão selecionados por padrão.
  • Desmarque os que você não deseja.

Em seguida, ele "importará" seu diretório existente, que pode ser usado no local em que já estão localizados dentro do diretório do seu espaço de trabalho.

Quelmite
fonte
0

O mesmo no meu caso: os diretórios .svn estavam lá, mas meu projeto não suportava ações svn.

Depois de cutucar um pouco, descobrimos que o plugin subversivo simplesmente desapareceu após um eclipse de encerramento forçado.

A solução foi (re) instalar o subversivo, e agora está tudo bem novamente.

Saúde v.

ATUALIZAÇÃO: Troquei o eclipse para uma nova versão que simplesmente não tinha o plugin instalado, por isso tive que instalá-lo do zero.

tishma
fonte
0

Isso funcionou para mim: clique com o botão direito -> TortoiseSVN -> Configurações -> Propriedades de sobreposição de ícone, selecionando Shell como cache de status. Clique em Ok, Atualizar página.

ranu
fonte
0

Posso reproduzir esse problema de maneira confiável - ele ocorre ao fazer check-out de certos projetos Maven, executando "Check out as Maven Project ..." não na pasta que contém o próprio POM, mas em um diretório pai (como "trunk"). Nesse caso, o Subclipse faz o check-out do projeto sem nenhuma reclamação, colocando-o em um diretório de espaço de trabalho com um nome de espaço reservado como maven.1424425443350. Dentro desse diretório, ele cria um subdiretório com o nome do artefato Maven. Isso confunde o Subclipse e o Subversion: o Subclipse, como vimos, esquece imediatamente que o projeto está sob controle de versão e, se você invocar a svn statuspartir da linha de comando no maven.1424425443350diretório, ele dirá que o diretório está sob controle de versão, mas que todos os arquivos controlados por versão estão faltando.

Nenhuma das soluções alternativas apresentadas nas outras respostas funcionará se for isso que fez com que o Subsclipse esquecesse sua conexão SVN. Em vez disso, a única solução é excluir o projeto e fazer o check-out novamente, desta vez certificando-se de que o check-out seja realizado em um diretório que contém um POM em vez de algum diretório de nível superior.

Uma solução geral melhor seria o Subclipse recusar-se a executar "Check out as Maven Project ..." em diretórios que não contêm um POM, ou então lidar melhor com os casos em que tenta fazer isso de qualquer maneira, pesquisando subdiretórios de projetos Maven.

Psiconauta
fonte
0

Eu estava usando duas implementações de SVNKit (1.7.xe 1.8.x) simultaneamente com a versão do repositório SVN (1.8.x).

Como resultado, a Equipe -> Compartilhar projetos ... sempre solicitou uma mensagem de confirmação. Obviamente, foi usado o SVNKit 1.7.x que não é compatível com o SVN 1.8.x.

Depois de remover o SVNKit 1.7.x, o eclipse usou o único SVNKit versão 1.8.x correto disponível e tudo funcionou conforme o esperado.

Thomas Rawyler
fonte