Skip to end of metadata
Go to start of metadata

This page will show an overview of the steps required to migrate the D-HYDRO B&O code base to a git based version control system.

Related issue:  D3DFMIQ-1908 - Getting issue details... STATUS

Steps to perform (unordered):

  • Create repository on GitHub Deltares org  
  • Create github team and add all developers, testers and other employees that need write-access to the code 
  • Investigate if we need to acquire a license for SubGit to perform the migration (tick)
  • Organize git introduction session for team (show tools, explain workflow in git, set up repos)
    • Scheduled for Wed, May 20th (tick)
  • Remove svn externals from D-HYDRO codebase (warning)
    • Framework in setup solution
    • Currently, when migrating to git, code in externals will not be copied to git
  • Update versioning scheme, replace svn revision with git hash (error)
  • DeltaShell Framework automatic updating needs to be changed to work with git 
  • Create new teamcity configurations, or update svn configurations to work with the new git VCS root (error)
    • VCS root created (tick)
    • Need to move DotCover and SonarQube from svn trunk to git? maybe.. (error)
  • Connect crucible to new repository 
    • Run initial scan of repository on crucible (takes several hours)
  • Setup SubGit for migration (tick)
    • Map old committers to new users in github 
    • Map old branches to new branches in git 
  • Investigate if repository contains files too large for git (error)
  • Perform migration (can take several hours to days!) (tick)
    • Initial migration seems to work, took about 7 hours (tick)
  • Code freeze after initial migration (error)
  • Perform final migration of commits performed during inital migration and finalize (error)
  • Finalize team extra work and merge back to B&O (error)
    • If work is not finished, migrate team extra branches to git
    • If work is finished, make new branches in git for team extra. Or consider letting team extra work with feature branches per issue (a la git flow, see below)


Steps for actual migration:

  • SubGit
    • subgit configure --layout auto --trunk branches/FeatureBranches/NGHS_Delft3D_Beheer_en_Onderhoud https://repos.deltares.nl/repos/delft-tools D-HYDRO.git
    • Update D-HYDRO.git/subgit/config file
      • Edit branches
        • trunk = branches/FeatureBranches/NGHS_Delft3D_Beheer_en_Onderhoud:refs/heads/master
          branches = trunk/delta-shell/Products/NGHS:refs/heads/2019-trunk
          branches = branches/FeatureBranches/NGHS_Delft3D_Beheer_en_Onderhoud_Extra:refs/heads/TeamExtra
          branches = branches/FeatureBranches/NGHS_Delft3D_Beheer_en_Onderhoud_Extra_Develop:refs/heads/TeamExtra-develop
          branches = branches/FeatureBranches/NGHS_BO_WavesBoundaries:refs/heads/feature/WavesBoundaries
          branches = branches/D-HYDRO_2020.04:refs/heads/release/D-HYDRO-2020.04

      • Edit minimal revision and other optional properties

    • Update authors.txt, update passwd file
    • subgit install D-HYDRO.git
    • Register with free key (obtained from subgit website)

      subgit register D-HYDRO.git --key subgit.key
  • Cleanup repository
  • Add new remote

    • git remote add origin <GITHUB Remote URL>
    • git push --all

Branches to migrate:

SVN Branch pathGit Branch
branches/FeatureBranches/NGHS_Delft3D_Beheer_en_Onderhoudmaster (question)
trunkfeature/2019-trunk
branches/D-HYDRO_2020.04release/2020.04 (error) probably not needed, old release stays in svn for maintenance
branches/FeatureBranches/NGHS_BO_WavesBoundariesfeature/WavesBoundaries (error) branch closed, but keeping it here as an example


Note from Carlos Lubbers: I usually stick to the naming conventions used in git-flow https://leanpub.com/git-flow/read. Git flow is a branching strategy in git, I do not believe we should apply that strategy in D-HYDRO, but the naming scheme is pretty popular in git


#
# This is SubGit authors mapping file.
# Authors mapping is used to map Subversion committers names to Git committers names and vice versa.
#
# This file uses git-svn format, as described at 'http://www.kernel.org/pub/software/scm/git/docs/git-svn.html'
# and consists of the lines in the following format:
#
# svnUser = Git User <user@example.com>
# 

