Уникнення "ресурс не синхронізований з файловою системою"


267

Я розробляю код Java за допомогою Eclipse і регулярно отримую це повідомлення:

ресурс не синхронізований з файловою системою.

Клацніть правою кнопкою миші> Оновити це буде завжди очищено.

Але чому Eclipse не може оновитись автоматично, коли він виявив цю умову? Чи є випадки, коли ви хочете, щоб ресурс не синхронізувався ?.

Якщо існують такі умови, і вони не застосовуються до моєї роботи, чи існує спосіб, як Eclipse автоматично оновиться, коли він стикається з цим станом ?. (Я вдячний, що він повинен оновлюватись так мало, як це потрібно для нормального розвитку для підвищення продуктивності для людських розробників.)

ОНОВЛЕННЯ (2012-06-25): Моє останнє оновлення (Версія: Indigo Release id збірки: 20110615-0604) більше не відображає налаштування - Загальне - Робоча область - Автоматичне оновлення. Існує опція "Оновити доступ" - чи варто це використовувати?


Чому ви отримуєте повідомлення? Ви можете втратити роботу, якщо не будете обережні.
Thorbjørn Ravn Andersen

1
Це повідомлення я отримую завжди, коли шукаю робочу область, оскільки проект "Сервери" (у веб-інструментах) містить файли журналів, які постійно оновлюються поза затемненням. До цих пір я не знайшов жодного рішення, крім Refresh Automatically, але це дає інші проблеми (конкретно: коли якась збірка мурашок запускається, Eclipse оновить на півдорозі збирання мурашок і зіпсує речі).
Штійн де Вітт

можливо, просто правильно лизати проект, а потім вибрати «оновити»?
Junchen Liu

Дурне запитання: Чому "зайва копія" ресурсу є обов'язковою? Чи точно це потрібно всім із супутнім шансом вийти "з синхронізації".
nsandersen

Відповіді:


322

Ви можете ввімкнути це у вікні - Налаштування - Загальне - Робоча область - Оновити автоматично (називається Оновити за допомогою власних гачків або опитування в нових версіях)

Налаштування затемнення "Оновити за допомогою нативного гачка або опитування" - Скріншот

Єдина причина, з якої я можу подумати, чому це не включено за замовчуванням, - це пов'язана з продуктивністю.

Наприклад, оновлення папок-джерел автоматично може викликати збірку робочої області. Можливо, деякі хочуть більшого контролю над цим.

На сайті Eclipse також є стаття щодо автоматичного оновлення.

В основному, немає зовнішнього тригера, який повідомляє Eclipse про файли, змінені за межами робочої області. Eclipse, скоріше, використовує фонову нитку для моніторингу змін файлів, які, можливо, можуть призвести до проблем продуктивності великих робочих просторів.


+1 Чи трапляється це лише під час цього стану? Або це станеться досить, щоб вплинути на мене в іншому місці?
peter.murray.rust

1
У мене є налаштування - Загальне - Робоча область - Оновлення автоматично. Це те саме?
peter.murray.rust

1
Будь-який спосіб автоматичного прийняття змін з файлової системи для відкритих вікон редактора, у яких немає збережених змін?
Леопд


14
Зараз це, мабуть, називається "Оновити за допомогою нативного гачка або опитування" (Indigo SR1).
Олівер Бок

37

Просто клацніть правою кнопкою миші на файл або проект та натисніть кнопку Оновити. Помилка зникне. Я також зіткнувся з тим же питанням, і це працювало на мене.


20
ОП зазначила, що у своєму питанні "Оновити" це завжди зрозуміє ". Проблема полягає в тому, що це неймовірно дратує при роботі зі складними проектами або спільно з інструментами, зовнішніми до Eclipse, які змінюють файлову систему.
ryanbrainard


12

У новій версії Indigo Параметри змінюються на "Оновити доступ" та з детальним поясненням: Автоматичне оновлення змін зовнішньої робочої області під час доступу через робочу область.

Оскільки "ресурс не синхронізований з файловою системою", така проблема виникає, коли я використовую зовнішню робочу область, тому після вибору цього параметра проблема вирішується.


1
Це позбулося повідомлення. Спасибі
lsaffie

