Eski sürümün zaten durabileceği dört yer
Bir şey kurmadan önce, Mac'inizin aradığınız dosyayı hâlihazırda tutuyor olabileceği dört yere bakın. Her biri farklı ve dar bir durumu kapsıyor, ve hangisinde olduğunuzu anlamak işin çoğu.
Uygulamanın içindeki Dosya > Şuna Dön. macOS yıllardır belge sürümlemesini
kendi içinde taşıyor, ve bunu benimseyen bir uygulamada
Dosya > Şuna Dön > Tüm Sürümlere Göz At menüsü çıkıyor: o tek belgenin geçmiş
kayıtları bir zaman çizgisinde. TextEdit, Önizleme, Pages, Numbers ve Keynote'ta
var. İnsanların gerçekten içinde çalıştığı şeylerin çoğunda yok: hiçbir Adobe
uygulamasında, hiçbir Office uygulamasında, bir betiğin yazdığı hiçbir dosyada.
Time Machine. Otomatik Olarak Yedekle açıksa macOS başlangıç diskinin yerel bir APFS anlık görüntüsünü kabaca saatte bir alıyor ve 24 saat saklıyor, artı son başarılı yedeğin bir görüntüsünü. İşe yarayıp yaramayacağını iki sınır belirler: çözünürlük bir kayıt değil bir saat, ve bir günden eskisi ancak yedek disk takılıysa var.
Bulut klasörünüzün sürüm geçmişi. Dropbox Basic ve Plus'ta 30, Professional'da 180 gün sürüm tutuyor. Google Drive bir sürümü 30 gün ya da 100 yeni sürüm birikene kadar saklıyor, Sonsuza dek sakla demediyseniz. iCloud Drive burada tuhaf olan: 30 günlük Son Silinenler, sildiğiniz dosyaları geri getiriyor, üzerine yazdığınız sürümleri değil. Üçü de tam olarak tek bir klasörü, eşitlenen klasörü kapsıyor.
Uygulamanın kendi otomatik kaydı. Bakmaya değer, güvenmeye pek değmez. O bir geri al, ve geri al süreçle birlikte ölür.
Bunlardan biri dosyanızı tutuyorsa okumayı bırakın. Aşağısı hiçbirinin kapsamadığı durum için: eşitlenmeyen bir klasör, sürüm menüsü olmayan bir uygulamayla düzenlenmiş, bir saatten önce bozulmuş, ya da tek dosyada değil aynı anda birkaçında bozulmuş. Retrace tam bu durum için yazılmış yerel bir macOS uygulaması, ve aşağıdaki her şey yayınlanan sürümde var.
Geçmişi açmak bir sağ tık

