wiki:Documentatie/Ontwikkelaar/Procedures/BroncodeSVN_Upporten_en_Backporten

Version 72 (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. In Pycharm zorg er voor dat je de eventuele vorige mergelijst hebt verwijderd en er 1 mergelijst genaamd "Default" overblijft. Dit is heel belangrijk omdat Pycharm bij vorige mergelijsten de laatste als

actief (default) hanteerd. De handleiding staat om mergelijst te verwijderen staat hieronder.

  1. In PyCharm? en 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.


Verwijder eventuele vorige mergelijsten uit Pycharm en maakt de default mergelijst actief

Tijdens het up-port of down-port proces maakt Pycharm een mergelijst aan. Deze mergelijsten zijn te zien in de tabblad "local changes" De laatste mergelijst wordt geactiveerd als "werkende mergelijst" en hier komen alle changesets in te staan die men wil up-porten/down-porten. Het is verstandig om maar 1 mergelijst te laten staan in Pycharm met de naam "default".

Als men up-port van 2014 => 2016 dan maakt Pycharm mergelijst aan met de naam "Merge from 2014" en maakt de "default" mergelijst deactief. De actieve mergelijst staat in Pycharm bovenaan. Vervolgens gaat Pycharm na de commit de changesets uit de actieve mergelijst uitvoeren. Aan het eind wordt deze niet verwijderd en in gevallen waarbij de programmeur nieuwe sourcecode ontwikkeld voor een module komen deze changesets in deze "actieve mergelijst" te staan.

Ga je vervolgens een nieuwe up/down-port doen dan wordt er wel een nieuwe mergelijst aangemaakt met een nieuwe naam. Op deze manier werken gaat in het algemeen wel goed echter als men de mergelijsten niet opschoond dan heeft men een onoverzichtelijke situatie.

Daarnaast is het zo dat Pycharm bij het selecteren van changesets en committen zogenaamde directory-change info maakt. Dit resulteert in de sourcetree als een blauwe map van wijzigen. Wat men bijvoorbeeld ziet is de submap 2016>adaptaties in het blauw alsof hier wijzigingen in zijn geweest. Deze directory info dien je ongedaan te maken voordat je begint met een nieuwe up/down-port.

Hierboven ziet men een voorbeeld van een "directory-change info". Het inchecken van deze changes geeft/heeft geen extra waarde en daarom kan men deze beste ongedaan maken.

Beste is om voordat je opnieuw begint met porten je alle mergelijst verwijderd behalve "default" en begint zonder blauwe subdirectories.

Welke stappen je volgt om de vorige mergelijst te verwijderen.

  1. Klik de tabblad "local Changes" aan. Hier staan alle mergelijsten.
  1. Je ziet hier een vorige mergelijst. Meestal bevat deze z.g.n. directory changes.

  1. Revert de aanpassingen stuk voor stuk.
  1. Als op een gegeven moment de mergelijst leeg is en geen wijzigen bevat verwijder deze mergelijst.
  1. Ga door met leegmaken en verwijderen totdat er popup verschijnt welke mergelijst je als default mag activeren.
  1. Zorg er voor dat ook de default mergelijst leeg is voordat je begint met een nieuwe up/down-port

---

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"

De missende AC changeset zal nu zichtbaar zijn.

  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"

Niet ACs up-porten van 2012 => 2014

Vanaf 10 Augustus is er doorgegeven dat men niet de wijzigingen van Pentos van 2012 hoeft te upporten. Dit zijn de volgende AC's

  • Hengelo
  • Apeldoorn
  • Twente
  • Drenthe
  • Zwolle
  • Amersfoort
  • Friesland

en ook

  • Utrecht

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.