Vermeiden, dass die Ressource nicht mit dem Dateisystem synchronisiert ist


267

Ich entwickle Java-Code mit Eclipse und erhalte regelmäßig folgende Meldung:

Die Ressource ist nicht mit dem Dateisystem synchron.

Rechtsklick> Aktualisieren löscht dies immer.

Aber warum kann Eclipse nicht automatisch aktualisiert werden, wenn dieser Zustand gefunden wird? Gibt es Fälle, in denen die Ressource nicht synchron sein soll?

Wenn solche Bedingungen vorliegen und sie nicht für meine Arbeit gelten, gibt es eine Möglichkeit, Eclipse automatisch zu aktualisieren, wenn dieser Status auftritt? (Ich schätze, dass es in der normalen Entwicklung so wenig wie nötig aktualisiert werden sollte, um die Leistung für menschliche Entwickler zu steigern.)

UPDATE (2012-06-25): Mein letztes Update (Version: Indigo Release Build-ID: 20110615-0604) zeigt keine Einstellungen mehr an - Allgemein - Arbeitsbereich - Automatisch aktualisieren Es gibt eine Option "Beim Zugriff aktualisieren" - sollte ich diese verwenden?


Warum bekommst du die Nachricht? Sie könnten Arbeit verlieren, wenn Sie nicht vorsichtig sind.
Thorbjørn Ravn Andersen

1
Ich erhalte diese Meldung immer, wenn ich im Arbeitsbereich suche, da das Serverprojekt (in Web-Tools) Protokolldateien enthält, die außerhalb von Eclipse ständig aktualisiert werden. Bis jetzt habe ich keine Lösung gefunden, außer Automatisch aktualisieren, aber das gibt andere Probleme (insbesondere: Wenn ein Ant-Build ausgeführt wird, aktualisiert Eclipse die Hälfte des Ant-Builds und bringt die Dinge durcheinander).
Stijn de Witt

Vielleicht genau richtig auf das Projekt lecken und dann "Aktualisieren" auswählen?
Junchen Liu

Dumme Frage: Warum ist "eine zusätzliche Kopie" einer Ressource obligatorisch? Brauchen alle dies auf jeden Fall mit der damit verbundenen Chance, "nicht mehr synchron" zu sein?
Nsandersen

Antworten:


322

Sie können dies unter Fenster - Einstellungen - Allgemein - Arbeitsbereich - Automatisch aktualisieren aktivieren (als Aktualisieren mit nativen Hooks oder Abfragen in neueren Builds bezeichnet).

Eclipse-Einstellungen "Aktualisieren mit nativen Hooks oder Abfragen" - Screenshot

Der einzige Grund, warum ich mir vorstellen kann, warum dies nicht standardmäßig aktiviert ist, ist die Leistung.

Das automatische Aktualisieren von Quellordnern kann beispielsweise einen Build des Arbeitsbereichs auslösen. Vielleicht wollen einige Leute mehr Kontrolle darüber.

Auf der Eclipse-Website gibt es auch einen Artikel zur automatischen Aktualisierung.

Grundsätzlich gibt es keinen externen Trigger, der Eclipse über Dateien informiert, die außerhalb des Arbeitsbereichs geändert wurden. Eclipse verwendet vielmehr einen Hintergrundthread, um Dateiänderungen zu überwachen, die möglicherweise zu Leistungsproblemen bei großen Arbeitsbereichen führen können.


+1 Geschieht dies nur unter dieser Bedingung? Oder wird es genug passieren, um mich anderswo zu beeinflussen?
Peter.murray.rust

1
Ich habe Einstellungen - Allgemein - Arbeitsbereich - Automatisch aktualisieren. Ist das das gleiche?
Peter.murray.rust

1
Gibt es eine Möglichkeit, Änderungen aus dem Dateisystem für geöffnete Editorfenster, in denen keine nicht gespeicherten Änderungen vorgenommen wurden, automatisch zu akzeptieren?
Leopd


14
Es scheint jetzt "Aktualisieren mit nativen Hooks oder Polling" (Indigo SR1) zu heißen.
Oliver Bock

37

Klicken Sie einfach mit der rechten Maustaste auf die Datei oder das Projekt und klicken Sie auf Aktualisieren. Der Fehler wird verschwinden. Ich hatte auch das gleiche Problem und es hat bei mir funktioniert.


20
Das OP erwähnte in seiner Frage: "'Aktualisieren' wird dies immer klären." Das Problem ist, dass dies unglaublich ärgerlich ist, wenn Sie mit komplexen Projekten oder in Verbindung mit Tools außerhalb von Eclipse arbeiten, die das Dateisystem ändern.
Ryanbrainard


12

Für die neue Indigo-Version ändern sich die Einstellungen in "Beim Zugriff aktualisieren" und enthalten eine ausführliche Erläuterung: Änderungen des externen Arbeitsbereichs beim Zugriff über den Arbeitsbereich werden automatisch aktualisiert.

Da "Ressource nicht mit dem Dateisystem synchronisiert ist", tritt dieses Problem auf, wenn ich einen externen Arbeitsbereich verwende. Nachdem ich diese Option ausgewählt habe, ist das Problem behoben.


1
Dies wurde die Nachricht los. Danke
lsaffie

5

Das passiert mir die ganze Zeit.

