vad är ett ”versionskontrollsystem”?
versionskontrollsystem är en kategori av mjukvaruverktyg som hjälper till att spela in ändringar som gjorts i filer genom att hålla reda på ändringar som gjorts i koden.
varför versionskontrollsystem är så viktigt?
som vi vet att en mjukvaruprodukt utvecklas i samarbete med en grupp utvecklare kan de vara placerade på olika platser och var och en av dem bidrar i någon specifik typ av funktionalitet/funktioner. Så för att bidra till produkten gjorde de ändringar i källkoden(antingen genom att lägga till eller ta bort). Ett versionskontrollsystem är en typ av programvara som hjälper utvecklarteamet att effektivt kommunicera och hantera(spåra) alla ändringar som har gjorts i källkoden tillsammans med informationen som vem som gjorde och vilken förändring som har gjorts. En separat filial skapas för varje bidragsgivare som gjorde ändringarna och ändringarna slås inte samman till den ursprungliga källkoden om inte alla analyseras så snart ändringarna är gröna signalerade de samman till huvudkällkoden. Det håller inte bara källkoden organiserad utan förbättrar också produktiviteten genom att göra utvecklingsprocessen smidig.
fördelar med versionskontrollsystemet:
a) förbättrar projektutvecklingshastigheten genom att tillhandahålla effektivt samarbete,
b) utnyttjar produktiviteten, påskyndar produktleverans och kompetens hos de anställda genom bättre kommunikation och hjälp,
c) minska möjligheterna till fel och konflikter under tiden projektutveckling genom spårbarhet till varje liten förändring,
d) anställda eller bidragsgivare av projektet kan bidra var som helst oavsett de olika geografiska platserna genom denna VCS,
e) för varje annan bidragsgivare av projektet en annan arbetskopia är underhålls och inte slås samman till huvudfilen om inte arbetskopian är validerad. Ett mest populärt exempel är Git, Helix core, Microsoft TFS,
f) hjälper till att återhämta sig vid katastrof eller kontingent situation,
g) informerar oss om Vem, Vad, när, varför ändringar har gjorts.
användning av versionskontrollsystem:
- ett arkiv: det kan ses som en databas med ändringar. Den innehåller alla ändringar och historiska versioner (ögonblicksbilder) av projektet.
- kopia av arbete( ibland kallad kassa): det är den personliga kopian av alla filer i ett projekt. Du kan redigera till den här kopian utan att påverka andras arbete och du kan äntligen begå dina ändringar i ett arkiv när du är klar med att göra dina ändringar.
typer av versionskontrollsystem:
- lokala versionskontrollsystem
- centraliserade versionskontrollsystem
- distribuerade versionskontrollsystem
lokala versionskontrollsystem: det är en av de enklaste formerna och har en databas som behöll alla ändringar i filer under revisionskontroll. RCS är ett av de vanligaste VCs-verktygen. Det håller patchuppsättningar (skillnader mellan filer) i ett speciellt format på disken. Genom att lägga till alla patchar kan den sedan återskapa hur en fil såg ut när som helst.
centraliserade versionskontrollsystem: centraliserade versionskontrollsystem innehåller bara ett arkiv och varje användare får sin egen arbetskopia. Du måste åta dig att reflektera dina ändringar i förvaret. Det är möjligt för andra att se dina ändringar genom att uppdatera.
två saker krävs för att göra dina ändringar synliga för andra som är:
- du begår
- de uppdaterar
fördelen med Cvcs (centraliserad Version Control Systems) gör samarbete mellan utvecklare tillsammans med att ge en inblick i viss utsträckning på vad alla andra gör på projektet. Det gör det möjligt för administratörer att finkornig kontroll över vem som kan göra vad.
det har också några nackdelar som ledde till utvecklingen av DVS. Det mest uppenbara är den enda felpunkten som det centraliserade förvaret representerar om det går ner under den perioden samarbete och spara versionerade ändringar är inte möjligt. Vad händer om hårddisken i den centrala databasen blir skadad och korrekta säkerhetskopior inte har hållits? Du förlorar absolut allt.
distribuerade versionskontrollsystem: distribuerade versionskontrollsystem innehåller flera arkiv. Varje användare har sitt eget arkiv och arbetskopia. Att bara begå dina ändringar ger inte andra tillgång till dina ändringar. Detta beror på att commit kommer att återspegla dessa förändringar i ditt lokala arkiv och du måste trycka på dem för att göra dem synliga i det centrala förvaret. På samma sätt, när du uppdaterar, får du inte andras ändringar om du inte först har dragit dessa ändringar i ditt arkiv.
för att göra dina ändringar synliga för andra krävs 4 saker:
- du begår
- du trycker
- de drar
- de uppdaterar
de mest populära distribuerade versionskontrollsystemen är Git, Mercurial. De hjälper oss att övervinna problemet med en enda punkt av misslyckande.
Purposeof versionskontroll:
- flera personer kan arbeta samtidigt på ett enda projekt. Alla arbetar på och redigerar sin egen kopia av filerna och det är upp till dem när de vill dela de ändringar som gjorts av dem med resten av laget.
- Det gör det också möjligt för en person att använda flera datorer för att arbeta med ett projekt, så det är värdefullt även om du arbetar själv.
- det integrerar det arbete som görs samtidigt av olika medlemmar i laget. I vissa sällsynta fall, när motstridiga ändringar görs av två personer till samma rad i en fil, begärs mänsklig hjälp av versionskontrollsystemet för att bestämma vad som ska göras.
- versionskontroll ger tillgång till de historiska versionerna av ett projekt. Detta är försäkring mot datorkrascher eller dataförlust. Om något misstag görs kan du enkelt rulla tillbaka till en tidigare version. Det är också möjligt att ångra specifika ändringar som också utan att förlora det arbete som utförts under tiden. Det kan lätt vara känt när, varför och av vem någon del av en fil redigerades.