Как использовать Eclipse Refactoring Tools и поддерживать синхронизацию с SVN через Subclipse? - PullRequest
12 голосов
/ 05 февраля 2009

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

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

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

Ответы [ 4 ]

10 голосов
/ 06 февраля 2009

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

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

Mark

4 голосов
/ 05 февраля 2009

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

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

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

3 голосов
/ 05 февраля 2009

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

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

0 голосов
/ 05 февраля 2009

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

...