Die vier Orte, an denen eine frühere Version schon liegen könnte

Bevor du irgendetwas installierst, sieh an den vier Orten nach, an denen dein Mac die gesuchte Datei womöglich längst aufbewahrt. Jeder deckt einen anderen engen Fall ab, und herauszufinden, in welchem du steckst, ist der größte Teil der Arbeit.

Ablage > Zurücksetzen auf, in der App selbst. macOS bringt seit Jahren eine Dokumentversionierung mit, und eine App, die sie übernimmt, bekommt das Menü Ablage > Zurücksetzen auf > Alle Versionen einblenden, das die früheren Sicherungen genau dieses Dokuments auf eine Zeitleiste legt. TextEdit, Vorschau, Pages, Numbers und Keynote haben es. Das meiste, worin Leute tatsächlich arbeiten, hat es nicht: keine Adobe-App, keine Office-App, nichts, was ein Skript geschrieben hat.

Time Machine. Ist "Automatisch sichern" aktiv, legt macOS etwa stündlich einen lokalen APFS-Schnappschuss des Startvolumes an und behält ihn 24 Stunden, dazu einen Schnappschuss der letzten erfolgreichen Sicherung. Zwei Grenzen entscheiden, ob das hilft: die Auflösung ist eine Stunde und nicht ein Speichervorgang, und alles, was älter als ein Tag ist, existiert nur, wenn die Sicherungsfestplatte angeschlossen ist.

Die Versionsgeschichte deines Cloud-Ordners. Dropbox behält Versionen 30 Tage bei Basic und Plus und 180 bei Professional. Google Drive behält eine 30 Tage lang oder bis 100 neuere existieren, sofern du sie nicht auf "Für immer behalten" gesetzt hast. iCloud Drive fällt aus der Reihe: die 30 Tage im Ordner "Zuletzt gelöscht" holen gelöschte Dateien zurück, nicht überschriebene Versionen. Alle drei decken genau einen Ordner ab, den synchronisierten.

Die Autosicherung der App selbst. Einen Blick wert, selten ein Verlass. Das ist Widerrufen, und Widerrufen stirbt mit dem Prozess.

Wenn einer dieser Orte deine Datei hat, hör hier auf zu lesen. Was folgt, gilt für den Fall, den keiner davon abdeckt: ein Ordner, der nicht synchronisiert wird, bearbeitet von einer App ohne Versionsmenü, kaputtgegangen vor mehr als einer Stunde oder in mehr als einer Datei gleichzeitig. Retrace ist eine native macOS-App genau für diesen Fall, und alles Folgende steckt in der ausgelieferten Version.

Die Historie einzuschalten ist ein Rechtsklick

Das Kontextmenü im Finder mit Retraces geöffnetem History-Untermenü und den Einträgen Enable History, Disable History, Take a Snapshot Now, Restore Previous Version und Show History
Die gesamte Einrichtung ist ein Kontextmenü. Es gibt keinen Standardordner, denn zu raten, welche Ordner zählen, ist der Punkt, an dem so eine App selbst zum Problem wird.

Du klickst im Finder mit rechts auf einen Ordner, wählst History und schaltest sie ein. Kein Standardordner, keine Auswahlliste, durch die man sich wühlen muss, sonst nichts einzustellen. Zum Ausschalten noch einmal rechtsklicken.

Unter History stehen fünf Einträge in drei Gruppen: ein- und ausschalten, mit dem umgehen, worauf du geklickt hast - einen Schnappschuss dieses Ordners nehmen, die vorige Fassung dieser Datei zurückholen -, und die App öffnen. Alle sind immer da und immer in dieser Reihenfolge, und was gerade nicht möglich ist, wird ausgegraut statt entfernt. So bleibt die Geste jedes Mal dieselbe. So sagt das Menü auch ohne zweite Anzeige, worauf es blickt: der Schnappschuss ist nur bei einem wartenden Ordner aktiv, das Zurückholen nur bei einer Datei.

Hinter dem Menü steckt der einzige echte Preis dafür, in der App-Sandbox zu bleiben. Eine Finder-Erweiterung darf den Pfad übergeben, auf den du geklickt hast, und sonst nichts, denn ein Pfad aus einem anderen Prozess ist keine Berechtigung. Deshalb fragt der erste Start einmal nach deinem Benutzerordner und behält diese Freigabe, danach funktioniert das Menü einfach. Ohne sie öffnet dieselbe Aktion stattdessen einen Ordnerdialog.