Finder'da bir klasöre sağ tıklıyorsunuz, Geçmiş'i seçiyorsunuz ve açıyorsunuz - ya da klasörü uygulamanın kendi klasör listesinden ekliyorsunuz. Varsayılan klasör yok, siz seçmeden hiçbir şey izlenmiyor. Kapatmak için tekrar sağ tık. Her klasörün kendi disk bütçesi var, geçmiş de varsayılan olarak bir yıl tutuluyor; ikisi de Ayarlar -> Depolama'da, aşağıda anlatılıyor, farklı istediğinizde oradalar.
Geçmiş altında beş öğe var, üç öbek hâlinde: açıp kapatmak, tıkladığınız şeye davranmak - bu klasörün anlık kopyasını al, bu dosyanın önceki sürümünü geri getir - ve uygulamayı açmak. Hepsi her zaman var ve her zaman bu sırada; o an işlevsiz olan kaldırılmıyor, soluklaştırılıyor. Böylece hareket her seferinde aynı hareket oluyor. Menü neye baktığını da böyle söylüyor, ikinci bir gösterge olmadan: anlık kopya yalnızca beklemeye alınmış bir klasörde, geri getirme ise yalnızca bir dosyada etkin.
Menünün arkasında App Sandbox içinde kalmanın tek gerçek bedeli duruyor. Bir Finder eklentisi sağ tıkladığınız yolu verebilir, başka bir şeyi veremez, çünkü başka bir süreçten gelen bir yol izin demek değildir. Bu yüzden ilk çalıştırma ana klasörünüz için bir kez izin istiyor ve o izni saklıyor; sonrasında menü doğrudan çalışıyor. İzin vermezseniz aynı işlem bir klasör seçici açıyor.
İzlenen bir klasörün ihtiyacı olan diğer şey, hâlâ izlendiğinin kanıtı. Güvenlik kapsamlı bir izin sessizce çözülmez hâle gelebiliyor - bir birim kayboluyor, bir işletim sistemi güncellemesi bir grup yer imini geçersizleştiriyor - ve macOS'ta bunu bildiren hiçbir şey yok; akış öylece durmayı bırakıyor. Bütün vaadi "bunu kaybetmeyeceksin" olan bir uygulamada bu bir çökmeden kötü, o yüzden her klasör belirli aralıklarla yeniden çözülüyor ve gerçek bir test okumasından geçiyor; kayıt yapmayı bırakmış olan da listede iyi görünmek yerine bunu söylüyor.
Her şeyin bir kopyasını tutmak neden bedava
APFS'te copyfile, COPYFILE_CLONE ile birlikte kopyalarken yazma sırasında
kopyalayan bir klon üretiyor: özgün dosyanın veri bloklarını paylaşan yeni bir
dosya. Oluşturulması yaklaşık sıfır bayt ve mikrosaniyeler tutuyor - 64 MB'lık
bir klon 0,1 ms civarında ölçülüyor ve kendine ait sıfır bayt bildiriyor - ve bir
uygulamanın kaydedebileceği iki yolun da altında doğru bir anlık görüntü olarak
kalıyor. Dosyayı yerinde yeniden yazan bir düzenleyici taze bloklar ayırıyor ve
eskileri klona bırakıyor; atomik kaydeden bir düzenleyici klonun hiç bağlı
olmadığı yepyeni bir dosya yazıyor.
Bir sabit bağın (hardlink) sahip olmadığı özellik tam olarak bu, ve klasik sabit bağ ağacı yaklaşımının neden seçenek olmadığı da bu: sabit bağ aynı dosyadır, yani yerinde yazan bir uygulama sakladığınızı sandığınız sürümü sessizce yeniden yazar.
Yakalamak bedava olduğu için Retrace bol bol yakalıyor ve yakalamanın sayılıp sayılmayacağına sonradan bir içerik özeti karar veriyor. Bedava olmayan şey saklamak, ve özgün dosya klondan uzaklaştıkça klon pahalılaşıyor. Bu yüzden uygulamanın gösterdiği rakam, geçmişi silmenin gerçekten boşaltacağı yer; kâğıt üzerinde sürümlerin toplamı değil: tek bir 40 MB'lık dosyanın otuz klonu naif ölçüyle 1,2 GB, gerçekte 40 MB. Bir sürümü elle silmeden önce silme penceresinin söylediği rakam da bu.
Klonlama uygulamanın değil birimin bir özelliği, ve HFS+ ya da exFAT biçimli bir harici disk bunu hiç yapamıyor. Retrace baştan bakıyor ve her yakalamayı sessizce tam kopyaya çevirmek yerine klasörü geri çeviriyor.
Bir dosyanın yazılmasının bittiğini anlamak
macOS'ta bunu düzgün cevaplayan hiçbir şey yok. Cevaplayacak olan sinyal - Endpoint Security'nin "bir süreç bu dosyayı yazmayı bitirdi"si - Apple'ın vereceği bir yetki istiyor, sandbox ile bağdaşmıyor ve Mac App Store'da kabul edilmiyor. Başka bir sürecin dosyayı hâlâ açık tutup tutmadığını sormanın da bir yolu yok.
Yani bu katmanlı bir tahmin, ve katmanların yanılmasına izin var, çünkü onlar yalnızca ne zaman bakılacağına karar veriyor. Bakışın sayılıp sayılmayacağına sonrasında özet karar veriyor. Dosya başına on saniyelik bir sessizlik, tek bir düzenleme oturumunun otomatik kayıt yağmurunu tek bir sürüme indiriyor - on, VS Code'un kendi yerel geçmişinin kullandığı sayı: bir yağmuru birleştirecek kadar uzun, bir dakika arayla yapılmış iki bilinçli kaydı iki sürüm bırakacak kadar kısa. Sonra bir kararlılık yoklaması boyut, değiştirilme tarihi ve inode'un üçünün de durduğuna bakıyor; sıfır uzunluk koruması yazarken kesilen bir kırpmayı, karantina kontrolü de daha inmemiş bir indirmeyi yakalıyor. Bir dosyayı değiştirmeden kaydedin, hiç sürüm çıkmıyor.
Ne zamanını sen söylemek istediğinde

