Éviter «la ressource n'est pas synchronisée avec le système de fichiers»

267

Je développe du code Java avec Eclipse et reçois régulièrement ce message:

la ressource n'est pas synchronisée avec le système de fichiers.

Un clic droit> Actualiser effacera toujours cela.

Mais pourquoi Eclipse ne peut-il pas se rafraîchir automatiquement lorsqu'il trouve cette condition? Y a-t-il des cas où vous souhaitez que la ressource soit désynchronisée?.

S'il existe de telles conditions et qu'elles ne s'appliquent pas à mon travail, existe-t-il un moyen de faire actualiser automatiquement Eclipse lorsqu'il rencontre cet état?. (J'apprécie qu'il devrait se rafraîchir aussi peu que nécessaire dans le développement normal pour augmenter les performances des développeurs humains.)

MISE À JOUR (25/06/2012): Ma dernière mise à jour (Version: Indigo Release Build ID: 20110615-0604) ne montre plus Préférences - Général - Espace de travail - Actualiser automatiquement Il y a une option "Actualiser à l'accès" - dois-je l'utiliser?

peter.murray.rust
la source
Pourquoi recevez-vous le message? Vous pourriez perdre du travail si vous ne faites pas attention.
Thorbjørn Ravn Andersen
1
Je reçois ce message toujours lorsque je recherche dans l'espace de travail, car le projet Serveurs (dans les outils Web) contient des fichiers journaux qui se mettent à jour en dehors d'Eclipse. Jusqu'à présent, je n'ai trouvé aucune solution en dehors de Actualiser automatiquement, mais cela pose d'autres problèmes (en particulier: lorsque certaines versions de Ant fonctionnent, Eclipse actualisera à mi-chemin de la génération de Ant et gâchera les choses).
Stijn de Witt
peut-être juste lécher juste le projet puis sélectionner "rafraîchir"?
Junchen Liu
Question idiote: pourquoi "une copie supplémentaire" d'une ressource est-elle obligatoire? Tout le monde a-t-il vraiment besoin de cela avec la chance qui l'accompagne de se "désynchroniser".
nsandersen

Réponses:

322

Vous pouvez l'activer dans Fenêtre - Préférences - Général - Espace de travail - Actualiser automatiquement (appelé Actualiser à l'aide de hooks natifs ou d'interrogation dans les versions plus récentes)

Préférences Eclipse "Actualiser à l'aide de hooks natifs ou d'interrogation" - Capture d'écran

La seule raison pour laquelle je peux penser que cela n'est pas activé par défaut est liée aux performances.

Par exemple, l'actualisation automatique des dossiers source peut déclencher une génération de l'espace de travail. Peut-être que certaines personnes veulent plus de contrôle sur cela.

Il existe également un article sur le site Eclipse concernant l'actualisation automatique.

Fondamentalement, il n'y a pas de déclencheur externe qui informe Eclipse des fichiers modifiés en dehors de l'espace de travail. Au contraire, un thread d'arrière-plan est utilisé par Eclipse pour surveiller les modifications de fichiers qui peuvent éventuellement entraîner des problèmes de performances avec les grands espaces de travail.

ddewaele
la source
+1 Cela se produit-il uniquement pendant cette condition? Ou cela arrivera-t-il suffisamment pour m'affecter ailleurs?
peter.murray.rust
1
J'ai des préférences - Général - Espace de travail - Actualiser automatiquement. Est-ce la même chose?
peter.murray.rust
1
Est-il possible d'accepter automatiquement les modifications du système de fichiers pour les fenêtres d'éditeur ouvertes qui n'ont pas de modifications non enregistrées?
Leopd
14
Il semble maintenant être appelé "Actualiser à l'aide de hooks natifs ou d'interrogation" (Indigo SR1).
Oliver Bock
37

Faites un clic droit sur le fichier ou sur le projet et cliquez sur Actualiser. L'erreur disparaîtra. J'ai également fait face au même problème et cela a fonctionné pour moi.

bhejaFry
la source
20
Le PO a mentionné que dans sa question, "'Actualiser' effacera toujours cela." Le problème est que cela est incroyablement ennuyeux lorsque vous travaillez avec des projets complexes ou conjointement avec des outils externes à Eclipse qui changent le système de fichiers.
ryanbrainard
20

entrez la description de l'image iciFenêtre -> Préférences -> Général -> Espace de travail

hitesh141
la source
Votez chasseur.
David Lakatos
12

Pour la nouvelle version Indigo, les Préférences changent en "Actualiser à l'accès", et avec une explication détaillée: Actualiser automatiquement les modifications de l'espace de travail externe lors de l'accès via l'espace de travail.

Comme «la ressource n'est pas synchronisée avec le système de fichiers», ce problème se produit lorsque j'utilise un espace de travail externe, donc après avoir sélectionné cette option, le problème est résolu.