Was ein überwachter Ordner außerdem braucht, ist der Nachweis, dass er noch überwacht wird. Eine Freigabe mit Sicherheitsbereich kann still aufhören, sich auflösen zu lassen - ein Volume fehlt, ein Systemupdate entwertet einen Schwung Lesezeichen - und nichts in macOS meldet das; der Stream liefert einfach nichts mehr. Für eine App, deren ganzes Versprechen "du verlierst das nicht" lautet, ist das schlimmer als ein Absturz. Also wird jeder Ordner regelmäßig neu aufgelöst und real testweise gelesen, und einer, der nichts mehr aufzeichnet, sagt das in der Liste, statt in Ordnung auszusehen.

Warum eine Kopie von allem nichts kostet

Auf APFS erzeugt copyfile mit COPYFILE_CLONE einen Copy-on-Write-Klon: eine neue Datei, die sich die Datenblöcke des Originals teilt. Sie kostet beim Anlegen etwa null Bytes und Mikrosekunden - ein 64-MB-Klon misst rund 0,1 ms und meldet null eigene Bytes - und sie bleibt unter beiden Speicherarten ein korrekter Schnappschuss. Ein Editor, der die Datei an Ort und Stelle überschreibt, belegt frische Blöcke und lässt dem Klon die alten; ein Editor, der atomar speichert, schreibt eine ganz neue Datei, an der der Klon nie hing.

Genau diese Eigenschaft fehlt einem Hardlink, und darum war der klassische Hardlink-Baum hier nie eine Option: ein Hardlink ist dieselbe Datei, also würde ein direkt schreibender Editor die Version, die du aufgehoben zu haben glaubst, still überschreiben.

Weil Aufnehmen gratis ist, nimmt Retrace großzügig auf und lässt hinterher eine Inhaltsprüfsumme entscheiden, ob die Aufnahme zählt. Was nicht gratis ist, ist Behalten: ein Klon wird teurer, je weiter sich das Original von ihm entfernt. Deshalb ist die Zahl, die die App zeigt, das, was Löschen der Historie wirklich freigäbe, und nicht, was die Versionen auf dem Papier ergeben: dreißig Klone einer 40-MB-Datei sind nach der naiven Rechnung 1,2 GB und in Wirklichkeit 40 MB.

Klonen ist eine Eigenschaft des Volumes und nicht der App, und eine externe Platte in HFS+ oder exFAT kann es gar nicht. Retrace prüft das vorher und lehnt den Ordner ab, statt jede Aufnahme still in eine Vollkopie zu verwandeln.

Zu wissen, wann eine Datei fertig geschrieben ist

Nichts auf macOS beantwortet das sauber. Das Signal, das es täte - Endpoint Securitys "ein Prozess hat gerade zu Ende geschrieben" - verlangt eine von Apple erteilte Berechtigung, verträgt sich nicht mit der Sandbox und wird im Mac App Store nicht akzeptiert. Es gibt auch keine Möglichkeit zu fragen, ob ein anderer Prozess die Datei noch offen hält.

Also ist es eine geschichtete Vermutung, und die Schichten dürfen sich irren, denn sie entscheiden nur, wann geschaut wird. Ob ein Blick zählt, entscheidet danach die Prüfsumme. Zehn Sekunden Ruhe pro Datei fassen den Autosicherungs- Schwall einer Bearbeitungssitzung zu einer Version zusammen - zehn ist die Zahl, die auch die lokale Historie von VS Code verwendet: lang genug, um einen Schwall zu bündeln, kurz genug, dass zwei bewusste Sicherungen im Minutenabstand zwei Versionen bleiben. Danach prüft ein Stabilitätstest, ob Größe, Änderungsdatum und Inode alle stillstehen; eine Nulllängen-Sperre fängt einen kürzenden Schreiber mitten im Flug ab, eine Quarantäneprüfung einen Download, der noch nicht angekommen ist. Speicherst du eine Datei ohne Änderung, entsteht keine Version.

Wenn du lieber selbst sagst, wann