Gehen Sie zum Fehlerprotokoll, suchen Sie die Ausnahme und öffnen Sie einige Ebenen, bis Sie etwas sehen, das eher einer Grundursache ähnelt. Sagt es "Ressource ist nicht synchron mit dem Dateisystem"?

Beim Umbenennen von Paketen muss Eclipse natürlich Dateien im Dateisystem verschieben. Anscheinend wird später festgestellt, dass etwas, von dem es glaubt, dass es bereinigt werden muss, umbenannt wurde, es nicht finden kann und eine Ausnahme auslöst.

Es gibt ein paar Dinge, die Sie versuchen könnten. Gehen Sie zunächst zu Fenster: Einstellungen, Arbeitsbereich und aktivieren Sie "Automatisch aktualisieren". Theoretisch sollte dies das Problem beheben, aber für mich war dies nicht der Fall.

Zweitens, wenn Sie ein umfangreiches Refactoring mit Unterpaketen durchführen, führen Sie die Unterpakete einzeln von unten nach oben aus und aktualisieren Sie sie explizit mit dem Dateisystem, nachdem jedes Unterpaket umbenannt wurde.

Drittens ignorieren Sie einfach den Fehler: Wenn das Fehlerdialogfeld angezeigt wird, klicken Sie auf Abbrechen, um die teilweise Änderung beizubehalten, anstatt sie zurückzusetzen. Versuchen Sie es immer wieder, und Sie werden möglicherweise feststellen, dass Sie den gesamten Vorgang mit mehreren Wiederholungsversuchen durchführen können.


Einige meiner Importe waren danach beschädigt, aber ein schnelles Organisieren von Importen hat dies ebenfalls behoben.
z0r

Ich musste dies tun (den Fehler ignorieren und erneut versuchen), wenn ich nur eine Klasse in ein neues Paket verschob.
z0r

1

Wenn dies beim Versuch auftritt, einen Ordner zu löschen (unter * nix) und das Aktualisieren nicht hilft, öffnen Sie ein Terminal und suchen Sie nach einem Symlink unter dem Ordner, den Sie löschen und manuell entfernen möchten. Dies löste meine Probleme.


1

Wenn Sie einen Eclipse-Arbeitsbereich in einer übersichtlichen Ansicht öffnen und versuchen, das Projekt umzubenennen, wird häufig die Popup-Warnung angezeigt ... "Ressourcenprojekt ist nicht mit dem Dateisystem synchronisiert". Wenn das Problem durch Aktualisieren des Projekts nicht behoben werden kann, führen Sie die folgende Problemumgehung aus: a. Arbeitsbereich öffnen, OHNE in einer Ansicht zu sein b. Wählen Sie das Projekt im Projektexplorer aus. C. ClearCase -> Projekt verknüpfen (Projekt sollte jetzt wie Projekt [] aussehen) d. Klicken Sie mit der rechten Maustaste auf Projekt -> Aktualisieren (vob-Unterordner sollten jetzt leer sein). E. Klicken Sie mit der rechten Maustaste auf Projekt -> Umbenennen ... f. Neuen Namen eingeben

Jetzt können Sie den Arbeitsbereich schließen, in einer Ansicht erneut öffnen und das Projekt aktualisieren. Sie können das Projekt auch trennen, wenn Sie möchten, dass das Projekt nicht mit dem Vob verknüpft wird.


Clearcase hat meinen Hund gestohlen.
Dominic Cerisano

1

Ein kleiner Hinweis. Die Meldung wird häufig während des Umbenennungsvorgangs angezeigt. Die schnelle Problemumgehung für mich ist das Drücken Ctrl-Y(Verknüpfung wiederholen) nach Bestätigung der Nachricht. Dies funktioniert nur, wenn die Umbenennung eine einzelne Datei betrifft.


Was macht Ctrl-Ydas
z0r

1
Strg-Y ist "Wiederherstellen". In diesem speziellen Fall benennen Sie etwas um, dann stößt Eclipse auf ein Problem und macht den Umbenennungsvorgang rückgängig. Durch Drücken von Strg-Y wird der Umbenennungsversuch wiederhergestellt.
Wathson

Ah ich sehe. Nicht in Ubuntu; es ist Ctrl-Shift-Z. Ctrl-Y
Erwägen

1

Wenn Sie ein regulärer Eclipse-Benutzer sind, ist dieser Fehler möglicherweise mehrmals aufgetreten. Der Fehler lautet einfach: "Sie haben Änderungen an Dateien in Ihrem Arbeitsbereich von außerhalb von Eclipse vorgenommen." Die einfachste Lösung wäre, das Projekt auszuwählen und F5 zu drücken (Rechtsklick -> Aktualisieren).

Wenn Sie weitere Erklärungen benötigen, können Sie diese Website lesen


0

Ich konnte diesen Fehler weder durch Aktualisieren noch durch Aktivieren der Arbeitsbereichsfunktion "Native Polling" beheben. Es stellte sich heraus, dass mein Projekt auch in zwei Fällen von Eclipse geöffnet wurde. Sobald ich die andere Instanz geschlossen habe, ist der Fehler behoben. Stellen Sie daher sicher, dass Ihr Projekt nur an einer Stelle geöffnet wird, wenn dieser Fehler auftritt.

Durch die Nutzung unserer Website bestätigen Sie, dass Sie unsere Cookie-Richtlinie und Datenschutzrichtlinie gelesen und verstanden haben.
Licensed under cc by-sa 3.0 with attribution required.