Как использовать инструменты рефакторинга Eclipse и синхронизировать с SVN через Subclipse?
Я обнаружил, что когда мне нужно переименовать Java-класс (и, следовательно, исходный файл) или изменить имя пакета (и, следовательно, переместить исходный файл [s]), я могу либо:
- Используйте приятные и полезные инструменты рефакторинга Eclipse, которые великолепны, поскольку для меня все каскадные задачи выполняются. Тем не менее, у меня тогда есть тяжелая борьба с Subversion, чтобы скопировать изменения обратно в репо.
- Я могу сначала перенести переименования/перемещения в Subversion, обновить мои локальные, а затем инструменты рефакторинга в Eclipse не работают.
Может ли кто-нибудь посоветовать о предпочтительной процедуре?
Ответы
Ответ 1
Так как версии 1.4.x, Subclipse обрабатывает это довольно хорошо. Если у вас есть ошибки, сообщите об этом. В предыдущих выпусках он обрабатывал некоторые ситуации, но не другие. Это было связано с ограничениями Subversion, которые были зафиксированы в SVN 1.5. Например, до SVN 1.5, если вы переименовали папку, вы не могли также переименовать файл в папке (пока папка не была выполнена). Такие вещи были очень распространенными рефакторингами, и SVN мешал.
Теперь все работает очень хорошо.
Марк
Ответ 2
Ненавижу ходить и говорить "ур, делай это", но так как в вашей строке темы Subclipse - Subclipse интегрируется с инструментами рефакторинга Eclipse. Так делает Подрывник. Когда вы переименовываете класс, он выполняет "svn mv" для вас под ним. Вам не нужно пытаться копировать эти действия вручную.
Интересно, почему Subclipse по какой-то причине не присоединяется к вашему проекту - если он не знает ваш проект, проект Subversion. Тогда, очевидно, ничего не получится.
Если вы не используете Subclipse/Subversive... start.:)
Ответ 3
Вы пробовали subversive? Рефакторинг, похоже, отлично работает для меня с ним.
Собственно, я тоже пробовал подзаголовок, и, похоже, он справляется с этим, по крайней мере, с версией 1.4.7. Я просто попробовал переименовать пакет и класс. Eclipse отмечает старый как удаленный и добавляет новый, который планируется добавить в репозиторий.
Ответ 4
Subclipse будет следить за перемещениями/переименованиями svn при рефакторе в Eclipse.