Retraces Schnappschuss-Panel über der Arbeit, das den Moment benennt, bevor es ihn sichert
Der Kurzbefehl greift aus dem Programm heraus, in dem du gerade steckst - und genau darum geht es: der Moment, der eine Marke verdient, ist selten einer, bei dem du auf Retrace geschaut hast.

Jeden Speichervorgang zu sichern ist bei einem Ordner mit einer Doktorarbeit richtig und bei einem achtzig Gigabyte großen Render-Ordner falsch. Deshalb sitzt die Einstellung am Ordner und nicht an der App. Ein Ordner, dem du sagst, er soll warten, verlässt den Ereignisstrom, behält aber seine Berechtigung offen, sodass er in dem Moment durchlaufen werden kann, in dem du fragst - und alles, was ein Durchlauf sichert, teilt einen einzigen Zeitpunkt. Eine bewusste Handlung landet so als ein Moment auf der Zeitleiste und nicht als vierhundert.

Es gibt drei Wege zu fragen. Der Ordner selbst hat eine Schnappschuss-Taste, auf Cmd-S wie ein Speichern. Finders History-Untermenü bietet Take a Snapshot Now. Und Ctrl-Opt-Cmd-S hebt ein kleines Panel über das Programm, in dem du gerade bist, nimmt einen Namen für den Moment entgegen, sichert jeden wartenden Ordner und verschwindet wieder. Sein Gegenstück Ctrl-Opt-Cmd-R öffnet das Verlaufsfenster: Retrace hat kein Menüleistensymbol und kein Dock-Icon, der Weg zurück hinein ist also ein Kurzbefehl. Beide lassen sich in den Einstellungen umlegen und tragen bewusst drei Modifikatoren - eine globale Registrierung, die eine Kollision verliert, erfährt von macOS nichts davon, und damit ist die einzige Verteidigung einer Vorgabe, eine Kombination zu sein, nach der sonst niemand greift.

Die Aufbewahrung dünnt einen Schnappschuss nie nach Alter aus. In einem Ordner, der nur auf Anfrage sichert, sind sie die einzigen Versionen, die es gibt.

Überschreiben von Bearbeiten unterscheiden

Eine im Finder auf eine andere gezogene Datei und eine vom eigenen Editor gespeicherte Datei sehen für jede API, die macOS anbietet, gleich aus. Beide hinterlassen eine Datei am Pfad, beide erzeugen eine neue Inode - ein atomares Speichern benennt eine temporäre Datei über das Ziel um, und Finders Replace benennt eine Kopie auf genau dieselbe Weise darüber um - und beide kommen als dieselben Dateisystem-Ereignisse an. Das Ereignis selbst sagt nicht, welches von beidem passiert ist.

Eines unterscheidet sie: das Änderungsdatum der Datei. Bytes, die auf einen Pfad geschrieben werden, tragen den Moment, den das Ereignis gemeldet hat; Bytes, die woanders entstanden und dorthin bewegt wurden, tragen das Datum ihres Entstehungsorts. Der Test lautet also, ob die Bytes älter sind als das Ereignis, das sie ankündigte - mit zwei Minuten Spielraum, deutlich mehr, als eine große Datei vor ihrer Sicherung legitim zurückgehalten werden kann.

Das erfasst ein Finder-Replace, ein Archiv, das auf einem Dokument landet, cp -p, rsync, eine Synchronisierung, die die Kopie vom Server schreibt, und das Zurückholen aus einem Backup. Nicht erfasst werden cp ohne -p und ein Browser-Download, die beide die aktuelle Zeit stempeln - und das bleibt bewusst so: jede Alternative, ob die alten Bytes zu hashen, Inhalte zu vergleichen oder Formate zu erschnüffeln, kostet Größenordnungen mehr und irrt auf eigene Weise. Für eine Markierung, die entscheidet, was aufgehoben wird, ist zu wenig zu behaupten die richtige Fehlerrichtung.

Es wirkt auch auf das Zehn-Sekunden-Fenster zurück: eine abgelegte Datei wartet es nicht ab. Das Fenster existiert, um die Speicher-Salve einer Datei zu einer einzigen Version zu falten, und ein Ablegen ist keine Salve - sie dort festzuhalten ist genau das, was einen zweiten Wurf auf dem ersten landen lässt, sodass beide als eine Version abgelegt werden.