zhihong
la source
1
Cela s'est débarrassé du message. Merci
lsaffie
5

Cela m'arrive tout le temps.

Accédez au journal des erreurs, recherchez l'exception et ouvrez quelques niveaux jusqu'à ce que vous puissiez voir quelque chose de plus comme une cause racine. Dit-il que «la ressource n'est pas synchronisée avec le système de fichiers»?

Lors du changement de nom des packages, Eclipse doit bien sûr déplacer les fichiers dans le système de fichiers. Apparemment, ce qui se passe, c'est qu'il découvre plus tard que quelque chose qu'il pense devoir nettoyer a été renommé, ne le trouve pas, lève une exception.

Il y a deux ou trois choses que vous pourriez essayer. Tout d'abord, allez dans Fenêtre: Préférences, Espace de travail et activez "Actualiser automatiquement". En théorie, cela devrait résoudre le problème, mais pour moi, ce n'est pas le cas.

Deuxièmement, si vous effectuez une refactorisation importante avec des sous-packages, effectuez les sous-packages un par un, de bas en haut, et actualisez explicitement avec le système de fichiers après que chaque sous-package est renommé.

Troisièmement, ignorez simplement l'erreur: lorsque la boîte de dialogue d'erreur s'affiche, cliquez sur Abandonner pour conserver la modification partielle, au lieu de l'annuler. Réessayez encore et encore, et vous constaterez peut-être que vous pouvez effectuer l'ensemble de l'opération à l'aide de plusieurs tentatives.

Jeff Berkowitz
la source
Quelques-unes de mes importations étaient corrompues après cela, mais une rapide organisation a corrigé cela aussi.
z0r
J'avais besoin de faire cela (ignorer l'erreur et réessayer) lors du déplacement d'une classe vers un nouveau package.
z0r
1

Si cela se produit en essayant de supprimer un dossier (sur * nix) et que l'actualisation n'aide pas, ouvrez un terminal et recherchez un lien symbolique sous le dossier que vous essayez de supprimer et supprimez-le manuellement. Cela a résolu mes problèmes.

TaninDirect
la source
1

Lorsque vous ouvrez un espace de travail Eclipse à partir d'une vue Clearcase et essayez de renommer le projet, vous obtenez souvent l'avertissement contextuel ... «Le projet de ressource n'est pas synchronisé avec le système de fichiers». Si l'actualisation du projet ne résout pas le problème, procédez comme suit: a. Espace de travail ouvert SANS être dans une vue b. Sélectionnez le projet dans l'Explorateur de projets c. ClearCase -> Associate Project (le projet devrait maintenant ressembler au projet []) d. Cliquez avec le bouton droit sur le projet -> Actualiser (les sous-dossiers vob doivent maintenant être vides) e. Cliquez avec le bouton droit sur le projet -> Renommer ... f. Entrez un nouveau nom

Vous pouvez maintenant fermer l'espace de travail, le rouvrir dans une vue et actualiser le projet. Vous pouvez également dissocier le projet si vous préférez que le projet ne soit pas associé au VOB.

user3583015
la source
Clearcase a volé mon chien.
Dominic Cerisano
1

Un petit indice. Le message apparaît souvent pendant l'opération de renommage. La solution de contournement rapide pour moi est d'appuyer sur Ctrl-Y(rétablir le raccourci) après la confirmation du message. Cela ne fonctionne que si le changement de nom affecte un seul fichier.

wathson
la source
Que fait Ctrl-Y-il?
z0r
1
Ctrl-Y est "refaire". Dans ce cas particulier, vous renommez quelque chose, puis éclipse rencontre un problème et annule l'opération de renommage. Appuyez sur Ctrl-Y pour récupérer la tentative de renommage.
wathson
Ah, je vois. Pas dans Ubuntu; c'est Ctrl-Shift-Z. Pensez à ajouter l'explication de la raison pour laquelle vous appuyez Ctrl-Ysur votre réponse :)
z0r
1

Si vous êtes un utilisateur régulier d'Eclipse, vous pourriez avoir cette erreur plusieurs fois. L'erreur indique simplement: «vous avez apporté des modifications aux fichiers de votre espace de travail depuis l'extérieur de l'éclipse». La solution la plus simple serait de sélectionner le projet et d'appuyer sur F5 (clic droit -> Actualiser).

si vous avez besoin de plus d'explications, vous pouvez lire sur ce site web

BERGUIGA Mohamed Amine
la source
0

Je n'ai pas pu résoudre cette erreur en actualisant ou en activant la fonction d'espace de travail "polling natif". Il s'est avéré que mon projet a également été ouvert dans deux cas d'éclipse. Une fois que j'ai fermé l'autre instance, l'erreur a disparu. Assurez-vous donc que votre projet n'est ouvert qu'à un seul endroit si vous voyez cette erreur.

nitinsh99
la source