Her kaydı almak bir tez klasöründe doğru, seksen gigabaytlık bir render klasöründe yanlış. Bu yüzden ayar uygulamanın değil, klasörün ayarı. Beklemesi söylenen klasör olay akışından çıkıyor ama iznini açık tutuyor, böylece sen istediğin anda dolaşılabiliyor - ve tek bir dolaşmanın sakladığı her şey aynı anı paylaşıyor. Bilinçli bir eylem zaman çizgisine dört yüz değil, tek bir an olarak düşüyor.
İstemenin üç yolu var. Klasörün kendi ekranında bir anlık kopya düğmesi var, kaydetme gibi Cmd-S'te. Finder'ın Geçmiş alt menüsü Şimdi Anlık Kopya Al diyor. Ctrl-Opt-Cmd-S ise hangi uygulamadaysan onun üstüne küçük bir panel çıkarıyor, ana bir isim alıyor, bekleyen bütün klasörleri kaydediyor ve çekiliyor. Eşi Ctrl-Opt-Cmd-R geçmiş penceresini açıyor: Retrace'in menü çubuğu öğesi ve Dock simgesi yok, dolayısıyla içeri dönüş yolu bir kısayol. İkisi de Ayarlar'dan değiştirilebiliyor ve ikisi de bilerek üç değiştirici taşıyor - çakışmayı kaybeden bir global kayda macOS hiçbir şey söylemiyor, yani bir varsayılanın tek savunması kimsenin uzanmayacağı bir kombinasyon olmak.
Budama bir anlık kopyayı yaşına bakarak hiç inceltmiyor. Yalnızca istendiğinde kaydeden bir klasörde zaten tek sürüm onlar.
Üstüne yazmayı düzenlemeden ayırmak
Finder'da bir dosyanın üstüne sürüklenen bir dosya ile kendi editörünün kaydettiği bir dosya, macOS'un sunduğu her API'ye birebir aynı görünür. İkisi de yolda bir dosya bırakır, ikisi de yeni bir inode üretir - atomik kayıt geçici bir dosyayı hedefin üstüne taşır, Finder'ın Replace'i de bir kopyayı tam aynı şekilde taşır - ve ikisi de aynı dosya sistemi olaylarıyla gelir. Olayın kendisi hangisi olduğunu söylemez.
Onları ayıran tek şey, dosyanın kendi değiştirilme tarihidir. Bir yola yazılan byte'lar olayın bildirdiği anı taşır; başka yerde üretilip oraya taşınanlar ise yazıldıkları yerdeki tarihi taşır. Yani test şudur: byte'lar, kendilerini haber veren olaydan eski mi? İki dakikalık pay ile - büyük bir dosyanın yakalanmadan önce meşru olarak bekletilebileceği en uzun süreyi rahatça aşan bir pay.
Bu; Finder replace'ini, bir belgenin üstüne açılan arşivi, cp -p'yi, rsync'i,
sunucudaki kopyayı indiren eşitlemeyi, yedekten geri almayı yakalar. -p olmadan
cp'yi ve tarayıcı indirmesini yakalamaz - ikisi de o anki saati damgalar - ve
bilerek yakalamıyor: her alternatif (önceki byte'ları hash'lemek, içerik
karşılaştırmak, format koklamak) kat kat pahalı ve kendi yanlışlarını taşıyor.
Neyin saklanacağına karar veren bir işaret için doğru hata yönü, az iddia
etmektir.
Bunun on saniyelik pencereye de bir etkisi var: yerleştirilen bir dosya pencereyi beklemez. Pencere, tek bir dosyanın otomatik kayıt salvosunu tek sürüme katlamak için var; bir bırakma ise salvo değil - orada bekletmek, tam olarak ikinci bir bırakmanın birincisinin üstüne inmesine ve ikisinin tek sürüm olarak dosyalanmasına yarar.
Gördüklerin: klasör listesi her klasörde kaç dosyanın üstüne bir şey konduğunu gösterir, dosya listesi o satırları işaretler ve yalnızca onlara indiren bir anahtar taşır, zaman çizgisinde de o an dosyanın düzenlendiğini değil üstüne yazıldığını söyler. Gerisini bekletme kuralları devralır - üstüne yazılanın altındaki sürüm, başka ne inceltilirse inceltilsin otuz gün tutulur; çünkü bir yıl önce yazılıp bu sabah gömülen bir belge, insanın bu uygulamayı tam da geri almak için açtığı kopyadır.
Klasörü geri sarmak, ve geri sarmayı geri almak

