В последнее время нам пришлось переключаться на работе с Subversive на Subclipse, потому что нам нужно было обновить до Java 11, и Subversive больше не поддерживается в последних версиях Eclipse. Это сработало несколько хорошо, но мы иногда сталкиваемся с проблемами при попытке удалить файлы. Например, предположим, что у вас есть дерево пакетов ниже Java, которое вы хотите удалить без других пакетов или файлов внутри дерева.
package
|---file1.java
|---file2.java
Проблема, с которой я столкнулся, заключается в том, что независимо от того, как я фиксирую удаление это вызывает проблемы с последующим обновлением моих коллег. Я попытался зафиксировать всю операцию удаления за один раз, и я попытался зафиксировать удаление файлов Java и пакета в отдельных фиксациях. Независимо от того, как я его фиксирую, мой коллега в конечном итоге получает свою локальную рабочую копию, которую он обновляет в поврежденном состоянии.
Оказывается, что когда он синхронизируется с Subversion, некоторые коммиты по какой-то причине оказываются сдавленными в единая фиксация удаления пакета без удаления базовых файлов java. Затем, когда он пытается обновить это удаление до своей локальной рабочей копии, он удаляет только половину файлов: они все еще остаются в представлении обозревателя проекта Eclipse, но они успешно удаляются в файловой системе Windows.
Поскольку они остаются в его представлении обозревателя проектов Eclipse, он получает предупреждения и ошибки, связанные с удаленными файлами, например операторы импорта, которые не разрешают и не создают ошибки пути. Однако, поскольку они удалены из файловой системы, Subclipse не может обновить их, потому что в отношении Subclipse его локальная рабочая копия актуальна! Он должен вручную воссоздать файлы в Windows Explorer и затем может переопределить и обновить, чтобы полностью получить изменения.
У нас также есть проблема, что некоторые изменения, которые мы фиксируем при синхронизации, появляются принадлежать к случайным более старым коммитам, изменяющим этот файл, даже если они старше десяти лет, причем несколько машин достаточно странно разрешают изменения в разных коммитах. Как ни странно, зафиксированное изменение часто только частично разрешается в более старый коммит, обычно только в 1 или 2 файла, а остальные изменения разрешаются в недавний коммит.
Мы думаем, что эти проблемы могут быть как-то связаны. Это известная проблема с Subclipse в определенной среде? И если да, то как нам это исправить?