Wat is een “versiebeheersysteem”?
versiebeheersystemen zijn een categorie softwaretools die helpen bij het vastleggen van wijzigingen in bestanden door het bijhouden van wijzigingen in de code.
waarom versiebeheersysteem zo belangrijk is?
omdat we weten dat een softwareproduct is ontwikkeld in samenwerking met een groep ontwikkelaars, kunnen ze zich op verschillende locaties bevinden en draagt elk van hen bij aan een specifiek soort functionaliteit/functies. Dus om bij te dragen aan het product, hebben ze wijzigingen aangebracht in de broncode(door toe te voegen of te verwijderen). Een versiebeheersysteem is een soort software die het ontwikkelaarsteam helpt om efficiënt te communiceren en te beheren(volgen) alle wijzigingen die zijn aangebracht in de broncode, samen met de informatie zoals Wie heeft gemaakt en welke verandering is gemaakt. Er wordt een aparte branch gemaakt voor elke bijdrager die de wijzigingen heeft aangebracht en de wijzigingen worden niet samengevoegd in de oorspronkelijke broncode, tenzij ze allemaal worden geanalyseerd zodra de wijzigingen groen zijn aangegeven dat ze zijn samengevoegd met de belangrijkste broncode. Het houdt niet alleen de broncode georganiseerd, maar verbetert ook de productiviteit door het ontwikkelingsproces soepel te maken.
voordelen van het versiebeheersysteem:
a) verhoogt de projectontwikkelingssnelheid door efficiënte samenwerking te bieden,
b) benut de productiviteit, versnelt de levering van producten en vaardigheden van de werknemers door betere communicatie en bijstand,
c) verminder de mogelijkheden van fouten en conflicten ondertussen projectontwikkeling door traceerbaarheid tot elke kleine verandering,
d) werknemers of bijdrager van het project kunnen van overal bijdragen, ongeacht de verschillende geografische locaties via deze VCS,
e) voor elke verschillende bijdrager van het project is een andere werkkopie gehandhaafd en niet samengevoegd met het hoofdbestand tenzij de werkkopie gevalideerd is. Een populair voorbeeld is Git, Helix core, Microsoft TFS,
f) helpt bij herstel in het geval van een ramp of een voorwaardelijke situatie,
g) informeert ons over wie, wat, wanneer, waarom wijzigingen zijn aangebracht.
gebruik van versiebeheersysteem:
- een repository: het kan worden gezien als een database van wijzigingen. Het bevat alle bewerkingen en historische versies (snapshots) van het project.
- kopie van werk (soms genoemd als checkout): het is de persoonlijke kopie van alle bestanden in een project. Je kunt deze kopie bewerken, zonder het werk van anderen te beïnvloeden en je kunt eindelijk je wijzigingen committen naar een repository als je klaar bent met het maken van je wijzigingen.
typen versiebeheersystemen:
- lokale versiebeheersystemen
- gecentraliseerde versiebeheersystemen
- gedistribueerde versiebeheersystemen
lokale versiebeheersystemen: het is een van de eenvoudigste vormen en heeft een database die alle wijzigingen in bestanden onder revisie houdt. RCS is een van de meest voorkomende VCS tools. Het houdt patch sets (verschillen tussen bestanden) in een speciaal formaat op de schijf. Door het optellen van alle patches kan het vervolgens opnieuw maken hoe een bestand eruit zag op elk moment in de tijd.
gecentraliseerde versiecontrolesystemen: gecentraliseerde versiecontrolesystemen bevatten slechts één repository en elke gebruiker krijgt zijn eigen werkkopie. Je moet committen om je wijzigingen in de repository weer te geven. Het is mogelijk voor anderen om uw wijzigingen te zien door bij te werken.
twee dingen zijn nodig om uw wijzigingen zichtbaar te maken voor anderen die:
- u commit
- zij updaten
het voordeel van CVCS (Centralized Version Control Systems) zorgt voor samenwerking tussen ontwikkelaars en biedt tot op zekere hoogte inzicht in wat iedereen doet op het project. Het stelt beheerders in staat om fijnkorrelige controle over wie wat kan doen.
het heeft ook enkele nadelen die hebben geleid tot de ontwikkeling van DVS. Het meest voor de hand liggende is het enkele punt van mislukking dat de gecentraliseerde repository vertegenwoordigt als het tijdens die periode naar beneden gaat samenwerking en het opslaan van versiewijzigingen is niet mogelijk. Wat als de harde schijf van de centrale database beschadigd raakt, en de juiste back-ups niet zijn bewaard? Je verliest absoluut alles.
gedistribueerde versiebeheersystemen: gedistribueerde versiebeheersystemen bevatten meerdere repositories. Elke gebruiker heeft zijn eigen repository en werkkopie. Alleen je wijzigingen committen geeft anderen geen toegang tot je wijzigingen. Dit komt omdat commit deze veranderingen in je lokale repository zal weerspiegelen en je ze moet pushen om ze zichtbaar te maken op de centrale repository. Evenzo, wanneer je update, krijg je de wijzigingen van anderen niet tenzij je deze wijzigingen eerst naar je repository hebt gepulled.
om uw wijzigingen zichtbaar te maken voor anderen, zijn 4 dingen vereist:
- u commit
- u pusht
- zij Pullen
- zij updaten
De meest populaire gedistribueerde versiebeheersystemen zijn Git, Mercurial. Ze helpen ons het probleem van één punt van mislukking te overwinnen.
doel van versiebeheer:
- meerdere mensen kunnen gelijktijdig aan één project werken. Iedereen werkt aan en bewerkt zijn eigen kopie van de bestanden en het is aan hen wanneer ze de wijzigingen die door hen zijn gemaakt met de rest van het team willen delen.
- het stelt ook één persoon in staat om meerdere computers te gebruiken om aan een project te werken, dus het is waardevol, zelfs als u alleen werkt.
- Het integreert het werk dat gelijktijdig wordt gedaan door verschillende leden van het team. In sommige zeldzame gevallen, wanneer conflicterende bewerkingen worden gemaakt door twee mensen op dezelfde regel van een bestand, dan wordt menselijke hulp gevraagd door het versiebeheersysteem om te beslissen wat er moet worden gedaan.
- versiebeheer geeft toegang tot de historische versies van een project. Dit is een verzekering tegen computercrashes of gegevensverlies. Als er een fout is gemaakt, kunt u eenvoudig terugrollen naar een vorige versie. Het is ook mogelijk om specifieke bewerkingen ongedaan te maken die ook zonder het werk dat in de tussentijd is gedaan te verliezen. Het is gemakkelijk te weten wanneer, waarom en door wie een deel van een bestand werd bewerkt.