Как мне использовать Eclipse Refactoring Tools и поддерживать синхронизацию с SVN через Subclipse?

Я обнаружил, что когда мне нужно переименовать класс Java (и, следовательно, исходный файл) или изменить имя пакета (и, следовательно, переместить исходный файл [ы]), я могу либо:

  1. Используйте приятные и полезные инструменты рефакторинга Eclipse, и это здорово, поскольку все каскадные задачи для меня выполнены. Тем не менее, у меня возникла тяжелая борьба с Subversion, чтобы повторить изменения в репо.
  2. Я могу сначала переименовать / переместить в Subversion, обновить локальный, а затем инструменты рефакторинга в Eclipse не работают.

Кто-нибудь может посоветовать предпочтительную процедуру?

4 ответа

Решение

Начиная с выпусков 1.4.x, Subclipse справляется с этим довольно хорошо. Если у вас есть ошибки, пожалуйста, сообщите о них. В предыдущих выпусках он обрабатывал некоторые ситуации, но не другие. Это было связано с ограничениями Subversion, которые были исправлены в SVN 1.5. Например, до SVN 1.5, если вы переименовали папку, вы также не могли переименовать файл в папке (пока папка не была зафиксирована). Подобные вещи были очень распространенным рефакторингом, и SVN мешал.

Теперь все работает довольно хорошо.

отметка

Я не хочу входить и говорить "ты делаешь это", но поскольку в твоей теме упоминается Subclipse - Subclipse интегрируется с инструментами рефакторинга Eclipse. Так же как и Subversive. Когда вы переименовываете класс, он выполняет для вас 'svn mv'. Вы никогда не должны пытаться повторить эти шаги вручную.

Интересно, если по какой-то причине Subclipse не присоединяется к вашему проекту - если он не знает, что ваш проект является проектом Subversion. Тогда, очевидно, это ничего не сделает.

Если вы не используете Subclipse/Subversive... начните.:)

Вы пробовали подрывную деятельность? Рефакторинг, кажется, работает нормально для меня с этим.

На самом деле, я тоже попробовал subclipse, и, похоже, с этим хорошо справляется, по крайней мере, с версией 1.4.7. Я только что попытался переименовать пакет и класс. Eclipse помечает старый как удаленный и добавляет новый, запланированный для добавления в хранилище.

Subclipse позаботится о перемещении / переименовании svn при рефакторинге в Eclipse.

Другие вопросы по тегам