Yoğun bir klasör, birleştirme penceresi işini yaptıktan sonra bile günde yüzlerce yakalama anı üretiyor, o yüzden zaman çizgisi bunları katlıyor. Bir dakikadan yakın anlar tek bir an - aynı yarım dakikada dört belge kaydetmek yaptığınız dört şey değil, bir şey - ve anlar, Şimdi'den aşağı inen tek bir omurga üzerinde kendi günlerinin altında duruyor. Her an içinde neyin değiştiğini söylüyor; birini seçmek klasörün o noktadaki hâlinin tamamını gösteriyor, yalnızca oynayan dosyaları değil, ve bir geri sarmanın geri alacağı omurga parçası renkli çiziliyor.
Geri sarmak bütün klasörü o anlardan birine götürüyor. Hiçbir şeye dokunulmadan önce her yol denetleniyor, çünkü yarısına izin verilip yarısı reddedilen bir plan hiç çalışmamalı: siz bir durum istediniz, o durumun çoğunu değil. Sonra geri sarmanın dokunacağı her şeyin o anki hâli yakalanıyor, ve "beni yine şimdiye getir"in bütün cevabı bu adım.
Bunun iki yarısı da zaman çizgisinde kalıyor. Yapılan işin kendi satırı oluyor ve nereye gidildiğini söylüyor - "13.15 hâline döndün" - bıraktığınız durum da onun hemen öncesinde kendi noktasını alıyor; ikisi de etrafındaki işin içine katlanmıyor. Geri sarma bittiğinde dönüş yolu zaten seçili ve planı kurulmuş oluyor, yani "bu da değilmiş" tek bir basış, ve şerit kapandıktan ya da uygulama yeniden açıldıktan sonra da orada duruyor. Burada geri alma ayrı bir mekanizma değil, o noktaya geri sarmak; ve zaman çizgisindeki her şey kadar geri alınabilir. Klasörün şu an hangi hâli tuttuğunu gösteren satır etiketlenmek yerine farklı çiziliyor, yani nerede olduğunuz çıkarılacak değil görülecek bir şey; ondan sonraki ilk kayıt da onu klasörle birlikte ileri taşıyor.
Geri sarmanın kaldırdığı dosyalar silinmek yerine Çöp Sepeti'ne gidiyor; kendi kaldırdıkları yüzünden boşalan klasörler de, en derinden başlayarak, öyle ki hedeften sonra kurulmuş bir ağaç bütün olarak toplanıyor - içinde Retrace'in hiç yakalamadığı bir şey duran klasör olduğu yerde kalıyor, çünkü bir geri sarma geri koyamayacağı şeyi asla alıp götürmemeli. Yazılamayan bir dosya da gerisini iptal etmiyor: hatalar toplanıp raporda adıyla söyleniyor. On iki işin on birini sessizce yapan bir geri sarma, yapamadığını söyleyenden kötüdür.
Bir güne atlamak
Bir yıllık geçmiş uzun bir kaydırma demek. Zaman çizgisinin üstündeki takvim düğmesi her seferinde bir ay gösteriyor ve geçmişi olan günleri işaretliyor; hiçbir şey olmayan bir gün seçilemiyor. Bir gün seçmek, klasörün o gün bırakıldığı hâle götürüyor; "salı günü her şey yolundaydı" çoğu zaman tam olarak bu demek. En yeniye git sizi yeniden en üste getiriyor.
Klasörü o anki hâliyle dışarı almak
Bazen bugünkünü bırakmadan geçen salının klasörünü istersiniz. Zaman çizgisinde bir ana sağ tıklayıp Klasörü bu anki haliyle dışa aktar'ı seçin ya da klasörün içeriğinin üstündeki düğmeyi kullanın; her dosya o anki hâliyle, seçtiğiniz yerde yeni bir klasöre kopyalanıyor. Klasörünüzün kendisine dokunulmuyor. Yeni klasör izlenen klasörlerinizin dışında olmalı - birinin içinde olsa kopya yeni geçmiş olarak kaydedilirdi - ve bitemeyen bir dışa aktarma arkasında hiçbir şey bırakmıyor.
Neyin değiştiğini gördükten sonra tek bir dosyayı geri koymak

