Notities van de basisopleiding Software Engineering

Dit document bevat de notities van de basisopleiding Software Engineering van Nautilus Pi

Mercurial (Hg)

In het onderstaande diagram wordt de basis van versiebeheer weergeven.

../../_images/hg2.png

De main wordt op de server gehost. Om deze files lokaal te verkrijgen moet een “pull” gedaan worden.

Dit kan gedaan worden doormiddel van “hg pull [source html]” vanuit de target directory. Hierdoor ontstaat er een lokale repository. Een pull “merged” ook automatisch de server repository met de bestaande repository.

Attention

De eerste keer dat je een server versie lokaal wilt maken zul je een “hg clone [source html]” moeten uitvoeren in plaats van een pull.

Om gebruik te kunnen maken van deze files moet een “hg update” gedaan worden om een workspace te verkrijgen. Hierin maakt men aanpassingen.

Als aanpassingen gemaakt zijn moet er gesaved worden om lokaal je bestanden op te slaan. Vervolgens kan je doormiddel van een “hg commit” de locale repository updaten.

Om de veranderingen beschikbaar te maken naar de rest van het team moet je een “hg push” doen om de repository op de server te zetten.

Om een kopie van andermans server repository te krijgen moet een “fork” gedaan worden binnen de gebruikte server. Deze kopie kan vervolgens aangepast worden zoals beschreven. Wanneer een aanpassing “gepushed” is zullen andere gebruikers een “hg pull” van jou “fork” moeten doen om de aanpassingen te mergen met hun versie.

Tot slot kan je ook lokaal een kopie maken van je repository door deze te “branchen”. Dit kan wenselijk zijn om meerdere versies tegelijkertijd te hanteren.

Wanneer doet men wat

  • Save - Wanneer je wilt runnen.
  • Commit - Als je een versie hebt waar je naar terug wilt kunnen.
  • Push - Als je iets hebt wat beschikbaar gemaakt moet worden aan anderen.
  • Pull - Als jij wijzigingen van anderen nodig hebt.

Decoupling

Bij het schrijven van code is het goed gedrag om verschillende modules te “decouplen”. Dit houdt in dat elke module apart te gebruiken is en dat elke module uit het systeem gehaald kan worden om te testen. Wanneer dit succesvol gedaan is wordt het systeem als loosely coupled gezien.