Was du siehst: die Ordnerliste zeigt bei jedem Ordner, auf wie viele seiner Dateien etwas gelegt wurde, die Dateiliste markiert diese Zeilen und hat einen Schalter, der auf sie eingrenzt, und in der Zeitleiste sagt der Moment, dass die Datei ersetzt und nicht bearbeitet wurde. Den Rest übernimmt die Aufbewahrung - die Version unter einem Ersetzen wird dreißig Tage gehalten, was sonst auch ausgedünnt wird, denn ein vor einem Jahr geschriebenes und heute Morgen begrabenes Dokument ist genau die Kopie, für die jemand diese App öffnet.

Den Ordner zurückspulen, und das Zurückspulen widerrufen

Die Historie eines Ordners in Retrace als nach Tagen gebänderte Zeitleiste, in der jeder Moment die geänderten Dateien auflistet
Augenblicke werden zu Momenten, Momente zu Sitzungen, und jeder sagt, was sich geändert hat, nicht nur wann.

Ein vielbeschäftigter Ordner erzeugt selbst nach dem Zusammenfassungsfenster hunderte Aufnahmezeitpunkte pro Tag, also faltet die Zeitleiste sie. Zeitpunkte mit weniger als einer Minute Abstand sind ein Moment - vier Dokumente in derselben halben Minute zu sichern ist eine Sache, die du getan hast, nicht vier - und Momente mit mehr als 45 Minuten Abstand beginnen eine neue Sitzung. Jeder Moment listet die Dateien auf, die sich in ihm geändert haben.

Zurückspulen bringt den ganzen Ordner auf einen dieser Momente. Jeder Pfad wird geprüft, bevor irgendetwas angefasst wird, denn ein Plan, der zur Hälfte erlaubt und zur Hälfte abgelehnt ist, darf gar nicht laufen: du hast einen Zustand verlangt, nicht das meiste davon. Dann wird der aktuelle Stand von allem, was das Zurückspulen anfassen wird, aufgenommen, und dieser Schritt ist die ganze Antwort auf "und jetzt wieder zurück ins Jetzt".

Beide Hälften davon landen auf der Zeitleiste. Der Vorgang bekommt eine eigene Zeile, die sagt, wohin es ging - "zu 13:15 zurückgekehrt" - und der Stand, den du verlassen hast, bekommt kurz davor einen eigenen Punkt; keiner von beiden faltet sich in die Arbeit ringsum. Ist das Zurückspulen fertig, ist der Weg zurück schon ausgewählt und sein Plan gebaut, "das war es auch nicht" ist also ein Tastendruck, und er ist noch da, wenn das Band weg ist oder die App neu gestartet wurde. Widerrufen ist hier kein eigener Mechanismus, sondern ein Zurückspulen auf diesen Punkt, und das ist so widerrufbar wie alles andere auf der Zeitleiste. Die Zeile, deren Stand der Ordner gerade hält, wird anders gezeichnet statt beschriftet: wo du gerade bist, ist damit etwas zum Sehen und nicht zum Ausrechnen, und die erste Sicherung danach schiebt sie mit dem Ordner weiter.

Dateien, die das Zurückspulen entfernt, wandern in den Papierkorb statt gelöscht zu werden, und ebenso die Ordner, die seine eigenen Entfernungen geleert haben, von innen nach außen, sodass ein erst nach dem Ziel angelegter Baum ganz zusammenfällt - einer, in dem noch etwas liegt, das Retrace nie aufgenommen hat, bleibt, wo er ist, denn ein Zurückspulen darf nie wegnehmen, was es nicht zurücklegen könnte. Eine Datei, die sich nicht schreiben lässt, bricht den Rest nicht ab: die Fehlschläge werden gesammelt und im Bericht benannt. Ein Zurückspulen, das still elf von zwölf Dingen erledigt hat, ist schlimmer als eines, das es sagt.

Eine einzelne Datei zurückholen, nachdem du gesehen hast, was sich geändert hat

Zwei Versionen eines Dokuments in Retrace nebeneinander, die geänderten Zeilen markiert
Text vergleicht sich zeilenweise, Bilder per Wischregler oder verstärkter Differenz, und ein PDF sagt einfach, welche Seiten sich bewegt haben.