Kurtarmaların çoğu tek bir dosya, ve onlar için klasör yanlış birim. Her satır kaç sürüm tuttuğunu ve en son ne zaman değiştiğini söylüyor, ve sağ tıklamak dosyanın kendisine ulaşıyor: Finder'da göster, ya da aç. Tek bir sürüm yerinde geri konabiliyor, ya da önce karşılaştırmak isterseniz özgün dosyanın yanına numaralı bir kardeş olarak yazılabiliyor. Yerinde geri koymak, üzerine bir şey yazmadan önce mevcut dosyayı bir sürüm olarak yakalıyor; düğmeyi basılabilir kılan da bu. Dosyanın zaten tuttuğu sürüm ise hiç önerilmiyor, bunun yerine öyle olduğunu söylüyor.
Bir sürüm geçmişten kendi başına bir dosya olarak da çıkabiliyor. Listeden
Finder'a sürükleyin ya da Kopyasını kaydet'i seçip istediğiniz yere koyun; iki
yolda da dosyanın adını ve o anı taşıyarak geliyor, örneğin
report (2026-10-25 14.32).docx, böylece eski taslak yenisinin yanında duruyor ve
onu yapan uygulamada yine açılıyor. Sürümün kendisi geçmişte kalıyor.
Bir sürümün geçmişte hiç durmaması gerekiyorsa sağ tıklayıp silin, ya da bir dosyanın bütün sürümlerini bir kerede silin. Pencere kaç sürümün gideceğini ve bunun ne kadar disk açacağını söylüyor, bir sözü bozmadan önce de uyarıyor - sonsuza dek saklamayı seçtiğiniz bir sürüm, bir geri koymayı ya da geri sarmayı geri alınabilir kılan kopya, artık var olmayan bir dosyanın son kopyası. Üstünde durduğu sürümü kaybeden adlı bir an, kendisinden geriye kalana taşınıyor; hiçbir şeyi kalmayan bir an ise kaldırılıyor ve pencere bunu her şeyden önce söylüyor. Dosyanın kendisine dokunulmuyor.
Karşılaştırma biçime göre değişiyor, çünkü "ne değişti"nin her birinde farklı ve işe yarar bir cevabı var. Metin satır satır karşılaştırılıyor. Görsellerde kaydırmalı bir ayraç, soğan zarı geçişi, ve sonucu güçlendirip sahte renklendiren bir fark kipi var; çünkü neredeyse aynı iki görselin ham fark karışımı, içinde bir nokta olan siyah bir kare. PDF ise her sayfanın metni özetlenerek karşılaştırılıyor: bu, her yeniden dışa aktarmanın ürettiği nesne sırası değişikliğine dayanıyor - bayt karşılaştırması bütün dosyaya değişti derdi - ve insanların gerçekten sorduğu çözünürlükte, yani "3. ve 7. sayfalar" diye cevap veriyor.
Eski bir sürümü içinde yazanla bulmak

