Versionsstyring er et softwareværktøj til at holde styr på versioner af filer, f.eks. til brug for udvikling af software. Versionsstyringssoftware kan holde styr på ændringer, så man altid kan gå tilbage til en tidligere version eller undersøge, hvad der præcist er ændret mellem en eller flere versioner af en tekstfil. Tekstfilerne består ofte af kildeteksten til programmer, men kan også indeholde andre ting, lige som filer, der ikke består af tekst, kan håndteres.

Versionsstyringssystemer holder desuden styr på hvem, der har foretaget de enkelte ændringer, lige som ændringer foretaget af flere programmører i den samme fil i mange tilfælde kan flettes sammen. Nogle systemer er baseret på en låsning af de enkelte filer, før der kan ændres. Dette forhindrer andre i at ændre den pågældende fil, så længe den er låst.

Wikipedia-systemet indeholder lige som andre Content Management Systemer også versionsstyringsfaciliteter i form af en historik på artikler. Det kan benyttes mod forskellige former for hærværk, idet man kan gå tilbage til en ældre version og i øvrigt tydeligt kan se, hvad der er blevet ændret, hvornår og af hvem.

De enkelte ændringer, der ’’tjekkes ind’’, tildeles et revisionsnummer. Ændringerne stemples med tidspunkt og person. Desuden er det muligt at knytte en kommentar til ændringen, f.eks. nummeret på en fejlrapport eller et ændringsønske og en kort bemærkning. Det er ofte muligt at lave en afgrening af et samlet projekt, en ’’branch’’, når man vil lave en ny version af et softwaresystem, lige som versioner af software til forskellige platforme kan administreres.

En samlet pakke af filer svarende til et revisionsniveau kan ’’tjekkes ud’’. Det kan danne grundlag for en oversættelse af nyeste eller en given version af et større system (en ’’build’’).

Det er noget nær uundværligt, når flere personer skal arbejde på samme projekt, eller et projekt har en vis kompleksitet. Versionsstyringsværktøjer er ofte selvstændige systemer, der i nogle tilfælde kan integreres med et integreret udviklingsmiljø (et IDE). I andre tilfælde er de en del af IDE’en.

Mange nyere kontorprogrammer kan holde styr på en ændringshistorik, således at de seneste ændringer kan fremhæves. Den funktion kan give problemer, hvis et færdigt dokument fremsendes med ændringshistorikken inkluderet til 3.part, der så kan gøre sig bekendt med information, der ikke var beregnet for andre.