Evitare "la risorsa non è sincronizzata con il filesystem"


267

Sviluppo codice Java con Eclipse e ricevo regolarmente questo messaggio:

la risorsa non è sincronizzata con il filesystem.

Fare clic con il tasto destro del mouse su Aggiorna per cancellarlo sempre.

Ma perché Eclipse non si aggiorna automaticamente quando rileva questa condizione? Esistono casi in cui si desidera che la risorsa non sia sincronizzata?

Se ci sono tali condizioni e non si applicano al mio lavoro, c'è un modo per far aggiornare automaticamente Eclipse quando incontra questo stato ?. (Apprezzo il fatto che dovrebbe aggiornarsi quanto basta nello sviluppo normale per aumentare le prestazioni per gli sviluppatori umani.)

AGGIORNAMENTO (25/06/2012): Il mio ultimo aggiornamento (Versione: Indigo Build ID build: 20110615-0604) non mostra più Preferenze - Generale - Area di lavoro - Aggiorna automaticamente Esiste un'opzione "Aggiorna all'accesso" - dovrei usare questo?


Perché ricevi il messaggio? Potresti perdere il lavoro se non stai attento.
Thorbjørn Ravn Andersen,

1
Ricevo questo messaggio sempre quando cerco un'area di lavoro, perché il progetto Server (negli strumenti Web) contiene file di registro che continuano ad aggiornarsi al di fuori dell'eclissi. Fino ad ora non ho trovato alcuna soluzione oltre a Aggiorna automaticamente, ma questo offre altri problemi (in particolare: quando viene eseguita una build Ant, Eclipse si aggiorna a metà della build Ant e rovina le cose).
Stijn de Witt,

forse basta leccare sul progetto quindi selezionare "aggiorna"?
Junchen Liu,

Domanda sciocca: perché è obbligatoria una "copia extra" di una risorsa? Tutti ne hanno sicuramente bisogno con la possibilità di ottenere "fuori sincrono".
nsandersen,

Risposte:


322

Puoi abilitarlo in Finestra - Preferenze - Generale - Area di lavoro - Aggiorna automaticamente (chiamato Aggiorna usando hook nativi o polling nelle build più recenti)

Preferenze di Eclipse "Aggiorna usando hook o polling nativi" - Screenshot

L'unico motivo per cui riesco a pensare perché questo non è abilitato per impostazione predefinita è legato alle prestazioni.

Ad esempio, l'aggiornamento automatico delle cartelle di origine potrebbe attivare una build dell'area di lavoro. Forse alcune persone vogliono un maggiore controllo su questo.

C'è anche un articolo sul sito Eclipse relativo all'aggiornamento automatico.

Fondamentalmente, non esiste un trigger esterno che notifica a Eclipse i file modificati all'esterno dell'area di lavoro. Piuttosto, un thread in background viene utilizzato da Eclipse per monitorare le modifiche ai file che possono comportare problemi di prestazioni con grandi aree di lavoro.


+1 Succede solo durante questa condizione? O accadrà abbastanza da influenzarmi altrove?
peter.murray.rust,

1
Ho Preferenze - Generale - Area di lavoro - Aggiorna automaticamente. È lo stesso?
peter.murray.rust,

1
Un modo per farlo accettare automaticamente le modifiche dal filesystem per le finestre dell'editor aperte che non hanno modifiche non salvate?
Leopd,


14
Ora sembra essere chiamato "Aggiorna usando hook o polling nativi" (Indigo SR1).
Oliver Bock,

37

Basta fare clic destro sul file o sul progetto e fare clic su Aggiorna. L'errore svanirà. Ho anche affrontato lo stesso problema e ha funzionato per me.


20
L'OP ha menzionato che nella sua domanda "Aggiorna" lo eliminerà sempre ". Il problema è che questo è incredibilmente fastidioso quando si lavora con progetti complessi o in combinazione con strumenti esterni a Eclipse che stanno cambiando il file system.
Ryanbrainard,


12

Per la nuova versione di Indigo, le Preferenze cambiano in "Aggiorna all'accesso" e con una spiegazione dettagliata: Aggiorna automaticamente le modifiche dell'area di lavoro esterna all'accesso tramite l'area di lavoro.

Poiché "la risorsa non è sincronizzata con il filesystem" questo problema si verifica quando utilizzo un'area di lavoro esterna, quindi dopo aver selezionato questa opzione, il problema è stato risolto.