Bazen hangi dosya olduğunu bilmezsiniz, yalnızca içinde ne yazdığını - geçen ay kestiğiniz bir paragraf, sonradan değişen bir teklifteki bir rakam. Dosyalar sekmesindeki aramayı Ad'dan İçerik'e çevirin ve en az iki harf yazın: Retrace yalnızca dosyanın bugünkü hâline değil, kayıtlı her sürümün kelimelerine bakıyor, ve bir sonucu açmak eşleşen sürümü açıyor.
Düz metni, PDF'leri (ilk 200 sayfa) ve RTF, Word ve OpenDocument belgelerini macOS'un zaten getirdiği metin sistemiyle okuyor. Görseller, arşivler, Pages dosyaları ve dürüstçe okuyabileceği kelimesi olmayan her şey tahminle yarım okunmak yerine dışarıda kalıyor; 20 MB'tan büyük bir dosya hiç okunmuyor. Dizin arka planda kuruluyor ve Mac'te kalıyor; Ayarlar -> Depolama'daki Dosyaların içinde ara boyutunu gösteriyor, kapatmak da dizini siliyor.
Bilerek yapmadıkları
Bu bir yedekleme değil. Geçmiş klasörle aynı diskte duruyor, yani bozulan bir sürücü ikisini birden alıyor. Bu, saatte bir yerine kayıttan saniyeler sonra yakalamanın bilinçli takası, ve Time Machine'in ya da site dışı bir kopyanın hâlâ işin diğer yarısı olmasının sebebi.
Eşitleme yok, iPhone uygulaması yok, hesap yok, ve ağ kapalıyken çalışıyor. Yalnızca bulutta duran dosyalar indirilmek yerine atlanıyor, böylece boşaltılmış yer tutucularla dolu bir klasörde geçmişi açmak gigabaytları sessizce diske geri çekemiyor.
Bazı ağaçlar varsayılan olarak dışarıda: node_modules, DerivedData ve
.build yeniden üretildikleri için, .git ve .svn zaten birer sürüm geçmişi
oldukları için, fotoğraf ve video kitaplıkları da sürekli kendini yeniden yazan
gigabaytlarca veritabanı oldukları için. Her varsayılan görünür ve
düzenlenebilir, çünkü kötü bir hariç tutmadan kötü tek şey görünmez olanı.
Geçmiş sonsuza kadar büyümek yerine yaşla inceliyor: son 24 saatin tamamı, bir hafta saatlik, bir ay günlük, sonra siz ne kadar tutarsanız o kadar haftalık - 1, 3 ya da 6 ay, 1 yıl (varsayılan) veya süresiz; Ayarlar -> Depolama'da bütün klasörler için tek bir seçim. Altında da hiçbir ayarın geçemediği asla silinmeyenler listesi duruyor: her dosyanın en yeni on sürümü, sonsuza dek saklamayı seçtiğiniz her şey, istediğiniz her anlık kopya, artık var olmayan bir dosyanın son sürümü, üstüne yazılanın altında kalan hal (o andan sonraki otuz gün), ve bir geri sarmadan sonraki otuz gün boyunca onun dönüş yolu. Ad verdiğiniz bir an ise büsbütün saklanıyor, ve bir ana ad vermek orada bir geri sarmanın yazdığını asla silmiyor.
Her klasörün bir de disk bütçesi var ve eski sürümler, en eskiden başlayarak, ona karşı emekli oluyor. Otomatik, 5 GB ile boş alanınızın onda birinden hangisi küçükse o; yerine 1 ile 50 GB arasında sabit bir boyut (1, 2, 5, 10, 25 ya da 50) ya da sınırsız seçebilirsiniz. Retrace'in saklamaya söz verdikleri bütçeyi zaten aşıyorsa, sözü bozmak yerine bunu söylüyor - bütçeyi yükseltin, bir klasörü kaldırın ya da geçmişin bir kısmını kendiniz silin.
Ne kadar ve başka neye bakmalı
Retrace macOS 14 veya sonrasını istiyor, Apple Silicon ve Intel'de çalışıyor ve yaklaşık 25 MB yer kaplıyor. Tek seferlik 4,99 dolar, ve 30 günlük denemesi ne kart ne e-posta istiyor. Tam künye Retrace sayfasında.
Bütün bunun arkasındaki soru aslında hangi yedekleme katmanının eksik olduğuysa, Mac için Time Machine alternatifleri bunun dökümü - sürüm geçmişi ile yedekleme ayrı işler ve çoğu insanın ikisine de ihtiyacı var. Asıl sorun disk hiçbirine yer bırakmayacak kadar doluysa, komşu uygulama Sweep: bir klasörü senin yazdığın kurallara göre düzenliyor - Mac'te dosyaları otomatik sıralamak - ve açtığı yer Mac'te disk alanı açmak yazısında.
