Convenientemente mover uma classe para um pacote diferente no eclipse sem Borking svn

StackOverflow https://stackoverflow.com/questions/420013

  •  05-07-2019
  •  | 
  •  

Pergunta

Ao mover um arquivo de old.package to new.package Eu quero duas coisas acontecer:

  1. Atualize todas as referências a essa classe (em todos os arquivos do projeto) para que o novo pacote é usado
  2. svn move old/package/Foo.java new/package/Foo.java

Eu uso subversivo dentro do Eclipse Ganymede. Quando eu basta arrastar o arquivo de um pacote para o outro, todas as referências são atualizados e o arquivo é movido em torno do sistema de arquivos. Mas SVN não tem conhecimento disso e, portanto, o comando svn move old/package/foo.java new/package/Foo.java não funciona (obviamente) quando old/package/Foo.java não existe (porque eclipse passou já).

Existe uma maneira de ter eclipse não é refatoração mas usando svn para mover o arquivo no sistema de arquivos? Espero que eu apenas estou faltando algo óbvio: -)

Foi útil?

Solução

Eu uso Subclipse e faz suporte arquivos entre pacotes movendo

Outras dicas

Eu tenho experimentado, e acho que encontrei o caminho:

1) Tartaruga-mover o arquivo usando o menu de contexto clique-arraste para a direita (ou qualquer outro método SVN você quiser).

2) Use as janelas sistema de arquivos para movê-lo de volta.

3) Drag-mover o arquivo no Eclipse para atualizar todas as referências.

4) Comprometer -. Ele mostra como a / add apagar, mas poupa a história, e ele faz mudar as referências de pacotes em um commit (mantendo cada commit edificável)

velha questão, mas eu manter voltar a isso, então esta é a minha documentação!

direita de Yuval. Isso soa como uma deficiência (muito infeliz!) Em subversiva. (Não tendo nenhuma experiência com subversiva Eu não posso dizer com certeza) Subclipse definitivamente lida com isso corretamente ligando para as APIs certas em Eclipse.

Você não pode fazer as duas coisas ao mesmo tempo, porque mover os arquivos por si só não é suficiente. Os arquivos precisam ser modificados para que seu código seja compilable novamente. Então refactor com Eclipse e deixe Subclipse fazer a sua magia (remover arquivos antigos, adicionar novos arquivos) após a mudança.

Se você deixar Eclipse fazer o refactoring então certamente ele vai fazer alterações nos arquivos reais que SVN deve pegar quando você comete o diretório raiz? Eu não acho que um movimento vai cortá-la, porém, SVN vai ter que pegar que o arquivo está faltando seu diretório original mas re add-lo a partir do novo diretório. É uma situação complicada, eu não saberia o que é o melhor método, eu tinha acabado de fazer a refatoração e depois comprometer a raiz pessoalmente, mesmo que ele não seria um movimento.

Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top