Brink_r = Brink_r <Rob.Brinkman@deltares.nl>
Donchyt = Gennadii Donchyts <Gennadii.Donchyts@deltares.nl>
Gijsber = Gijsbert Mourik <Gijsbert.Mourik@deltares.nl>
Hummel = Stef Hummel <Stef.Hummel@deltares.nl>
Levelt = Levelt <levelt@deltares.nl>
Markus = Arjen Markus <Arjen.Markus@deltares.nl>
aardweg = Tim van den Aardweg <Tim.vandenAardweg@deltares.nl>
alwan = alwan <alwan@deltares.nl>
baart = Arthur Baart <Arthur.Baart@deltares.nl>
baart_f = Fedor Baart <Fedor.Baart@deltares.nl>
belt_pe = Pauline Belt <pauline.belt@deltares.nl>
berg_jl = berg_jl <berg_jl@deltares.nl>
berg_p = berg_p <berg_p@deltares.nl>
beuke_jn = Jan van Beukering <Jan.vanBeukering@deltares.nl>
beukerin = beukerin <beukerin@deltares.nl>
bka = bka <bka@deltares.nl>
bkm = bkm <bkm@deltares.nl>
boer_we = boer_we <boer_we@deltares.nl>
boers_m = boers_m <boers_m@deltares.nl>
bos_en = bos_en <bos_en@deltares.nl>
bouvrie = bouvrie <bouvrie@deltares.nl>
brummen = brummen <brummen@deltares.nl>
carniato = Luca Carniato <Luca.Carniato@deltares.nl>
cominell = cominell <cominell@deltares.nl>
cramer_bt = cramer_bt <cramer_bt@deltares.nl>
dam_ar = Arthur van Dam <Arthur.vanDam@deltares.nl>
delucia = delucia <delucia@deltares.nl>
dijk_ls = dijk_ls <dijk_ls@deltares.nl>
donchyt = Gennadii Donchyts <Gennadii.Donchyts@deltares.nl>
dscbuildserver = dscbuildserver <dscbuildserver@deltares.nl>
dscguest = dscguest <dscguest@deltares.nl>
elzinga = Hidde Elzinga <hidde.elzinga@deltares.nl>
evers_m = evers_m <evers_m@deltares.nl>
ewout = ewout <ewout@deltares.nl>
eykelhof = eykelhof <eykelhof@deltares.nl>
faassen = faassen <faassen@deltares.nl>
freijtas = freijtas <freijtas@deltares.nl>
fun_teamcitywrite = fun_teamcitywrite <fun_teamcitywrite@deltares.nl>
geer = Pieter van Geer <Pieter.vanGeer@deltares.nl>
grijze = Andre Grijze <Andre.Grijze@deltares.nl>
hendrik = hendrik <hendrik@deltares.nl>
horst_ds = horst_ds <horst_ds@deltares.nl>
hryb = hryb <hryb@deltares.nl>
hulsb_r = hulsb_r <hulsb_r@deltares.nl>
hummel = Stef Hummel <Stef.Hummel@deltares.nl>
jagers = Bert Jagers <Bert.Jagers@deltares.nl>
janse_ma = janse_ma <janse_ma@deltares.nl>
jeuke_ml = Michelle Jeuken <Michelle.Jeuken@deltares.nl>
kahmann = kahmann <kahmann@deltares.nl>
klecz_ml = Michal Kleczek <michal.kleczek@deltares.nl>
kleijn = Elmar Kleijn <elmar.kleijn@deltares.nl>
kok_ec = kok_ec <kok_ec@deltares.nl>
koste_a = Alex Koster <Alex.Koster@deltares.nl>
kramer = kramer <kramer@deltares.nl>
kraus = kraus <kraus@deltares.nl>
logch_o = logch_o <logch_o@deltares.nl>
lubbers = Carlos Lubbers <carlos.lubbers@deltares.nl>
meijers = Erwin Meijers <Erwin.Meijers@deltares.nl>
mooiman = Jan Mooiman <jan.mooiman@deltares.nl>
mourits = Adri Mourits <Adri.Mourits@deltares.nl>
muurman = muurman <muurman@deltares.nl>
negem = Taha Negem <Taha.Negem@deltares.nl>
noordam = noordam <noordam@deltares.nl>
noort = Jan Noort <Jan.Noort@deltares.nl>
noort_a = noort_a <noort_a@deltares.nl>
nuttall = Jonathan Nuttall <Jonathan.Nuttall@deltares.nl>
oord = oord <oord@deltares.nl>
ottevan = Willem Ottevanger <Willem.Ottevanger@deltares.nl>
peele_rh = Ralph Peelen <ralph.peelen@deltares.nl>
prevel = Rob Prevel <rob.prevel@deltares.nl>
putten_hs = Hans van Putten <Hans.vanPutten@deltares.nl>
raj_pn = raj_pn <raj_pn@deltares.nl>
ralph = ralph <ralph@deltares.nl>
rodriqu_dd = David Rodriguez Aguilera <David.RodriguezAguilera@deltares.nl>
rooij_e = Erik de Rooij <Erik.deRooij@deltares.nl>
russcher = Martijn Russcher <Martijn.Russcher@deltares.nl>
schelle = schelle <schelle@deltares.nl>
schre_tn = schre_tn <schre_tn@deltares.nl>
sluis_pa = Prisca van der Sluis <prisca.vandersluis@deltares.nl>
soriano = Carles Soriano Perez <Carles.SorianoPerez@deltares.nl>
stout = Jaco Stout <Jaco.Stout@deltares.nl>
svnadmin = svnadmin <svnadmin@deltares.nl>
tang_ds = Dennis Tang <dennis.tang@deltares.nl>
tangerma = Robert Tangerman <robert.tangerman@deltares.nl>
tegelaer = Maarten Tegelaers <maarten.tegelaers@deltares.nl>
the = Tom The <tom.the@deltares.nl>
tiotto = Gabriele Tiotto <Gabriele.Tiotto@deltares.nl>
velde_ro = Ringo van der Velden <ringo.vandervelden@deltares.nl>
vonk_e = vonk_e <vonk_e@deltares.nl>
vrielin = Alja Vrieling <Alja.Vrieling@deltares.nl>
weerd_bt = Bert de Weerd <Bert.deWeerd@deltares.nl>
willcox = Scott Willcox <scott.willcox@deltares.nl>
witlox = witlox <witlox@deltares.nl>
zant = zant <zant@deltares.nl>
zeekant = zeekant <zeekant@deltares.nl>


  • No labels