Alle tidligere versjoner av filene lagres, så man kan rekonstruere filstrukturen til ethvert tidspunkt. En feil har for eksempel oppstått i et program. Når oppsto denne feilen? Hva ble gjort som forårsaket denne feilen? Man vet med sikkerhet at en tidligere versjon av programmet ikke hadde denne feilen, altså må feilen ha oppstått på et visst tidspunkt. Ved å rekonstruere tidligere versjoner kan man identifisere endringene som introduserte feil. Det er lett å vise forskjeller mellom to forskjellige versjoner og på den måten ha kontroll over hva som er gjort. Ved å skrive inn en kommentar hver gang en versjon legges inn, får man etter hvert en bra oversikt over utviklingen. Flere brukere kan som oftest jobbe ganske uavhengig av hverandre på de samme filene. Etter at filene er forandret, legges de inn i systemet, og andre brukere som har tilgang til systemet, vil få med seg disse oppdateringene. Dette er en god hjelp i å forhindre at dine forandringer blir annullert fordi gamle versjoner av filen blir lagt inn av de andre utviklerne. Systemer som dette forhindrer at man legger ned mye arbeid i form av redigering av gammel, avleggs kildekode, men har stadig siste versjon innen rekkevidde med komplett historie for hver enkelt fil. Det er ofte mulig å lage parallelle og alternative versjoner som det kan arbeides på uten at den stabile eller vanlige versjonen blir påvirket.