Menghindari “sumber daya tidak sinkron dengan sistem file”

267

Saya mengembangkan kode Java dengan Eclipse dan secara teratur mendapatkan pesan ini:

sumber daya tidak sinkron dengan sistem file.

Klik kanan> Refresh akan selalu menghapus ini.

Tetapi mengapa Eclipse tidak bisa menyegarkan secara otomatis ketika ia menemukan kondisi ini? Apakah ada kasus di mana Anda ingin sumber daya tidak sinkron ?.

Jika ada kondisi seperti itu dan tidak berlaku untuk pekerjaan saya, apakah ada cara agar Eclipse menyegarkan secara otomatis ketika bertemu kondisi ini ?. (Saya menghargai itu harus menyegarkan sesedikit yang diperlukan dalam pengembangan normal untuk meningkatkan kinerja bagi pengembang manusia.)

UPDATE (2012-06-25): Pembaruan terakhir saya (Versi: Indigo Release Build id: 20110615-0604) tidak lagi menampilkan Preferensi - Umum - Ruang Kerja - Refresh Secara Otomatis Ada pilihan "Refresh on access" - haruskah saya menggunakan ini?

peter.murray.rust
sumber
Mengapa Anda menerima pesan itu? Anda mungkin kehilangan pekerjaan jika tidak hati-hati.
Thorbjørn Ravn Andersen
1
Saya mendapatkan pesan ini selalu ketika saya mencari ruang kerja, karena proyek Server (dalam alat web) berisi file log yang terus memperbarui gerhana luar. Sampai sekarang saya belum menemukan solusi apa pun selain Refresh Secara Otomatis, tetapi itu memberikan masalah lain (khususnya: ketika beberapa build Ant berjalan, Eclipse akan menyegarkan setengah jalan Semut membangun dan mengacaukan semuanya).
Stijn de Witt
mungkin hanya menjilat tepat pada proyek kemudian pilih "refresh"?
Junchen Liu
Pertanyaan konyol: Mengapa "salinan tambahan" dari suatu sumber daya wajib? Apakah setiap orang pasti membutuhkan ini dengan peluang menyertai "tidak sinkron".
nsandersen

Jawaban:

322

Anda dapat mengaktifkan ini di Jendela - Preferensi - Umum - Ruang Kerja - Refresh Secara Otomatis (disebut Refresh menggunakan kait asli atau polling di build yang lebih baru)

Preferensi Eclipse "Refresh menggunakan kait asli atau polling" - Screenshot

Satu-satunya alasan saya dapat berpikir mengapa ini tidak diaktifkan secara default terkait kinerja.

Misalnya, menyegarkan folder sumber secara otomatis dapat memicu membangun ruang kerja. Mungkin beberapa orang ingin lebih mengontrol ini.

Ada juga artikel di situs Eclipse tentang penyegaran otomatis.

Pada dasarnya, tidak ada pemicu eksternal yang memberi tahu Eclipse file yang diubah di luar ruang kerja. Alih-alih utas latar digunakan oleh Eclipse untuk memantau perubahan file yang mungkin dapat menyebabkan masalah kinerja dengan ruang kerja yang besar.

ddewaele
sumber
+1 Apakah ini hanya terjadi selama kondisi ini? Atau akankah hal itu cukup mempengaruhi saya di tempat lain?
peter.murray.rust
1
Saya memiliki Preferensi - Umum - Ruang Kerja - Refresh Secara Otomatis. Apakah ini sama?
peter.murray.rust
1
Adakah cara untuk menerima perubahan secara otomatis dari sistem file untuk windows editor terbuka yang tidak memiliki perubahan yang belum disimpan?
Leopd
14
Sekarang tampaknya disebut "Refresh using hooks asli atau polling" (Indigo SR1).
Oliver Bock
37

Cukup klik kanan pada file atau pada proyek dan klik Refresh. Kesalahan akan hilang. Saya juga menghadapi masalah yang sama dan itu berhasil untuk saya.

bhejaFry
sumber
20
OP menyebutkan bahwa dalam pertanyaannya, "'Refresh' akan selalu menghapus ini." Masalahnya adalah bahwa ini sangat menjengkelkan ketika bekerja dengan proyek-proyek kompleks atau dalam hubungannya dengan alat-alat eksternal Eclipse yang mengubah sistem file.
ryanbrainard
20

masukkan deskripsi gambar di siniWindow -> Preferences -> General -> Workspace

hitesh141
sumber
Pilih pemburu.
David Lakatos
12

Untuk versi Indigo yang baru, Preferensi berubah menjadi "Refresh on access", dan dengan penjelasan detail: Secara otomatis me-refresh perubahan ruang kerja eksternal pada akses melalui ruang kerja.

Karena “sumber daya tidak sinkron dengan sistem file” masalah ini terjadi ketika saya menggunakan ruang kerja eksternal, jadi setelah saya memilih opsi ini, masalah terpecahkan.