Die meisten Rettungen betreffen eine Datei, und dafür ist der Ordner die falsche Einheit. Jede Zeile sagt, wie viele Versionen sie hält und wann sie sich zuletzt geändert hat, und ein Rechtsklick führt zur Datei selbst: im Finder zeigen, oder öffnen. Eine einzelne Version lässt sich an Ort und Stelle zurückschreiben oder als nummeriertes Geschwister neben das Original legen, falls du erst vergleichen willst. Das Zurückschreiben an Ort und Stelle nimmt die aktuelle Datei vorher als Version auf, und genau das macht den Knopf drückbar; die Version, die die Datei ohnehin schon hält, wird gar nicht erst angeboten, sie sagt es stattdessen.

Verglichen wird je nach Format, denn "was hat sich geändert" hat in jedem eine andere brauchbare Antwort. Text vergleicht sich zeilenweise. Bilder bekommen einen Wischregler, eine Zwiebelhaut-Überblendung und einen Differenzmodus, der das Ergebnis verstärkt und einfärbt, denn eine rohe Differenz zweier fast gleicher Bilder ist ein schwarzes Feld mit einem Punkt darin. Ein PDF wird über den gehashten Text jeder Seite verglichen, was die Umsortierung der Objekte übersteht, die jeder Export erzeugt - ein Byte-Vergleich würde die ganze Datei für geändert erklären - und antwortet in der Auflösung, nach der Leute fragen: "Seite 3 und 7".

Was sie bewusst nicht tut

Es ist keine Sicherung. Die Historie liegt auf derselben Platte wie der Ordner, ein Laufwerksausfall nimmt also beides mit. Das ist der bewusste Tausch dafür, Sekunden nach dem Speichern aufzunehmen statt einmal pro Stunde, und deshalb bleiben Time Machine oder eine Kopie außer Haus die andere Hälfte.

Es gibt keine Synchronisierung, keine iPhone-App und kein Konto, und es funktioniert ohne Netz. Dateien, die nur in der Cloud liegen, werden übersprungen statt heruntergeladen, damit das Einschalten der Historie in einem Ordner voller ausgelagerter Platzhalter nicht still Gigabyte zurück auf die Platte zieht.

Manche Bäume sind standardmäßig ausgenommen: node_modules, DerivedData und .build, weil sie sich neu erzeugen lassen, .git und .svn, weil sie schon eine Versionsgeschichte sind, Foto- und Videomediatheken, weil sie Gigabyte-Datenbanken sind, die sich ständig selbst neu schreiben. Jede Vorgabe ist sichtbar und änderbar, denn das einzig Schlimmere als eine falsche Ausnahme ist eine unsichtbare.

Die Historie wächst nicht endlos, sie dünnt mit dem Alter aus: alles aus den letzten 24 Stunden, eine Woche stündlich, einen Monat täglich, ein Jahr wöchentlich, darüber eine Liste, die nie gelöscht wird - die zehn neuesten Versionen jeder Datei, alles Markierte, die letzte Version einer Datei, die es nicht mehr gibt, dreißig Tage lang das, was ein Überschreiben ersetzt hat, und dreißig Tage lang der Weg zurück aus einem Zurückspulen. Ein Moment, dem du einen Namen gibst, bleibt für immer, und einen zu benennen löscht nie, was ein Zurückspulen dort geschrieben hat. Jeder Ordner hat ein Speicherbudget, gegen das alte Versionen in Rente gehen.

Was sie kostet, und was sonst infrage kommt

Retrace braucht macOS 14 oder neuer, läuft auf Apple Silicon und Intel und belegt etwa 25 MB. Es ist ein einmaliger Kauf für 8,99 Dollar mit 30 Tagen Testzeit, für die es weder Karte noch E-Mail-Adresse braucht. Die vollständigen Angaben stehen auf der Retrace-Seite.

Wenn die Frage dahinter eigentlich ist, welche Sicherungsebene dir fehlt, gibt es einen Überblick in Time-Machine-Alternativen für den Mac - Versionsgeschichte und Sicherung sind verschiedene Aufgaben, und die meisten brauchen beide. Und wenn das eigentliche Problem ist, dass die Platte für alles davon zu voll ist, ist Sweep der Nachbar - es räumt einen Ordner nach Regeln auf, die du schreibst, in Dateien auf dem Mac automatisch sortieren, und der Platz, den das schafft, steht in Speicherplatz auf dem Mac freigeben.