Home

versiebeheersing

Versiebeheersing is het proces en de technologieën voor het beheren van revisies van bestanden en projecten, met name in softwareontwikkeling. Het doel is wijzigingen bij te houden, de evolutie van een project te reconstrueren en samenwerking tussen ontwikkelaars te ondersteunen. Een versiebeheersysteem legt wie wanneer welke wijziging heeft doorgevoerd vast, en maakt het mogelijk terug te keren naar eerdere staten en verschillen tussen versies te vergelijken.

Kernbegrippen zijn onder meer een repository, een opslagplaats met de volledige geschiedenis van de bestanden; commits,

Systemen kunnen centraal zijn (centraal server-gebaseerd) of gedistribueerd. Populaire tooling op dit moment is Git, maar

Voordelen zijn traceerbaarheid, reproduceerbaarheid van builds, betere samenwerking en de mogelijkheid om fouten terug te draaien.

kleinschalige
wijzigingssets
met
beschrijvende
berichten;
branches,
vertakkingen
voor
ontwikkeling
van
features
of
bugfixes;
en
tags,
markeringen
voor
releases.
Bij
het
samenvoegen
(merge)
kunnen
conflicten
ontstaan
die
handmatige
reconciliatie
vereisen.
De
geschiedenis
van
wijzigingen
kan
via
logboeken
en
diffs
worden
geanalyseerd.
ook
Subversion
en
Mercurial
bestaan
nog.
Werkstromen
variëren
van
feature-branch-workflows
(bv.
GitFlow)
tot
trunk-based
development;
Continuous
Integration
en
Continuous
Deployment
worden
vaak
ondersteund
door
versiebeheer.
Uitdagingen
omvatten
merge-conflicten,
beheersing
van
toegang
en
reikwijdte
van
wijzigingen.
Goede
praktijken
zijn
onder
meer
duidelijke
commit-berichten,
kleine
opsplitsingen
van
wijzigingen,
code
reviews
en
regelmatige
synchronisatie
tussen
teamleden.