Versions a AutoSave v OS X Lion — ako ich používať?

versions_macbook

Novinkami v OS X Lion sú aj funkcie Versions a AutoSave, ktoré zjednodušujú prácu pri ukladaní dokumentov, hlavne textových. AutoSave ich ukladá v pravidelných intervaloch a pri každom vypnutí aplikácie. Versions potom umožňuje si prezerať históriu daného súboru, od jeho vytvorenia, cez všetky jeho zmenené verzie. Prebieha to v podobnom rozhraní ako Time Machine, s časovou osou.

Používatelia si zvyknú premazať alebo neuložiť svoju prácu niekedy v najdôležitejších okamihoch, ako je deň pred deadlinom a podobne. Zákon schválnosti to robí aj napriek častému ukladaniu súborov. Apple priniesol AutoSave a Versions, aby zabránil takýmto prípadom, a aby zbavil používateľov potreby stláčania cmd+s. Neuvedomelé zaobchádzanie s týmito funkciami môže spôsobiť viac škody, ako úžitku. V skutočnosti sa ale dajú obe dokonale využiť tam, kde to Apple zamýšlal.

Versions a AutoSave podporuje zatiaľ len niekoľko aplikácií od Apple: TextEdit, iWork, Automator a Preview. Okrem nich napríklad NeoOffice. Masového rozšírenia sa asi nedočkajú, ale v kancelárskych balíčkoch a textových editoroch si určite nájdu svoje miesto. Microsoft Office pre Mac ich sľubuje v najbližšom upgrade.

Používanie

Mnohí ukladajú svoje dokumenty pravidelne, skratkou cmd+s aj bez rozmýšlania a takmer každých niekoľko sekúnd. V podporovaných aplikáciách to už nebude treba, lebo AutoSave ukladá súbory každých päť minút, pri každom pozastavení v písaní alebo napĺňaní obsahu a pred každým zatvorením dokumentu.

Save, Duplicate

Po vytvorení nového dokumentu je možné ho uložiť kliknutím na Save alebo skratkou cmd+s. Aplikácia ponúkne dialógové okno požadujúce informácie o uložení súboru (formát, názov, cieľ, atď.). Z ponuky zmizla funkcia Save As, namiesto nej je tu Duplicate. Po kliknutí na ňu sa vytvorí nový neuložený dokument, vyzerajúci rovnako ako aktuálny spracovávaný, ktorý už nie je nijako spojený s pôvodnou verziou.

Popri napĺňaní obsahu dokumentu ho aplikácia na pozadí automaticky ukladá. V záhlaví dokumentu je možnosť Browse All Versions…, ktorá zobrazí kompletnú históriu dokumentu od jeho vzniku. Netreba sa báť, že veľa verzií a uložení by zaberalo veľa miesta ako súčet veľkostí všetkých uložení. Jednotlivé verzie sa totiž ukladajú len ako zmeny voči predošlému obsahu.

ponuka funkcií AutoSave

Zamknutie dokumentu

V ponuke po kliknutí na názov v záhlaví dokumentu sa ešte nachádza možnosť Lock, ktorá uzamkne súbor. Znamená to, že po jeho otvorení sa do neho nebude dať písať a teda sa nebudú pridávať jeho nové verzie. Po pokuse niečo napísať vyskočí okno s tlačidlami Unlock a Duplicate. Systém automaticky zamkne každý dokument po dvoch týždňoch od jeho poslednej úpravy. Tento interval sa dá zmeniť v System Preferences → Time Machine → Options… → Lock documents after last edit.

Nahradenie za poslednú otvorenú/uloženú verziu dokumentu

Po otvorení dokumentu a zmenení obsahu, ale ešte pred uložením, AutoSave ponúka Revert to Last Opened Version, čo zmení dokument na taký, ako vyzeral pri otvorení. Po uložení sa možnosť zmení na Revert to Last Saved Version, ktorá dostane dokument do stavu, kedy užívateľ vedome naposledy uložil dokument.

Prostredie Versions na prehliadanie strarších verzií dokumentov

Prostredie Versions, podobné Time Machine: Zobrazuje aktuálnu verziu spracovávaného dokumentu (1); kaskádu starších verzií dokumentov, medzi ktorými je možné scrollovať (2); tlačidlo Restore, ktoré nahradí dokument zobrazenou verziou na pravej strane (3); časovú os, kde sa sa dá vracať na konkrétne miesto v čase.

vo Versions sa priamo dá upravovať dokument

Priamo vo Versions sa dá upravovať aktuálny dokument a kopírovať naň kusy textu alebo obrázky zo starších verzií.

