Удобно переместить класс в другой пакет в Eclipse без использования SVN

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

  •  05-07-2019
  •  | 
  •  

Вопрос

При перемещении файла из old.package в new.package я хочу, чтобы произошли две вещи:

<Ол>
  • Обновите все ссылки на этот класс (во всех файлах проекта), чтобы использовать новый пакет
  • svn move old / package / Foo.java new / package / Foo.java
  • Я использую Subversive в Eclipse Ganymede. Когда я просто перетаскиваю файл из одного пакета в другой, все ссылки обновляются, и файл перемещается в файловой системе. Но SVN не знает об этом, и поэтому команда svn move old / package / foo.java new / package / Foo.java не работает (очевидно), когда old / package / Foo.java не существует (потому что затмение уже переместило его).

    Есть ли способ заставить eclipse выполнить рефакторинг, но использовать svn для перемещения файла в файловой системе? Надеюсь, я просто упускаю что-то очевидное: -)

    Это было полезно?

    Решение

    Я использую Subclipse , и он поддерживает поддержку перемещения файлов между пакетами

    Другие советы

    Я экспериментировал и думаю, что нашел способ:

    1) Черепаха - переместите файл, используя контекстное меню, перетащенное правой кнопкой мыши (или любой другой метод SVN, который вам нужен).

    2) Используйте файловую систему Windows, чтобы переместить ее обратно.

    3) Перетащите файл в Eclipse, чтобы обновить все ссылки.

    4) Фиксация - отображается как удаление / добавление, но сохраняет историю и изменяет ссылки на пакеты в одном коммите (сохраняя каждый коммит встраиваемым).

    Старый вопрос, но я продолжаю к нему возвращаться, так что это моя документация!

    Юваль прав. Это звучит как (очень неудачно!) Недостаток в Subversive. (не имея опыта работы с Subversive, я не могу сказать наверняка) Subclipse определенно справляется с этим правильно, подключая нужные API в Eclipse.

    Вы не можете сделать оба одновременно, потому что перемещение файлов само по себе недостаточно. Файлы должны быть изменены, чтобы ваш код снова мог быть скомпилирован. Так что сделайте рефакторинг с Eclipse и позвольте Subclipse сделать свое волшебство (удалить старые файлы, добавить новые файлы) после переезда.

    Если вы позволите Eclipse выполнить рефакторинг, то, несомненно, он внесет изменения в реальные файлы, которые SVN должен получить при фиксации корневого каталога? Я не думаю, что движение сократит его, хотя, SVN придется выяснить, что файл отсутствует в исходном каталоге, но заново добавить его из нового каталога. Это неприятная ситуация, я бы не знал, какой метод лучше, я бы просто провел рефакторинг, а затем зафиксировал рут лично, хотя это и не было бы ходом.

    Лицензировано под: CC-BY-SA с атрибуция
    Не связан с StackOverflow
    scroll top