zhihong
sumber
1
Ini menghilangkan pesan. Terima kasih
lsaffie
5

Ini terjadi pada saya sepanjang waktu.

Buka log kesalahan, temukan pengecualian, dan buka beberapa level hingga Anda dapat melihat sesuatu yang lebih seperti penyebab root. Apakah tertulis "Sumber daya tidak sinkron dengan sistem file"?

Saat mengganti nama paket, tentu saja, Eclipse harus memindahkan file di dalam sistem file. Rupanya yang terjadi adalah ia kemudian menemukan bahwa sesuatu yang ia pikir perlu dibersihkan telah diganti namanya, tidak dapat menemukannya, melempar pengecualian.

Ada beberapa hal yang bisa Anda coba. Pertama, pergi ke Window: Preferences, Workspace, dan aktifkan "Refresh Automatically". Secara teori ini seharusnya memperbaiki masalah, tetapi bagi saya, itu tidak.

Kedua, jika Anda melakukan refactoring besar dengan subpackages, lakukan subpackage satu per satu, dari bawah ke atas, dan secara eksplisit menyegarkan dengan sistem file setelah setiap subpackage diganti namanya.

Ketiga, abaikan saja kesalahannya: ketika dialog kesalahan muncul, klik Batalkan untuk mempertahankan perubahan sebagian, alih-alih mengembalikannya. Coba lagi, dan lagi, dan Anda mungkin menemukan Anda dapat melewati seluruh operasi menggunakan beberapa percobaan ulang.

Jeff Berkowitz
sumber
Beberapa impor saya rusak setelah ini, tetapi Impor Impor cepat juga memperbaikinya.
z0r
Saya perlu melakukan ini (abaikan kesalahan dan coba lagi) ketika hanya memindahkan kelas ke paket baru.
z0r
1

Jika ini terjadi ketika mencoba menghapus folder (di * nix) dan Refresh tidak membantu, buka terminal dan cari symlink di bawah folder yang Anda coba hapus dan hapus secara manual. Ini menyelesaikan masalah saya.

TaninDirect
sumber
1

Ketika Anda membuka ruang kerja Eclipse dari dalam tampilan clearcase dan mencoba untuk mengubah nama proyek, Anda akan sering mendapatkan peringatan pop-up ... "Resource 'project' tidak sinkron dengan sistem file". Jika menyegarkan proyek tidak memperbaiki masalah, maka lakukan solusi berikut: a. Buka ruang kerja TANPA ada dalam tampilan b. Pilih proyek di Project Explorer c. ClearCase -> Associate Project (proyek sekarang akan terlihat seperti proyek []) d. Proyek klik kanan -> Refresh (sub-folder vob sekarang harus kosong) e. Proyek klik kanan -> Ganti nama ... f. Masukkan nama baru

Sekarang Anda dapat menutup ruang kerja, buka kembali dalam tampilan dan menyegarkan proyek. Anda juga dapat memisahkan proyek jika Anda lebih suka proyek tidak dikaitkan dengan vob.

pengguna3583015
sumber
Clearcase mencuri anjing saya.
Dominic Cerisano
1

Sedikit petunjuk. Pesan sering muncul selama operasi ganti nama. Solusi cepat untuk saya adalah menekan Ctrl-Y(redo shortcut) setelah konfirmasi pesan. Ini hanya berfungsi jika penggantian nama mempengaruhi satu file.

wathson
sumber
Apa yang Ctrl-Yharus dilakukan
z0r
1
Ctrl-Y adalah "redo". Dalam kasus khusus ini Anda mengganti nama sesuatu kemudian gerhana menghadapi masalah dan membatalkan operasi ganti nama. Menekan Ctrl-Y memulihkan upaya mengubah nama.
wathson
Ah saya mengerti. Tidak di Ubuntu; itu Ctrl-Shift-Z. Pertimbangkan untuk menambahkan penjelasan mengapa Anda menekan Ctrl-Yjawaban Anda :)
z0r
1

Jika Anda adalah pengguna Eclipse biasa, Anda mungkin akan mendapatkan kesalahan ini beberapa kali. Kesalahan hanya mengatakan, "Anda telah membuat perubahan pada file di ruang kerja Anda dari gerhana luar". Solusi paling sederhana adalah dengan memilih proyek dan tekan F5 (Klik kanan -> Refresh).

jika Anda membutuhkan penjelasan lebih lanjut, Anda dapat membaca dari situs web ini

BERGUIGA Mohamed Amine
sumber
0

Saya tidak dapat menyelesaikan kesalahan ini dengan menyegarkan atau dengan mengaktifkan fitur ruang kerja "jajak pendapat asli". Ternyata proyek saya juga dibuka dalam dua kejadian gerhana. Setelah saya menutup contoh lain, kesalahan hilang. Jadi pastikan proyek Anda hanya dibuka di satu tempat jika Anda melihat kesalahan ini.

nitinsh99
sumber