Versionering av filsystem
Ett versionsfilsystem är vilket datorfilsystem som helst som gör att en datorfil kan existera i flera versioner samtidigt. Det är alltså en form av revisionskontroll . De vanligaste versionshanteringsfilsystemen behåller ett antal gamla kopior av filen. Vissa begränsar antalet ändringar per minut eller per timme för att undvika att lagra ett stort antal triviala ändringar. Andra tar istället periodiska ögonblicksbilder vars innehåll kan nås med liknande semantik som normal filåtkomst.
Liknande tekniker
Säkerhetskopiering
Ett versionshanteringsfilsystem liknar en periodisk säkerhetskopiering , med flera viktiga skillnader.
- Säkerhetskopieringar utlöses normalt på tidsbestämd basis, medan versionshantering sker när filen ändras.
- Säkerhetskopieringar är vanligtvis systemomfattande eller partitionstäckande, medan versionshantering sker oberoende på fil-för-fil-basis.
- Säkerhetskopieringar skrivs normalt till separata media, medan versionshanteringsfilsystem skriver till samma hårddisk (och normalt samma mapp, katalog eller lokala partition).
I jämförelse med revisionskontrollsystem
Versioneringsfilsystem tillhandahåller några av funktionerna i revisionskontrollsystem . Men till skillnad från de flesta revisionskontrollsystem är de transparenta för användarna och kräver inte ett separat "commit"-steg för att spela in en ny revision.
Journalföring filsystem
Versioneringsfilsystem ska inte förväxlas med journalföring av filsystem . Medan journalföring av filsystem fungerar genom att föra en logg över ändringarna som gjorts i en fil innan de överförs till det filsystemet (och skriver över den tidigare versionen), behåller ett versionsfilsystem tidigare kopior av en fil när nya ändringar sparas. De två funktionerna tjänar olika syften och utesluter inte varandra.
Objektlagring
Vissa objektlagringsimplementeringar erbjuder objektversionering som Amazon S3 .
Genomföranden
DESS
En tidig implementering av versionering, möjligen den första, fanns i MIT:s ITS . I ITS bestod ett filnamn av två delar med sex tecken; om den andra delen var numerisk (bestod endast av siffror) behandlades den som ett versionsnummer. När man anger en fil som ska öppnas för läsning eller skrivning, kan man ange en andra del av ">"; vid läsning innebar detta att den högst numrerade versionen av filen öppnades; när du skrev innebar det att öka det högsta befintliga versionsnumret och skapa den nya versionen för skrivning.
En annan tidig implementering av versionshantering var i TENEX , som blev TOPS-20 .
Filer-11 (RSX-11 och OpenVMS)
Ett kraftfullt exempel på ett filversionssystem är inbyggt i operativsystemet RSX-11 och OpenVMS från Digital Equipment Corporation . Närhelst ett program öppnar en fil för att skriva, skapar filsystemet automatiskt en ny instans av filen, med ett versionsnummer bifogat till namnet. Versionsnummer börjar på 1 och räknas uppåt när nya instanser av en fil skapas. När ett program öppnar en fil för läsning kan det antingen ange det exakta filnamnet inklusive versionsnummer, eller bara filnamnet utan versionsnumret, i vilket fall den senaste instansen av filen öppnas. "purge" DCL/CCL kan användas när som helst för att hantera antalet versioner i en specifik katalog. Som standard kommer alla utom de högst numrerade versionerna av alla filer i den aktuella katalogen att raderas; detta beteende kan åsidosättas med /keep=n-växeln och/eller genom att ange katalogsökväg(ar) och/eller filnamnsmönster. VMS-system är ofta skriptade för att rensa användarkataloger på ett regelbundet schema; detta misstolkas ibland av slutanvändare som en egenskap hos versionssystemet.
Linux
Den 8 februari 2004 föreslog Kiran-Kumar Muniswamy-Reddy, Charles P. Wright, Andrew Himmer och Erez Zadok (alla från Stony Brook University ) en applikation som var användarvänlig för många av de användare som testade appen. Systemet utvecklades med Linux-programvara, så det kördes först på Linux.
- NILFS - Ett loggstrukturerat filsystem som stöder versionshantering av hela filsystemet och kontinuerlig ögonblicksbildtagning. I den här listan är detta den enda som är stabil och ingår i huvudlinjekärnan.
- Tux3 - Senaste förändringen var 2014. [1]
- Next3 - Den senaste uppdateringen var 2012.
- ext3cow - Senaste utgåvan var 2005.
LMFS
Lisp Machine File System stöder versionshantering. Detta tillhandahölls av implementeringar från MIT, LMI, Symbolics och Texas Instruments. Ett sådant operativsystem var Symbolics Genera .
Mac OS
Från och med Lion (10.7) har macOS en funktion som heter Versions som tillåter Time Machine -liknande att spara och bläddra i tidigare versioner av dokument för applikationer som skrivits för att använda versioner. Denna funktionalitet äger emellertid rum i applikationslagret, inte filsystemlagret; Lion och senare versioner innehåller inte ett äkta versionsfilsystem.
SCO OpenServer
HTFS , som antogs som det primära filsystemet för SCO OpenServer 1995, stöder filversionshantering. Versionering aktiveras per katalog genom att ställa in katalogens setuid-bit, som ärvs när underkataloger skapas. Om versionshantering är aktiverad skapas en ny filversion när en fil eller katalog tas bort, eller när en befintlig fil öppnas med trunkering. Icke-aktuella versioner finns kvar i filsystemets namnutrymme, under namnet på originalfilen men med ett bifogat suffix bestående av semikolon och versionssekvensnummer. Alla utom den aktuella versionen är dolda från katalogläsningar (såvida inte miljövariabeln SHOWVERSIONS är inställd), men versioner är annars tillgängliga för alla normala operationer. Miljövariabeln och allmän tillgänglighet tillåter att versioner hanteras med de vanliga filsystemverktygen, men det finns också ett "återställ"-kommando som kan användas för att rensa och återställa filer, aktivera och inaktivera versionshantering på kataloger, etc.
Andra
- Subversion har en funktion som kallas "autoversioning" där en WebDAV- källa med en subversion backend kan monteras som ett filsystem på system som stöder denna typ av montering (Linux, Windows och andra gör det) och sparar till det filsystemet genererar nya revisioner på revisionskontrollsystem.
- Den kommersiella programvaran för konfigurationshantering och revisionskontroll av Clearcase har också stött "MVFS" (filsystem med flera versioner) på HP-UX, AIX och Windows sedan början av 1990-talet.
Relaterad programvara
Följande är inte versionshanteringsfilsystem, men tillåter liknande funktionalitet.
- APFS och ZFS stöder ögonblicksbilder och kloner.
- Btrfs stöder ögonblicksbilder.
- HAMMER i DragonFlyBSD har möjlighet att lagra revisioner i filsystemet.
- NILFS , som stöder ögonblicksbilder .
- Plan 9 :s Fossil- filsystem kan tillhandahålla en liknande funktion genom att ta periodiska ögonblicksbilder (ofta varje timme) och göra dem tillgängliga i /n/snap . Fossil kan för alltid arkivera en ögonblicksbild i Venti (vanligtvis en ögonblicksbild varje dag) och göra dem tillgängliga i /n/dump . Om flera ändringar görs i en fil under intervallet mellan ögonblicksbilderna, kommer endast den senaste att spelas in i nästa ögonblicksbild.
- Write Anywhere File Layout - NetApps lagringslösningar implementerar ett filsystem som kallas WAFL, som använder snapshot-teknik för att hålla olika versioner av alla filer i en volym.
- pdumpfs, författat av Satoru Takabayashi, är ett enkelt dagligt säkerhetskopieringssystem som liknar Plan 9:s /n/dump, implementerat i Ruby . Den fungerar som ett snapshot-verktyg, vilket gör det möjligt att kopiera en hel katalog till en annan plats genom att använda hårda länkar. Används regelbundet kan detta ge en effekt som liknar versionshantering.
- Microsoft Windows
- Shadow Copy - är en funktion som introducerats av Microsoft med Windows Server 2003. Shadow Copy gör det möjligt att ta manuella eller automatiska säkerhetskopior eller ögonblicksbilder av en fil eller mapp på en specifik volym vid en viss tidpunkt.
- RollBack Rx - Tillåter att ögonblicksbilder av diskpartitioner tas. Varje ögonblicksbild innehåller bara skillnaderna mellan tidigare ögonblicksbilder och tar bara några sekunder att skapa. Kan användas tillförlitligt för att hålla ett Windows-operativsystem stabilt och/eller skyddat från skadlig programvara.
- GoBack (upphört) - GoBack-mjukvaran för Windows från Symantec möjliggör återställning av filer, kataloger eller diskar till tidigare tillstånd. Den kan spela in maximalt 8 GB i ändringar och stoppar tillfälligt registreringen av varje ändring i händelse av hög I/O- aktivitet.
- Versomatic - Versomatic programvara från Acertant spårar automatiskt filändringar och arkiverar förebyggande en kopia av en fil innan den ändras.
- Cascade File System exponerar ett Subversion- eller Perforce -förråd via en filsystemdrivrutin. Användaren måste fortfarande uttryckligen bestämma när ändringar ska genomföras.
- git- implementeringsdokument kallar git ett "innehållsadresserbart filsystem med ett VCS-användargränssnitt skrivet ovanpå det." Det finns också en FUSE-implementering från tredje part som kan utöka git som ett monterbart, läs-skriv-versionsfilsystem.
Se även
externa länkar
- "Hur man gör en fillagring" . WikiHow . Hämtad 31 juli 2018 .