Funkcionalita

Versions funguje podobne ako programátorské verzovacie systémy Git alebo SVN. Prináša vytváranie verzií dokumentov do života používateľov. Ukladanie verzií pripomína Commit. Saving-as-preserving sa deje automaticky a saving-as-commiting sa deje ako vytváranie novej verzie: Každých 5 minút, každé pozastavenie písania a pred každým zatvorením dokumentu sa ukladá/obnovuje aktuálna verzia dokumentu. Nevytvárajú sa nové, len sa premazáva aktuálna. Naproti tomu, každú hodinu, každé otvorenie dokumentu a každé kliknutie na Save a Version sa vytvorí nová verzia dokumentu a automaticky sa na ňu ukladajú aktuálne zmeny.

Správa systému je veľmi efektívna: verzie uložené každú hodinu uchováva jeden deň, potom každý mesiac uchováva verzie z každého dňa a týždenné verzie si nechá navždy. Po priložení dokumentu k emailu sa odošle len jeho aktuálna verzia, história ostáva lokálne na počítači.

Celý engine je dobre prepracovaný. Snaží sa, aby uchovávanie dát bolo fyzicky čo najmenej náročné. Rozdeľuje spracovávané súbory na kúsky (chunks), ktoré potom ukladá podľa toho, či sa zmenia alebo nie. Nerozdeľuje podľa fixnej veľkosti, pretože tak by ľahko mohla nastať situácia, že réalne uložená jedna verzia by aj tak mohla zabrať takmer 100 % veľkosti. Využíva metódu Rabin fingerprinting, kedy jednotlivé „chunks“ sú vyberané na základe zmien, ktoré používateľ vykoná v súbore. Server arstechnica.com podotýka, že podobný spôsob by mohol Apple využívať aj v iCloud. Okrem toho sa v systéme nachádza množstvo informácií o vnútorných štruktúrach súborov, obrázkov, videí, atď. Versions engine to berie do úvahy, vďaka čomu môže ešte inteligentnejšie rozdeľovať jednotlivé chunks.

Fyzicky sú Versions dáta a databázy v priečinku /.DocumentRevisions-V100/, ku ktorému je pre prístup potrebné mať administrátorské práva. Nachádza sa v ňom päť priečinkov, z ktorých tri sú veľmi dôležité. Údajne až tak, že po ich zmazaní odmietajú Versions aplikácie úplne ukladať súbory, až pokiaľ sa disk neopraví cez Disk Utlity → Repair Disk.

  1. V adresári .cs sú binárne uložené všetky chunks všetkých verzií všetkých súborov z Versions. Okrem toho je tam SQLite databáza, ktorá ich spravuje. Tu sa dáta fyzicky nachádzajú.
  2. V PerUID sa podľa užívateľského čísla UID rozdeľujú všetky kompletné verzie (teda nie rozdelené na chunks). Podľa tohto by teda fyzicky na disku boli z každej verzie dve kópie: jedna ako súčet všetkých chunks jednotlivých verzií a druhá ako „hotový“ súbor v PerUID priečinku. Na blogu tekonomist.wor­dpress.com uvažujú ešte hlbšie, že v PerUID sa tieto súbory nachádzajú podobne ako hardlinky. Na úrovni inodov sú tu „kompletizované“ súbory pomocou odkazov na fyzické miesta na disku s chunks, ktoré sú prvotne v .cs priečinku.
  3. V db-V1 je SQLite databáza s informáciami o jednotlivých verziách. Jednotlivé položky sa potom zobrazujú v prostredí Versions a v aplikáciách. Sú to napríklad názov, zámok, status (či je súbor menený alebo zmenený), atď.
d--x--x--x   7 root  wheel   238 Aug  8 18:57 . drwxr-xr-x  38 root  wheel  1360 Aug 26 23:43 .. drwx------   5 root  wheel   170 Aug 21 14:37 .cs drw-------   2 root  wheel    68 Aug  8 18:59 ChunkTemp d--x--x--x   3 root  wheel   102 Aug  8 18:57 PerUID drwx------   4 root  wheel   136 Aug 21 14:37 db-V1 drwx--x--x   2 root  wheel    68 Aug  8 18:59 staging

Aplikačné rozhranie a dokumentácia je dostupná na developer.apple­.com. Popísané sú hlavne spôsoby ako implementovať AutoSave, samotná funkcionalita nie je oficiálne dokumentovaná. Nečudo, veď to nie je open-source.

Viac článkov na tému

Partneri

Inzercia