5

Це трапляється зі мною весь час.

Перейдіть до журналу помилок, знайдіть виняток та відкрийте кілька рівнів, поки не зможете побачити щось більше, як першопричину. Це говорить "Ресурс не синхронізований з файловою системою"?

При перейменуванні пакетів, звичайно, Eclipse повинен переміщувати файли у файловій системі. Мабуть, що трапляється, це те, що пізніше виявляється, що щось, що, на його думку, потрібно очистити, було перейменовано, не може знайти, кидає виняток.

Є кілька речей, які ви можете спробувати. Спочатку перейдіть до Вікна: Налаштування, Робоча область та увімкніть "Оновити автоматично". Теоретично це має вирішити проблему, але для мене це не сталося.

По-друге, якщо ви робите велику рефакторинг за допомогою підпакетів, робіть підпакети один за одним знизу вгору та явно оновлюйте файлову систему після того, як кожен підпакет буде перейменований.

По-третє, просто ігноруйте помилку: коли з’явиться діалогове вікно про помилку, натисніть Скасувати, щоб зберегти часткову зміну, а не повертати її назад. Спробуйте ще раз і знову, і ви можете виявити, що зможете пройти всю операцію, використовуючи кілька спроб.


Кілька моїх імпортів після цього був корумпованим, але швидкий організаційний імпорт вирішив і це.
z0r

Мені потрібно було це зробити (ігнорувати помилку та повторити спробу) під час просто переміщення класу до нового пакету.
z0r

1

Якщо це відбувається при спробі видалити папку (на * nix), а Refresh не допомагає, відкрийте термінал і знайдіть посилання під папкою, яку ви намагаєтесь видалити та видалити вручну. Це вирішило мої питання.


1

Коли ви відкриєте робочу область Eclipse з виду прозорого огляду та спробуєте перейменувати проект, ви часто отримуєте спливаюче попередження ... "Проект ресурсу" не синхронізований з файловою системою ". Якщо оновлення проекту не вирішує проблему, виконайте наступне рішення: a. Відкрийте робочу область БЕЗ перегляду b. Виберіть проект у Project Explorer c. ClearCase -> асоційований проект (проект тепер повинен виглядати як проект []) d. Клацніть правою кнопкою миші проект -> Оновити (підпапки VOB тепер мають бути порожніми) e. Клацніть правою кнопкою миші проект -> Перейменувати ... f. Введіть нове ім’я

Тепер ви можете закрити робочу область, знову відкрити її для перегляду та оновити проект. Ви також можете роз'єднати проект, якщо ви хочете, щоб проект не асоціювався з vob.


Clearcase вкрав мою собаку.
Домінік Серісано

1

Трохи натяку. Повідомлення часто з’являється під час операції з перейменуванням. Швидке рішення для мене - це натискання Ctrl-Y(повторне скорочення) після підтвердження повідомлення. Він працює лише в тому випадку, якщо перейменування впливає на один файл.


Що робить Ctrl-Y?
z0r

1
Ctrl-Y - "повторно". У цьому конкретному випадку ви перейменовуєте щось, після чого затемнення стикається з проблемою і скасовує операцію перейменування. Натискання клавіші Ctrl-Y відновлює спробу перейменування.
Ватсон

А, бачу. Не в Ubuntu; це Ctrl-Shift-Z. Подумайте про те, чому ви натиснете Ctrl-Yна свою відповідь :)
z0r

1

Якщо ви звичайний користувач Eclipse, то, можливо, ви отримували цю помилку багато разів. Помилка просто говорить: "Ви внесли зміни у файли у своїй робочій області з-за зовнішнього затемнення". Найпростішим рішенням було б вибрати проект і натиснути F5 (Клацніть правою кнопкою миші -> Оновити).

якщо вам потрібно більше пояснень, ви можете прочитати з цього веб-сайту


0

Я не зміг усунути цю помилку ні оновленням, ні ввімкненням функції робочого простору "нативної опитування". Виявилося, мій проект також був відкритий у двох випадках затемнення. Як тільки я закрив інший екземпляр, помилка усунулася. Тому переконайтеся, що ваш проект відкрито лише в одному місці, якщо ви бачите цю помилку.

Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.