1
Questo si è sbarazzato del messaggio. Grazie
lsaffie il

5

Questo mi succede tutto il tempo.

Vai al registro degli errori, trova l'eccezione e apri alcuni livelli fino a quando puoi vedere qualcosa di più simile a una causa principale. Dice "La risorsa non è sincronizzata con il file system"?

Durante la ridenominazione dei pacchetti, ovviamente, Eclipse deve spostare i file nel file system. Apparentemente ciò che accade è che in seguito scopre che qualcosa che pensa di dover ripulire è stato rinominato, non riesce a trovarlo, genera un'eccezione.

Ci sono un paio di cose che potresti provare. Innanzitutto, vai a Finestra: Preferenze, Area di lavoro e abilita "Aggiorna automaticamente". In teoria questo dovrebbe risolvere il problema, ma per me non è stato così.

In secondo luogo, se si sta eseguendo un grande refactoring con pacchetti secondari, eseguire i pacchetti secondari uno alla volta, dal basso verso l'alto, e aggiornare in modo esplicito con il file system dopo la ridenominazione di ciascun pacchetto secondario.

Terzo, ignora semplicemente l'errore: quando viene visualizzata la finestra di dialogo dell'errore, fai clic su Annulla per conservare la modifica parziale, invece di ripristinarla. Provalo ancora e ancora, e potresti scoprire che puoi superare l'intera operazione usando più tentativi.


Alcune delle mie importazioni sono state corrotte dopo questo, ma una rapida organizzazione delle importazioni ha risolto anche questo.
z0r,

Dovevo farlo (ignorare l'errore e riprovare) quando si spostava semplicemente una classe in un nuovo pacchetto.
z0r,

1

Se ciò si verifica tentando di eliminare una cartella (su * nix) e Aggiorna non aiuta, aprire un terminale e cercare un collegamento simbolico sotto la cartella che si sta tentando di eliminare e rimuoverlo manualmente. Questo ha risolto i miei problemi.


1

Quando si apre uno spazio di lavoro Eclipse da una vista trasparente e si tenta di rinominare il progetto, viene spesso visualizzato l'avviso a comparsa ... "Il" progetto "della risorsa non è sincronizzato con il file system". Se l'aggiornamento del progetto non risolve il problema, procedere come segue: a. Aprire l'area di lavoro SENZA essere in una vista b. Selezionare il progetto in Esplora progetti c. ClearCase -> Associate Project (il progetto ora dovrebbe apparire come project []) d. Progetto clic destro -> Aggiorna (le sottocartelle vob ora dovrebbero essere vuote) e. Progetto clic destro -> Rinomina ... f. Inserisci il nuovo nome

Ora puoi chiudere l'area di lavoro, riaprirla in una vista e aggiornare il progetto. Puoi anche dissociare il progetto se preferisci che il progetto non sia associato al vob.


Clearcase ha rubato il mio cane.
Dominic Cerisano,

1

Un piccolo suggerimento. Il messaggio appare spesso durante l'operazione di ridenominazione. La soluzione rapida per me è premere Ctrl-Y(ripetere il collegamento) dopo la conferma del messaggio. Funziona solo se la ridenominazione influisce su un singolo file.


Cosa fa Ctrl-Y?
z0r,

1
Ctrl-Y è "Ripeti". In questo caso particolare si rinomina qualcosa, quindi eclipse incontra un problema e annulla l'operazione di rinomina. Premendo Ctrl-Y viene ripristinato il tentativo di ridenominazione.
Wathson,

Ah capisco Non in Ubuntu; lo è Ctrl-Shift-Z. Valuta di aggiungere la spiegazione del motivo per cui premi Ctrl-Yalla tua risposta :)
z0r

1

Se sei un normale utente di Eclipse, potresti avere questo errore molte volte. L'errore dice semplicemente "hai apportato modifiche ai file nell'area di lavoro dall'esterno dell'eclissi". La soluzione più semplice sarebbe quella di selezionare il progetto e premere F5 (tasto destro -> Aggiorna).

se hai bisogno di maggiori spiegazioni puoi leggere da questo sito web


0

Non sono stato in grado di risolvere questo errore né aggiornando né attivando la funzionalità dell'area di lavoro "polling nativo". Si è scoperto che il mio progetto è stato aperto anche in due casi di eclissi. Una volta chiusa l'altra istanza, l'errore è scomparso. Quindi assicurati che il tuo progetto sia aperto in un solo posto se vedi questo errore.

Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.