wiki:Documentatie/Ontwikkelaar/Omgeving/Source

Version 1 (modified by adriaan, 13 years ago) (diff)

--

Source

De OpenAC source-code leeft in een Subversion repository. Toegang tot de repository wordt door een van de source-control tools? geregeld -- meestal ook Subversion.

Deze pagina beschrijft handelingen die regelmatig uitgevoerd worden op de source-tree in de loop van normale software-ontwikkeling.

Wijzigingen overnemen

Het meest gemakkelijke is om wijzigingen naar "voren" over te nemen: van een release versie naar nieuwere release versies, of over naar development. Omdat dit regelmatig moet gebeuren is het het meest gemakkelijk om het automatisch met SVN tools te doen.

SVN merge, sinds SVN 1.6, houdt bij welke wijzigingen zijn overgenomen. Daardoor voorkom je dat wijzigingen meer dan een keer overgenomen worden, en het wordt ook vrij makkelijk:

svn pg svn:mergeinfo development
svn merge -r NNN:HEAD release/v1.222 development/
svn commit -m "OVERNEMEN: v1.222 -> development NNN t/m MMM"

Met het eerste commando vraag je de mergeinfo op van SVN. Omdat er sommige oude revisies nooit gemerged zijn op een heldere manier, willen we die ook niet meer overnemen. Kijk wat de laatst-gemergede revisie is (in dit geval gaan we v1.222 naar development mergen, dus zoek de uitvoer regel met release/v1.222 en onthoud de meest recente revisie daar. Zeg dat NNN=r19183, bijvoorbeeld.

Vervolgens doen we de merge zelf. Veranderingen vanaf revisie NNN worden overgenomen van v1.222 naar development. Hierbij kunnen conflicts ontstaan. Los die op.

Tot slot met de commit worden de nieuw gemergede revisies als een enkele commit doorgegeven. Merk vervolgens op dat de svn:mergeinfo veranderd is.

Backports

Het is ook mogelijk om veranderingen over te nemen van nieuwere versies naar oude, de zogenaamde backports. Dit gebeurt als er belangrijke functionaliteit ontwikkeld wordt, zeg in development, dat vervolgens tussen twee releases door uit moet komen, of als er ingewikkelde bugfixes moeten worden overgenomen.

svn merge werkt ook van development naar andere branches, maar in het geval van backports is het vaak handig om specifieke commits over te nemen. Gebruik dan -c NNN in plaats van -r NNN:HEAD om precies een revisie NNN over te nemen. Welke revisies over te nemen kan je lezen uit de timeline van OpenAC of uit svn log.

Clean

Met "clean" bedoelen we dat de code opgeschoond wordt volgens de code-formattering die we hebben afgesproken en die automatisch door een tool kan worden toegepast. Daarnaast zijn er diverse headers en instellingen die systematisch worden toegepast op de sources zodat iedereen elkaar niet in de weg zit.