Subversive заставляет Eclipse рассинхронизироваться?

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

К сожалению, похоже, что мне придется вернуться к Subclipse, потому что Subversive, похоже, сломал Eclipse. Мои проекты теперь будут иногда выходить из строя, чаще всего, когда я создаю новый класс или выполняю команду Refactor-> Rename. Под "рассинхронизацией" я имею в виду:

  • Неправильная окраска и стиль синтаксиса. На рисунке ниже «общедоступный» не полностью красный, атрибуты не полностью синие, курсив не в тех местах и ​​т. Д.
  • Выбор элемента / атрибута не работает должным образом, поскольку Eclipse думает, что вы нажали что-то другое. На картинке ниже я нажал на вторую функцию, но было выделено что-то очень странное.
  • Плохо. Автоматические сборки и проверки синтаксиса не работают.
  • Very Bad: All IDE functions that add/change/remove code are broken:
    • Trying to refactor a name will either throw an exception or will change the name of a different element.
    • Добавление автоматического импорта добавит оператор импорта в середину тела класса, удалив все фрагменты кода, которым не повезло, чтобы они мешали.
    • Бог вам в помощь, если активирована настройка «Организовывать импорт при сохранении» ...

Картинка лучше тысячи слов - Почему Eclipse, почему

Интересно, что эту проблему можно временно решить, добавив изменение в испорченный файл и сохранив его. Однако, когда вы это сделаете, вам придется сохранить дважды - после первого сохранения файл «исправлен», но по-прежнему помечен как грязный. Однако это исправление является краткосрочным, так как следующие изменения, которые вы внесете в файл, вероятно, снова рассинхронизируют его.

Я понятия не имею, что здесь происходит. Некоторый поиск в Google привел меня к этой ссылке: Eclipse: Refactor - переименовать полностью напортачил, заменив произвольные символы в файле. У пользователя в связанном вопросе была аналогичная проблема, которая, по-видимому, также была вызвана Subversive. К сожалению, его решение не работает в моем рабочем пространстве.

Я также поспрашивал на работе, и несколько коллег сообщили, что сталкивались с этой проблемой на своих машинах. Все они используют Subversive, а не Subclipse.

Я не знаю, подходит ли для этого StackOverflow или я должен просто отправить это прямо в Eclipse / Subversive как ошибку. Но, может быть, кто-то видел это или что-то подобное и знает исправление или обходной путь? Будем признательны за любые советы!


person Alex Pruss    schedule 05.03.2015    source источник


Ответы (2)


После дополнительных испытаний мы смогли определить следующее:

  • Любая команда, которая включает перемещение / переименование / удаление файлов, вызовет эту проблему.
  • В рабочей области с небольшим количеством проектов (‹50) эта проблема не возникает.
  • Отключение кэширования SVN решает эту проблему, но приводит к недопустимым проблемам с производительностью.
  • Удаление Subversive и установка Subclipse (в той же рабочей области, без переустановки Eclipse) устраняет проблему.

Судя по всему, Subversive либо плохо оптимизирован, либо имеет ошибку, из-за которой он не работает в больших рабочих областях. Я сообщил об этом команде Subversive как об ошибке, но пока она не будет исправлена, наша новая официальная позиция - рекомендовать всем разработчикам использовать Subclipse вместо Subversive.

Я с радостью перейду на немного худший графический интерфейс в обмен на плагин SVN, который действительно работает.

person Alex Pruss    schedule 11.03.2015

Я также использовал Subclipse и Subversive, переключался между ними по крайней мере два раза, и в течение короткого периода времени я устанавливал оба из них одновременно. Просто установив любой из них, вы не должны столкнуться с такими серьезными проблемами. У меня действительно был подобный опыт, когда установка плагина Eclipse пошла не так, и у моего Eclipse начались аналогичные симптомы. Я предлагаю сначала попытаться «стабилизировать» вашу IDE (я, вероятно, скачаю новую или вернусь к сохраненной копии), а затем просто снова установите плагин. В нормальных условиях он должен работать нормально.

person Gergely Bacso    schedule 05.03.2015