Startpagina » hoe » Version Tracking met Subversion (SVN) voor beginners

    Version Tracking met Subversion (SVN) voor beginners

    Heb je ooit aan een project willen werken met de mogelijkheid om je wijzigingen bij te houden en ze terug te zetten? How-To Geek legt uit How-To gebruik van de populaire versie tracking-systeem, Subversion (a.k.a SVN).

    Afbeelding door duidelijk dubbelzinnig

    Prelog

    Deze handleiding is bedoeld om u de mogelijkheid te bieden om de subversion-client in het algemeen te gebruiken, en, indien u er een heeft, op uw * DD-WRT-router. Deze gids is geenszins een definitieve gids voor Subversion en veel informatie is te vinden in het Subversion Red Book. Deze gids is alleen bedoeld om u een stenografisch antwoord te geven op de meest elementaire vragen.

    Overzicht

    Er kunnen tal van redenen zijn waarom u de nieuwste code voor een softwareproject met een versiesysteem wilt "afrekenen". Als u dit doet, kunt u profiteren van de nieuwste, nog niet vrijgegeven wijzigingen, hulp bij testen en zelfs ontwikkeling. In deze gids zullen we enkele basis SVN-terminologie bespreken, laten zien hoe de SVN-client op Linux, Windows te installeren en als je er een hebt die je OPKG-enabled DD-WRT-router is. We hebben ook een voorbeeld toegevoegd van een project dat u kunt afrekenen en gebruiken voor de router.

    Wat is Subversion?

    Subversion is zeker niet het enige bestaande versiecontrolesysteem en alternatieven omvatten Git (gemaakt door Linus Torvalds de Linux-kernelfounder), Mercurial en PerForce om er maar een paar te noemen. Met dat gezegd, het is een van de gratis, het is volwassen en wordt wereldwijd veel gebruikt.

    Out of the Subversion "Red Book":

    Subversion is een gratis / open bron versiecontrolesysteem (VCS). Dat wil zeggen, Subversion beheert bestanden en mappen en de wijzigingen die ze in de loop van de tijd hebben aangebracht. Hiermee kunt u oudere versies van uw gegevens herstellen of de geschiedenis bekijken van hoe uw gegevens zijn gewijzigd. In dit opzicht beschouwen veel mensen een versiebesturingssysteem als een soort 'tijdmachine'.

    Opmerking: dit boek is de ultieme verzameling van kennis over subversie en u wordt aangeraden ernaar te verwijzen naar alle Subversion-gerelateerde onderwerpen.

    Wat is versiebeheer?

    Versiebeheer is een proces waarbij de status van een project op een bepaald moment wordt opgeslagen. Dit soort procedures wordt vaak gebruikt om softwareontwikkeling te beheren, zodat het werk kan doorgaan met het verbeteren van het project of het toevoegen van functies, terwijl het kan bijhouden wat er is veranderd sinds het laatste algemene "opslag" -punt. Om uit te werken, kan dit soort procedure nuttig zijn voor een persoon, maar des te meer voor een groep mensen die allemaal aan hetzelfde project werken. Dit komt omdat, meestal, bij het werken aan een project als een groep, er een verdeling van verantwoordelijkheden is en verschillende mensen verschillende aspecten van het project veranderen. Zonder een versleutelingsmechanisme zou het heel moeilijk zijn om iedereen op de hoogte te houden van de laatste werkwijzigingen van alle anderen.

    Terminologie

    De repository
    De repository is de locatie waar alle gegevens van alle verschillende plaatsen worden opgeslagen. In de subversiewereld is het vanuit het oogpunt van de klant de server die de database van het project bevat. Deze database bevat alle bestanden die deel uitmaken van het project met al hun eerdere versies.

    Herziening

    Wanneer een repository wordt gemaakt, krijgt deze het revisienummer van nul (0). Dit getal wordt telkens met een (1) verhoogd als er een commit wordt uitgevoerd. Het revisienummer is globaal voor de repository. Dat wil zeggen, dat er geen individueel revisienummer is voor individuele bestanden in de repository, zelfs als er in dat bestand niets is gewijzigd voor die specifieke commit.

    Het werkkopie

    Een werkkopie is een lokale kopie (of "afhandeling") van een bepaalde versie. Meestal is deze versie bij het uitchecken de "laatste" versie (ook wel "hoofd" genoemd), maar kan een eerdere aangevraagd worden. De gebruiker kan alles doen wat hij / zij wenst met de lokale kopie, met de wetenschap dat ze in het slechtste geval de code gewoon opnieuw kunnen afrekenen. Bovendien is deze kopie "privé". Dit komt omdat, totdat je je kopie updatet of vastlegt, je de veranderingen van andere mensen niet zult zien en ze de jouwe niet zullen zien.

    Bijwerken en oplossen van conflicten

    Een lokale werkkopie kan worden bijgewerkt. Dat wil zeggen, als u een bepaalde versie hebt "uitgecheckt" en terwijl u aan het werk was, de versie op de repository is bijgewerkt, kunt u uw werkkopie bijwerken naar de laatste versie. In feite zal de server voorkomen dat u uw wijzigingen doorvoert voordat u bijwerkt naar de nieuwste versie om overeen te komen met de repository. Dit wordt gedaan om u te dwingen om conflicten lokaal op te lossen, voordat u zelfs maar denkt om wijzigingen in de repository door te voeren.

    Samenvoegen

    Samenvoegen verwijst naar het proces waarbij gewijzigde code wordt samengevoegd tot één versie. Het kan ook het oplossen van conflicten met zich meebrengen.

    commits

    Committing is het proces waarin de wijzigingen die u in uw lokale kopie hebt aangebracht, weer worden samengevoegd in de repository. Dit is het gevaarlijkste deel van het proces, omdat het hier is dat wijzigingen die je hebt aangebracht van invloed kunnen zijn op andere mensen die dezelfde repository gebruiken. Dat is de reden waarom dit meestal wordt gedaan na enige afweging, met de consensus van het team en nadat je eventuele fuserende conflicten hebt opgelost.

    De workflow

    De eenvoudigste workflow vanuit het oogpunt van de gebruiker bij het gebruik van subversion is deze:

    1. Controleer de bestaande code (meestal de "kop").
    2. Breng wijzigingen aan, voeg bestanden toe en ontwikkel over het algemeen de code.
    3. Werk bij naar de nieuwste versie om te zorgen dat uw lokale kopie synchroon loopt met de updates in de repository.
    4. Voeg, indien nodig, conflicten samen en los deze op.
    5. Verbind de samengevoegde wijzigingen in de repository.
    6. Ga naar stap 2.

    Laten we kraken

    Installeer de client

    Om subversion te kunnen gebruiken, moet u de client op uw computer installeren.

    Onder Linux

    U hoeft het pakket alleen te installeren. Op Ubuntu / Mint zou dit gedaan worden met:

    sudo aptitude install subversion

    Op DD-WRT

    Als u de "Hoe extra software installeren op uw thuisrouter (DD-WRT)" hebt gevolgd, kunt u de svn-client installeren door simpelweg het volgende uit te geven:

    opkg update; opkg installeer subversion-client

    Op Windows

    Hoewel wij diepgaande geek-gebruikers misschien beginnen te vergeten dat de GUI soms zelfs bestaat, heeft niet iedereen dat wel. Als u een Windows-client wilt gebruiken om verbinding te maken met een SVN-repository, is Veruit de meest populaire "Tortoise". Om het te gebruiken, download eenvoudigweg het programma en installeer het op de reguliere "next, next, finish" manier.

    Maak de "repository"

    Hoewel we in deze handleiding niet uitgebreid ingaan op het instellen van een subversieserver, is het Google-alternatief geen slechte start voor de beginnende gebruiker. Om een ​​Google-repository te maken:

    • Ga naar de website van Google Code hosting en maak een nieuw project.
    • Vul op de volgende pagina de vereiste velden in en selecteer het type "versiecontrolesysteem" dat subversion moet worden.

      Opmerking: mogelijk wilt u een blik werpen op wat het verschil is tussen de licenties die Google aanbiedt, voordat u er een voor het project selecteert.
    • Klik op 'Project maken'.
    "Afrekenen" uw werkkopie

    Als uw project eenmaal is aangemaakt, moet u de instructies vinden voor toegang tot het project op het tabblad "Bron".

    Het leuke aan Google-code is dat het een anonieme alleen-lezenversie voor uw project inschakelt. Als je niet met het gedoe van het maken van je eigen project te maken wilt krijgen, kun je deze writer's repository anoniem uitchecken.

    Eén opmerking over het hotfortech-project: dit project is bedoeld als een verpakking voor de functies die zijn toegevoegd aan DD-WRT op How-To Geek (die ik persoonlijk gebruik) plus enkele persoonlijke aanpassingen. Hoewel dit project is bedoeld om samen te werken met de artikelen die hier over howtogeek worden gepubliceerd, is het nog steeds mijn privéproject. Dat wil zeggen, het is zeer geschikt voor mijn Buffalo-router (AR71xx-architectuur), mijn persoonlijke grillen en is gevoelig voor af en toe een borkage.

    Op Linux / DD-WRT

    Maak de directory om in te werken, bijvoorbeeld op DD-WRT, die zou kunnen zijn:

    mkdir -p / jffs / svn; cd / jffs / svn

    De volledige opdracht op Linux bestaat uit de SVN-opdracht zelf, de "checkout" -richtlijn, het adres van de repository en de map om uit te checken. Maak een lege map en voer de onderstaande opdracht uit:

    svn checkout http://hotfortech-dd-wrt.googlecode.com/svn/trunk/ hotfortech-dd-wrt-read-only

    Houd er rekening mee dat in het bovenstaande voorbeeld de alleen-lezen versie wordt uitgecheckt. Als u ervoor hebt gekozen om uw eigen repository te maken, moet u de httpS-link gebruiken.

    Op Windows

    Omdat schildpad een shell-extensie is, moet je het contextmenu van Windows bestandsverkenner gebruiken (rechts klikken) om het te gebruiken. Als je het vanuit het startmenu probeert aan te roepen, krijg je:

    • Maak een lege map.
    • Klik er met de rechtermuisknop in om het contextmenu te openen.
    • Selecteer "SVN Checkout":
    • Kopieer en plak de link voor project (als je die hebt) in het tekstvak "URL":
    • Afhankelijk van de grootte van je project kan dit een tijdje duren, maar als de "Afhandeling" voltooid is, zou je zoiets als moeten zien:
    • Je kunt beginnen met ontwikkelen.

    "Update" & "Samenvoegen" uw werkkopie
    Als u met collega's aan de code werkt, of u zelf de code vanuit verschillende locaties (zoals laptop, desktop of zelfs router) bijwerkt, moet u uw werkkopie bijwerken voordat u de laatste wijzigingen doorvoert.

    Op Linux / DD-WRT

    Het commando om dit op deze POSIX-systemen te doen is simpelweg:

    svn omhoog

    Op Windows

    • Klik met de rechtermuisknop in de werkmap en selecteer "SVN Update":
    • Als u conflicten tegenkomt, volgt u de instructies op het scherm en gebruikt u uw oordeel over wat u eraan kunt doen.

    "Verbinden" uw wijzigingen
    Dat is het, je zou conflictvrij moeten zijn en klaar om de repository bij te werken met je wijzigingen.
    Het enige punt om hier op te merken is dat het een gebruikelijke gewoonte is om een ​​"log" -bericht aan de commit toe te voegen, om gemakkelijk te kunnen herinneren waarom de wijzigingen zijn aangebracht. In feite maakt de repository van Google dit een verplichte pre-vereiste om te plegen.

    Op Linux / DD-WRT

    Dit is een voorbeeld van de commit die ik heb gemaakt met het hotfortech-project dat het heeft verhoogd naar versie 19:

    svn commit -m "bijgewerkt om de nieuwe antispamverpakkingslink weer te geven"

    Op Windows

    • Klik met de rechtermuisknop in de werkmap en selecteer "SVN Commit":
    • U moet worden begroet door een venster waarin u een logbericht kunt noteren:
    • Druk op OK en geef het door Google gegenereerde wachtwoord op wanneer om een ​​wachtwoord wordt gevraagd.
    • Als de commit succesvol was, zou je zoiets als moeten zien:
    • Dat is het, je zou je moeten kunnen binden als een BAAS.

    Laatste opmerkingen
    Dit zou voldoende moeten zijn om u op weg te helpen. U wordt geadviseerd om de SVN-naslagwerken te lezen voor een dieper en beter begrip van alle gebruiksmogelijkheden, opties en waarschuwingen van SVN. We herinneren je er (nogmaals) aan dat subversion NIET het enige versiecontrolesysteem is dat er is en dat GIT (dat is gemaakt door Linus Torvalds de Linux-oprichter van de kernel) de laatste jaren steeds populairder wordt.

    Als u ervoor kiest om de "running-config.sh" uit het hotfortech-project op uw router uit te voeren, zult u merken dat dit momenteel voor u zal installeren: het anti-ads-pack, het Opkg geek-init-script, evenals dingen zoals de volledige GNU "ls", "less", "BASH" en meer.

    /jffs/svn/hotfortech-dd-wrt/running-conf.sh

    Meer functies zijn in behandeling en zullen in de toekomst worden toegevoegd.


    Systeembeheerders coderen hun weg uit de codering.