wiki:Documentatie/Ontwikkelaar/Procedures/BroncodeSVN_Upporten_en_Backporten

Version 62 (modified by bob, 9 years ago) (diff)

--

Forward/back porten

Wat betekent forward-porten en back-porten van de broncode?

  • forward-porten, ook wel up-porten, is het kopiëren van de instellingen van een lagere versie naar alle hogere versies tot aan de development-versie in de SVN broncode tree. De instellingen waar het om gaat zijn functionaliteit instellingen en tekstverwerker sjablonen.
  • back-porten is het kopiëren van de instellingen van een development-versie naar alle relevante lagere versies in de SVN broncode tree.

De AC's beheerders wijzigen in hun eigen productie-versie bepaalde functionele instellingen en tekstverwerker-sjablonen. Deze instellingen moeten worden overgenomen in een hogere versie tot aan de development-versie. Mocht een beheerder er voor kiezen om een hogere versie in een testomgeving te testen dan krijgen ze de instellingen die ze kennen van hun productie-versie terug en eventueel meer. Door een forward-port-actie van een oude versie naar een hogere versie gaan er GEEN sjablonen en functionaliteit verloren als gaat werken in een nieuwere versie.

Notabene: Het forward-porten en back-porten is niet gerelateerd met het maken van een nieuwe build van OpenAC3. forward-porten en back-porten is van toepassing op de broncode van OpenAC2.

Wanneer?

  • Hier bij development gebeurt dit periodiek, bijvoorbeeld op een bepaalde dag van de week. Bijvoorbeeld vrijdag.
  • Indien er een verzoek is van een AC dat ze binnenkort een hogere versie willen uitproberen of live gaan naar een hogere versie dan moet iemand hier de forward-port/back-port gaan doen.

De procedure forward-porten/back-porten

  1. Open PyCharm?
  2. Klik linksonder de tabblad "Version control"

  1. Tabblad subversion working copies information

  1. Eerste forward-port actie is de doelstelling om de broncode van v2014 te updaten met de code/settings van branche v2012
  1. Voordat je begint met een nieuwe merge van 2014 naar 2016 doe een update van source (2014) en bestemming versie(2016)

Dit is nodig om de eerstvolgende commit goed te laten verlopen.

  1. Kies "2014 Merge from" Indien je de allereerste keer dit merge scherm gebruikt dan zijn de branches niet geconfigureerd. In dat geval krijg je een dialoog scherm om de branche 2014 te configureren.
  • Klik op "Configure branches link 2014"
  • Selecteer plus

Klik op Ok

Indien je de branche niet hoeft te configureren dan kun je in het popupmenu kiezen

  • Merge with trunk "release /2014"

  1. Kies button Quick Manual Select
  2. Je krijgt een overzicht van alle merges/changesets van 2012 van de adaptaties en eventueel aanpassingen gemaakt in de kern
  1. Pak de Wiki Trac tijdlijn erbij.
  2. Zoek in de tijdlijn naar de tekst "Overnemen van 2012 -> 2014"

Kijk naar het laatste changeset-nummer. Schrijf de datum op die hierbij hoort.

  1. Selecteer in PyCharm? alle AC changesets uitgezonderd de broncode aanpassingen gemaakt zijn door een developer user

Alles in 2012 met user Henk, Ugur of Bob kun je negeren. Deze AC changesets zijn meestal tsv aanpassingen of AC word sjabloon aanpassingen.

  1. Kies commit. Zet een beschrijvende commentaar in het Commit scherm. Dit is meestal een beschrijving zoals een oud collega Adriaan dit heeft gedaan.

Een goede beschrijving is "Overnemen van 2012->2014" Plaats deze tekst in het commit scherm bovenaan. De commentaar regels hieronder zo laten staan.

  1. Klik de button merge.

Mocht je een dialoogscherm krijgen, wil je de vorige commit changelist bewaren, kies dan nee. De vorige commit changelist is in Pycharm opgeslagen en is die van een eerdere geweest bijvoorbeeld 2012 -> 2014

  1. Na de merge commit, kan het zijn dat er merge conflicten worden getoond. In dat geval dien je dit in samenwerking met de auteur

dit op te lossen. Meestal krijg je een dialoogscherm met een overzicht waar de conflicten aanwezig zijn. Door te dubbel clicken wordt de file geopend met links de Server versie en rechts jou/lokale versie.


Controleer de gemaakte changeset port, Manual Select toont soms niet alles

Het komt voor dat een port ogenschijnlijk goed gegaan is echter dat er toch nog AC changesets missen die wel tot de forward-port zouden horen. Controleer daarom AC changesets uit de tijdlijn met die van de gemaakte forward-port.

Dus voor de zekerheid in de Trac Wiki tijdlijn ga naar de laatste forward-port met "Overnemen van versieA -> versieB" (uiteraard niet je eigen zojuist gemaakte 'Overnemen van') en noteer alle changeset nummers tot en met heden die meegenomen hadden moeten worden voor de desbetreffende forward-port.

Je kunt in een AC changeset zien welke bestanden aangepast zijn en om welke source versie het gaat waardoor je kunt beoordelen of een AC changeset behoort tot een forward-port

Voorbeeld: In de changeset staat als commentaar 'VB ad v2.012 - nieuwe medewerker functie toegevoegd' ander kenmerk als men de set opent dan ziet men dat het gaat om de file release/v2.012/adaptaties/ac_utrecht/codetabellen/medewerkerfunctie.tsv

Heeft men forward-port procedure wel goed uitgevoerd en blijkt er toch AC changesets te missen, dan is dit dit gekomen door een foutje in PyCharm? en Trac in het scherm "Manual select". Hier kan het voorkomen dat niet alle changesets van een versie niet getoond worden.

Hierdoor weet de gebruiker logisch niet dat er een AC changeset meegenomen had moeten worden voor desbetreffende forward-port Dit is een bepaalde fout hier Ugur en Bob hebben dit wel eens gehad.

Hoe dit te verhelpen.

  1. Doe opnieuw de procedure, update directory en Merge from.
  2. Kies nu "Select with Pre-Filter" in plaats van "Manual Select" Zie afbeelding De missende AC changeset zal nu zichtbaar zijn. Zie afbeelding
  1. Kies daarna op het rechter icoon rechtsboven om alle changesets te deselecteren.
  2. Kies daarna alleen de missende AC changesets en commit deze met een omschrijving "OVERNEMEN: v2.016 -> v2.100, missende AC Changesets notabene via Pre-Filter wel zichtbaar"

Foutmeldingen en antwoorden bij SVN

  • Indien het uitklappen van de branche lang duurt en uiteindelijk resulteert in onderstaande fout, dan kun je nog eens een gewone update directory doen. Resulteert dit nog steeds in de onderstaande fout dan is je Pycharm wellicht voor subversion ingelogd met een andere username/wachtwoord dan ooit in het begin is ingesteld.

Error:svn: E175002: connection refused by the server svn: E175002: OPTIONS request failed on /release/v2.012

Om een popup dialoog te krijgen waar je opnieuw de SVN username en wachtwoord kan invullen dien je de subversion instellingen te resetten. %APPDATA%\Subversion\ Dit is verkorte versie van het path en resulteert in "C:/Users/windows_gebruikersnaam/AppData/Roaming/Subversion/"

De files/directories die je dient te verwijderen:

  • servers file
  • auth directory

Vervolgens doe je een update directory van een branche. Bijvoorbeeld development.