Wersjonowany system plików to składnik oprogramowania komputerowego większego systemu plików, który zachowuje pliki w miarę ich modyfikacji, dzięki czemu plik można wyświetlić lub przywrócić do poprzedniego stanu. W systemie plików z wersjonowaniem każdy utworzony plik będzie zawierał wszystkie modyfikacje jego danych przechowywane gdzieś w systemie plików, dzięki czemu dane pliku można zrekonstruować, aby reprezentowały jego dokładny stan w dowolnym momencie od momentu jego utworzenia. Chociaż efekt końcowy używania wersji w systemie plików jest podobny do tworzenia kopii zapasowej plików w systemie plików, nie jest on uważany za taki sam, ponieważ różne wersje plików są przechowywane w tym samym systemie plików, zwykle na tym samym woluminie jako wersjonowany plik. Mechanizmy używane do implementacji systemu plików wersjonowania mogą się znacznie różnić, ale zazwyczaj obejmują albo okresowe zapisywanie całego pliku w celu utworzenia wersji, albo prowadzenie dziennika dla każdego pliku, w którym zapisywane są tylko modyfikacje, dzięki czemu plik może być proceduralnie zrekonstruowany jako potrzebne. Jedną z zalet systemu plików wersjonowania używanego w środowisku programistycznym lub współpracy jest to, że zmiany można zarówno śledzić, jak i całkowicie cofać.
Implementacja systemu plików wersjonowania może się znacznie różnić. Kilka systemów plików implementuje wersjonowanie we własnych ramach, ale wersjonowanie jest częściej dodawane osobno, tworząc tak zwany system plików do wersjonowania stosów, w którym możliwości wersjonowania działają na szczycie innego typu systemu plików. System plików czasami montuje oddzielny dysk logiczny do przechowywania informacji o wersji, podczas gdy innym razem informacje są zapisywane w plikach przechowywanych w tym samym woluminie logicznym, co rzeczywiste pliki danych.
Na poziomie systemu system plików wersjonowania może przyjmować kilka podejść do przechowywania informacji o wersji. Prosta metoda jest znana jako kopia przy zapisie, w której system kontroli wersji przechwytuje zdarzenia zapisu pliku systemowego i tworzy kopię pliku, aby zachować poprzednią wersję. Jest to skuteczne, ale z czasem może zajmować dużo miejsca.
Innym sposobem zaimplementowania wersjonowania w systemie plików jest śledzenie modyfikacji pliku przez przechowywanie tylko zmian. Ta metoda zasadniczo tworzy dziennik, który pokazuje tylko, jakie informacje zostały dodane, zmienione lub usunięte z pliku. Tylko rejestrowanie zmian może być bardzo wydajne z punktu widzenia pamięci, ale wymaga mocy obliczeniowej, aby ponownie złożyć plik, w zasadzie przechodząc przez wszystkie zmiany, które zostały wprowadzone, aby dotrzeć do migawki, o którą prosi użytkownik.
System plików z obsługą wersji jest szczególnie przydatny we współpracy w środowisku programistycznym. W przypadku tworzenia oprogramowania może to być cenny sposób na usuwanie lub cofanie zmian, gdy po aktualizacji pojawią się problemy. Inne środowiska współpracy mogą umożliwiać wielu użytkownikom modyfikowanie dokumentów, więc przechowywanie wersji może umożliwić częściowe przywrócenie dokumentu w przypadku konieczności usunięcia kilku zmian. W administrowaniu siecią wersjonowanie pomaga złagodzić długoterminowe szkody spowodowane przez złośliwe oprogramowanie lub hakerów, którzy mogą próbować delikatnie wandalizować pliki.