Coworking with git
-
Upload
julien-pivotto -
Category
Technology
-
view
359 -
download
2
Transcript of Coworking with git
Coworking with gitCoworking with gitCoworking with gitCoworking with gitCoworking with gitCoworking with gitCoworking with gitCoworking with gitCoworking with gitCoworking with gitCoworking with gitCoworking with gitCoworking with gitCoworking with gitCoworking with gitCoworking with gitCoworking with git
Collaborating tips for gitCollaborating tips for gitCollaborating tips for gitCollaborating tips for gitCollaborating tips for gitCollaborating tips for gitCollaborating tips for gitCollaborating tips for gitCollaborating tips for gitCollaborating tips for gitCollaborating tips for gitCollaborating tips for gitCollaborating tips for gitCollaborating tips for gitCollaborating tips for gitCollaborating tips for gitCollaborating tips for git
Julien PivottoJulien PivottoJulien PivottoJulien PivottoJulien PivottoJulien PivottoJulien PivottoJulien PivottoJulien PivottoJulien PivottoJulien PivottoJulien PivottoJulien PivottoJulien PivottoJulien PivottoJulien PivottoJulien Pivotto
LOADays, AntwerpLOADays, AntwerpLOADays, AntwerpLOADays, AntwerpLOADays, AntwerpLOADays, AntwerpLOADays, AntwerpLOADays, AntwerpLOADays, AntwerpLOADays, AntwerpLOADays, AntwerpLOADays, AntwerpLOADays, AntwerpLOADays, AntwerpLOADays, AntwerpLOADays, AntwerpLOADays, AntwerpApril 11th, 2015April 11th, 2015April 11th, 2015April 11th, 2015April 11th, 2015April 11th, 2015April 11th, 2015April 11th, 2015April 11th, 2015April 11th, 2015April 11th, 2015April 11th, 2015April 11th, 2015April 11th, 2015April 11th, 2015April 11th, 2015April 11th, 2015
whoamiwhoamiwhoamiwhoamiwhoamiwhoamiwhoamiwhoamiwhoamiwhoamiwhoamiwhoamiwhoamiwhoamiwhoamiwhoamiwhoamiJulien PivottoJulien PivottoJulien PivottoJulien PivottoJulien PivottoJulien PivottoJulien PivottoJulien PivottoJulien PivottoJulien PivottoJulien PivottoJulien PivottoJulien PivottoJulien PivottoJulien PivottoJulien PivottoJulien Pivotto
• System administrator at inuits.euSystem administrator at inuits.euSystem administrator at inuits.euSystem administrator at inuits.euSystem administrator at inuits.euSystem administrator at inuits.euSystem administrator at inuits.euSystem administrator at inuits.euSystem administrator at inuits.euSystem administrator at inuits.euSystem administrator at inuits.euSystem administrator at inuits.euSystem administrator at inuits.euSystem administrator at inuits.euSystem administrator at inuits.euSystem administrator at inuits.euSystem administrator at inuits.eu
• Git user for 5+ yearsGit user for 5+ yearsGit user for 5+ yearsGit user for 5+ yearsGit user for 5+ yearsGit user for 5+ yearsGit user for 5+ yearsGit user for 5+ yearsGit user for 5+ yearsGit user for 5+ yearsGit user for 5+ yearsGit user for 5+ yearsGit user for 5+ yearsGit user for 5+ yearsGit user for 5+ yearsGit user for 5+ yearsGit user for 5+ years• DevOps believerDevOps believerDevOps believerDevOps believerDevOps believerDevOps believerDevOps believerDevOps believerDevOps believerDevOps believerDevOps believerDevOps believerDevOps believerDevOps believerDevOps believerDevOps believerDevOps believer• Open-source defender since 2004Open-source defender since 2004Open-source defender since 2004Open-source defender since 2004Open-source defender since 2004Open-source defender since 2004Open-source defender since 2004Open-source defender since 2004Open-source defender since 2004Open-source defender since 2004Open-source defender since 2004Open-source defender since 2004Open-source defender since 2004Open-source defender since 2004Open-source defender since 2004Open-source defender since 2004Open-source defender since 2004• @roidelapluie@roidelapluie@roidelapluie@roidelapluie@roidelapluie@roidelapluie@roidelapluie@roidelapluie@roidelapluie@roidelapluie@roidelapluie@roidelapluie@roidelapluie@roidelapluie@roidelapluie@roidelapluie@roidelapluie on irc/twitter/githubon irc/twitter/githubon irc/twitter/githubon irc/twitter/githubon irc/twitter/githubon irc/twitter/githubon irc/twitter/githubon irc/twitter/githubon irc/twitter/githubon irc/twitter/githubon irc/twitter/githubon irc/twitter/githubon irc/twitter/githubon irc/twitter/githubon irc/twitter/githubon irc/twitter/githubon irc/twitter/github
Ops <3 DevOps <3 DevOps <3 DevOps <3 DevOps <3 DevOps <3 DevOps <3 DevOps <3 DevOps <3 DevOps <3 DevOps <3 DevOps <3 DevOps <3 DevOps <3 DevOps <3 DevOps <3 DevOps <3 Dev
• Infrastructure as CodeInfrastructure as CodeInfrastructure as CodeInfrastructure as CodeInfrastructure as CodeInfrastructure as CodeInfrastructure as CodeInfrastructure as CodeInfrastructure as CodeInfrastructure as CodeInfrastructure as CodeInfrastructure as CodeInfrastructure as CodeInfrastructure as CodeInfrastructure as CodeInfrastructure as CodeInfrastructure as Code▶ SSSSSSSSSSSSSSSSSCM all the things▶ MMMMMMMMMMMMMMMMMonitoring▶ CCCCCCCCCCCCCCCCConfiguration▶ AAAAAAAAAAAAAAAAApplication deployment
• Taking part of software developmentTaking part of software developmentTaking part of software developmentTaking part of software developmentTaking part of software developmentTaking part of software developmentTaking part of software developmentTaking part of software developmentTaking part of software developmentTaking part of software developmentTaking part of software developmentTaking part of software developmentTaking part of software developmentTaking part of software developmentTaking part of software developmentTaking part of software developmentTaking part of software development▶ UUUUUUUUUUUUUUUUUnderstanding▶ MMMMMMMMMMMMMMMMMonitoring▶ HHHHHHHHHHHHHHHHHigh Availability▶ ……………………………………………
Me and gitMe and gitMe and gitMe and gitMe and gitMe and gitMe and gitMe and gitMe and gitMe and gitMe and gitMe and gitMe and gitMe and gitMe and gitMe and gitMe and git
• I first used subversion (10 years ago)I first used subversion (10 years ago)I first used subversion (10 years ago)I first used subversion (10 years ago)I first used subversion (10 years ago)I first used subversion (10 years ago)I first used subversion (10 years ago)I first used subversion (10 years ago)I first used subversion (10 years ago)I first used subversion (10 years ago)I first used subversion (10 years ago)I first used subversion (10 years ago)I first used subversion (10 years ago)I first used subversion (10 years ago)I first used subversion (10 years ago)I first used subversion (10 years ago)I first used subversion (10 years ago)• Private forges and sourceforgePrivate forges and sourceforgePrivate forges and sourceforgePrivate forges and sourceforgePrivate forges and sourceforgePrivate forges and sourceforgePrivate forges and sourceforgePrivate forges and sourceforgePrivate forges and sourceforgePrivate forges and sourceforgePrivate forges and sourceforgePrivate forges and sourceforgePrivate forges and sourceforgePrivate forges and sourceforgePrivate forges and sourceforgePrivate forges and sourceforgePrivate forges and sourceforge• 5 years later a lot of projects moved to git5 years later a lot of projects moved to git5 years later a lot of projects moved to git5 years later a lot of projects moved to git5 years later a lot of projects moved to git5 years later a lot of projects moved to git5 years later a lot of projects moved to git5 years later a lot of projects moved to git5 years later a lot of projects moved to git5 years later a lot of projects moved to git5 years later a lot of projects moved to git5 years later a lot of projects moved to git5 years later a lot of projects moved to git5 years later a lot of projects moved to git5 years later a lot of projects moved to git5 years later a lot of projects moved to git5 years later a lot of projects moved to git• The Puppet community also uses a lot gitThe Puppet community also uses a lot gitThe Puppet community also uses a lot gitThe Puppet community also uses a lot gitThe Puppet community also uses a lot gitThe Puppet community also uses a lot gitThe Puppet community also uses a lot gitThe Puppet community also uses a lot gitThe Puppet community also uses a lot gitThe Puppet community also uses a lot gitThe Puppet community also uses a lot gitThe Puppet community also uses a lot gitThe Puppet community also uses a lot gitThe Puppet community also uses a lot gitThe Puppet community also uses a lot gitThe Puppet community also uses a lot gitThe Puppet community also uses a lot git• GGGGGGGGGGGGGGGGGit/Hg are the de-facto standards in OSprojects
Git is a free and open source distributed version control systemdesigned to handle everything from small to very large projects
with speed and efficiency.
Source: http://git-scm.com/
git loggit loggit loggit loggit loggit loggit loggit loggit loggit loggit loggit loggit loggit loggit loggit loggit log
• Initiated in 2005 by Linus TorvaldsInitiated in 2005 by Linus TorvaldsInitiated in 2005 by Linus TorvaldsInitiated in 2005 by Linus TorvaldsInitiated in 2005 by Linus TorvaldsInitiated in 2005 by Linus TorvaldsInitiated in 2005 by Linus TorvaldsInitiated in 2005 by Linus TorvaldsInitiated in 2005 by Linus TorvaldsInitiated in 2005 by Linus TorvaldsInitiated in 2005 by Linus TorvaldsInitiated in 2005 by Linus TorvaldsInitiated in 2005 by Linus TorvaldsInitiated in 2005 by Linus TorvaldsInitiated in 2005 by Linus TorvaldsInitiated in 2005 by Linus TorvaldsInitiated in 2005 by Linus Torvalds• Replacement of closed-source BitKeeperReplacement of closed-source BitKeeperReplacement of closed-source BitKeeperReplacement of closed-source BitKeeperReplacement of closed-source BitKeeperReplacement of closed-source BitKeeperReplacement of closed-source BitKeeperReplacement of closed-source BitKeeperReplacement of closed-source BitKeeperReplacement of closed-source BitKeeperReplacement of closed-source BitKeeperReplacement of closed-source BitKeeperReplacement of closed-source BitKeeperReplacement of closed-source BitKeeperReplacement of closed-source BitKeeperReplacement of closed-source BitKeeperReplacement of closed-source BitKeeper• Created for the Linux Kernel developmentCreated for the Linux Kernel developmentCreated for the Linux Kernel developmentCreated for the Linux Kernel developmentCreated for the Linux Kernel developmentCreated for the Linux Kernel developmentCreated for the Linux Kernel developmentCreated for the Linux Kernel developmentCreated for the Linux Kernel developmentCreated for the Linux Kernel developmentCreated for the Linux Kernel developmentCreated for the Linux Kernel developmentCreated for the Linux Kernel developmentCreated for the Linux Kernel developmentCreated for the Linux Kernel developmentCreated for the Linux Kernel developmentCreated for the Linux Kernel development• Now used by thousands of projectsNow used by thousands of projectsNow used by thousands of projectsNow used by thousands of projectsNow used by thousands of projectsNow used by thousands of projectsNow used by thousands of projectsNow used by thousands of projectsNow used by thousands of projectsNow used by thousands of projectsNow used by thousands of projectsNow used by thousands of projectsNow used by thousands of projectsNow used by thousands of projectsNow used by thousands of projectsNow used by thousands of projectsNow used by thousands of projects
git is distributedgit is distributedgit is distributedgit is distributedgit is distributedgit is distributedgit is distributedgit is distributedgit is distributedgit is distributedgit is distributedgit is distributedgit is distributedgit is distributedgit is distributedgit is distributedgit is distributed
• EEEEEEEEEEEEEEEEEverything can be done in local (exceptpull&push)
• WWWWWWWWWWWWWWWWWork with several remotes• SSSSSSSSSSSSSSSSShare code with anyone• NNNNNNNNNNNNNNNNNo unique central repository• AAAAAAAAAAAAAAAAA lot of workflows possible
A teamA teamA teamA teamA teamA teamA teamA teamA teamA teamA teamA teamA teamA teamA teamA teamA team
• OOOOOOOOOOOOOOOOOne person• 1111111111111111100 people• CCCCCCCCCCCCCCCCCoders, testers, readers?
A repo is more than codeA repo is more than codeA repo is more than codeA repo is more than codeA repo is more than codeA repo is more than codeA repo is more than codeA repo is more than codeA repo is more than codeA repo is more than codeA repo is more than codeA repo is more than codeA repo is more than codeA repo is more than codeA repo is more than codeA repo is more than codeA repo is more than code
• CCCCCCCCCCCCCCCCCode changes• CCCCCCCCCCCCCCCCCommit messages• DDDDDDDDDDDDDDDDDates• BBBBBBBBBBBBBBBBBranches• TTTTTTTTTTTTTTTTTags
The Commit MessageThe Commit MessageThe Commit MessageThe Commit MessageThe Commit MessageThe Commit MessageThe Commit MessageThe Commit MessageThe Commit MessageThe Commit MessageThe Commit MessageThe Commit MessageThe Commit MessageThe Commit MessageThe Commit MessageThe Commit MessageThe Commit Message
The commit messageThe commit messageThe commit messageThe commit messageThe commit messageThe commit messageThe commit messageThe commit messageThe commit messageThe commit messageThe commit messageThe commit messageThe commit messageThe commit messageThe commit messageThe commit messageThe commit message
• NNNNNNNNNNNNNNNNNever underestimate the commit message• WWWWWWWWWWWWWWWWWill be seen in many occasions: git logs,cherry-picks, git blame, …
• AAAAAAAAAAAAAAAAAlways available with the repository, offline
FormatFormatFormatFormatFormatFormatFormatFormatFormatFormatFormatFormatFormatFormatFormatFormatFormat
• OOOOOOOOOOOOOOOOOne short line with a ticket number• <<<<<<<<<<<<<<<<<blank line>• AAAAAAAAAAAAAAAAA more complete description, with context
RebasingRebasingRebasingRebasingRebasingRebasingRebasingRebasingRebasingRebasingRebasingRebasingRebasingRebasingRebasingRebasingRebasing
• SSSSSSSSSSSSSSSSStep 1: you pull• SSSSSSSSSSSSSSSSStep 2: you commit• SSSSSSSSSSSSSSSSStep 3: colleague push• SSSSSSSSSSSSSSSSStep 4: you pull• SSSSSSSSSSSSSSSSStep 5: you push
Before:
d705683 dce1845 7d9d95d 6cea694
dd590b4
ccb3389
85c05ba
ccb3389
After:d705683 dce1845 7d9d95d dd590b4 6fb1d1a
rebasingrebasingrebasingrebasingrebasingrebasingrebasingrebasingrebasingrebasingrebasingrebasingrebasingrebasingrebasingrebasingrebasing
• CCCCCCCCCCCCCCCCCleaner project history• LLLLLLLLLLLLLLLLLess commits• """""""""""""""""Single-line" commit history• gggggggggggggggggit pull --rebase
SquashingSquashingSquashingSquashingSquashingSquashingSquashingSquashingSquashingSquashingSquashingSquashingSquashingSquashingSquashingSquashingSquashing
Daily workDaily workDaily workDaily workDaily workDaily workDaily workDaily workDaily workDaily workDaily workDaily workDaily workDaily workDaily workDaily workDaily work
• SSSSSSSSSSSSSSSSStep 1: code on your branch• SSSSSSSSSSSSSSSSStep 2: commit• SSSSSSSSSSSSSSSSStep 3: code again• SSSSSSSSSSSSSSSSStep 4: commit• SSSSSSSSSSSSSSSSStep 5: GOTO Step 1
What do we have?What do we have?What do we have?What do we have?What do we have?What do we have?What do we have?What do we have?What do we have?What do we have?What do we have?What do we have?What do we have?What do we have?What do we have?What do we have?What do we have?
A nice step-by-step list of changesA nice step-by-step list of changesA nice step-by-step list of changesA nice step-by-step list of changesA nice step-by-step list of changesA nice step-by-step list of changesA nice step-by-step list of changesA nice step-by-step list of changesA nice step-by-step list of changesA nice step-by-step list of changesA nice step-by-step list of changesA nice step-by-step list of changesA nice step-by-step list of changesA nice step-by-step list of changesA nice step-by-step list of changesA nice step-by-step list of changesA nice step-by-step list of changes
A big messNo one would merge that
Before:4dd6437 8ac0fed 3092c78 f55d65e a4c8b39 2ac72a4 48e6f6f 42b3af2 b7d0830 c0cf800 7df0c0a cfe76f4
After:4dd6437 8ac0fed 3092c78 4fcbe28
git rebase -igit rebase -igit rebase -igit rebase -igit rebase -igit rebase -igit rebase -igit rebase -igit rebase -igit rebase -igit rebase -igit rebase -igit rebase -igit rebase -igit rebase -igit rebase -igit rebase -i
• CCCCCCCCCCCCCCCCChanges the git history• sssssssssssssssssquash, delete, change, reorder commits• gggggggggggggggggit hashes are unique, any change changethem
The bro codeThe bro codeThe bro codeThe bro codeThe bro codeThe bro codeThe bro codeThe bro codeThe bro codeThe bro codeThe bro codeThe bro codeThe bro codeThe bro codeThe bro codeThe bro codeThe bro code
Never change commits thatNever change commits thatNever change commits thatNever change commits thatNever change commits thatNever change commits thatNever change commits thatNever change commits thatNever change commits thatNever change commits thatNever change commits thatNever change commits thatNever change commits thatNever change commits thatNever change commits thatNever change commits thatNever change commits thatare already pushedare already pushedare already pushedare already pushedare already pushedare already pushedare already pushedare already pushedare already pushedare already pushedare already pushedare already pushedare already pushedare already pushedare already pushedare already pushedare already pushed
Merge –squashMerge –squashMerge –squashMerge –squashMerge –squashMerge –squashMerge –squashMerge –squashMerge –squashMerge –squashMerge –squashMerge –squashMerge –squashMerge –squashMerge –squashMerge –squashMerge –squash
git merge --squashgit merge --squashgit merge --squashgit merge --squashgit merge --squashgit merge --squashgit merge --squashgit merge --squashgit merge --squashgit merge --squashgit merge --squashgit merge --squashgit merge --squashgit merge --squashgit merge --squashgit merge --squashgit merge --squash
• TTTTTTTTTTTTTTTTThe merge is done but without commits• IIIIIIIIIIIIIIIIIt allows you to commit all in once• EEEEEEEEEEEEEEEEEasily squash a temp branch in a commit
git commit --amendgit commit --amendgit commit --amendgit commit --amendgit commit --amendgit commit --amendgit commit --amendgit commit --amendgit commit --amendgit commit --amendgit commit --amendgit commit --amendgit commit --amendgit commit --amendgit commit --amendgit commit --amendgit commit --amend
• CCCCCCCCCCCCCCCCChange the last commit• AAAAAAAAAAAAAAAAAdd files, change commit message• DDDDDDDDDDDDDDDDDo it before pushing!
Use SSH socketsUse SSH socketsUse SSH socketsUse SSH socketsUse SSH socketsUse SSH socketsUse SSH socketsUse SSH socketsUse SSH socketsUse SSH socketsUse SSH socketsUse SSH socketsUse SSH socketsUse SSH socketsUse SSH socketsUse SSH socketsUse SSH sockets
$ cat .ssh/configHost githost
controlmaster autocontrolpath /tmp/ssh-%r@%h:%pControlPersist 300
• UUUUUUUUUUUUUUUUUse only one SSH connection• DDDDDDDDDDDDDDDDDo not disconnect SSH
Find the tag of a commitFind the tag of a commitFind the tag of a commitFind the tag of a commitFind the tag of a commitFind the tag of a commitFind the tag of a commitFind the tag of a commitFind the tag of a commitFind the tag of a commitFind the tag of a commitFind the tag of a commitFind the tag of a commitFind the tag of a commitFind the tag of a commitFind the tag of a commitFind the tag of a commit
$ git name-rev --name-only 106cb38dd0bc5ea2d2d0adef0b4006bd61884e42remotes/origin/8.5.2~1
git autocorrectgit autocorrectgit autocorrectgit autocorrectgit autocorrectgit autocorrectgit autocorrectgit autocorrectgit autocorrectgit autocorrectgit autocorrectgit autocorrectgit autocorrectgit autocorrectgit autocorrectgit autocorrectgit autocorrect
$ git config help.autocorrect 10$ git puskWARNING: You called a Git command named 'pusk', which does not exist.Continuing under the assumption that you meant 'push'in 1.0 seconds automatically...
GPG-Sign your commitsGPG-Sign your commitsGPG-Sign your commitsGPG-Sign your commitsGPG-Sign your commitsGPG-Sign your commitsGPG-Sign your commitsGPG-Sign your commitsGPG-Sign your commitsGPG-Sign your commitsGPG-Sign your commitsGPG-Sign your commitsGPG-Sign your commitsGPG-Sign your commitsGPG-Sign your commitsGPG-Sign your commitsGPG-Sign your commits
• gggggggggggggggggit commit -S• SSSSSSSSSSSSSSSSSign PR, merge commits• DDDDDDDDDDDDDDDDDo not sign every commit (then it becomesuseless)
HomeworkHomeworkHomeworkHomeworkHomeworkHomeworkHomeworkHomeworkHomeworkHomeworkHomeworkHomeworkHomeworkHomeworkHomeworkHomeworkHomework
• gggggggggggggggggit reflog• gggggggggggggggggit aliases• gggggggggggggggggit bisect• gggggggggggggggggit blame• FFFFFFFFFFFFFFFFFETCH_HEAD
ConclusionConclusionConclusionConclusionConclusionConclusionConclusionConclusionConclusionConclusionConclusionConclusionConclusionConclusionConclusionConclusionConclusion
conclusionconclusionconclusionconclusionconclusionconclusionconclusionconclusionconclusionconclusionconclusionconclusionconclusionconclusionconclusionconclusionconclusion
• GGGGGGGGGGGGGGGGGit is powerful• AAAAAAAAAAAAAAAAAny commit can be changed• YYYYYYYYYYYYYYYYYou can do anything• AAAAAAAAAAAAAAAAA commit = A logical change• AAAAAAAAAAAAAAAAA clean history brings you easiestblame/bisect
• RRRRRRRRRRRRRRRRRemember that git is decentralized
Thank youThank youThank youThank youThank youThank youThank youThank youThank youThank youThank youThank youThank youThank youThank youThank youThank you
Any question?Any question?Any question?Any question?Any question?Any question?Any question?Any question?Any question?Any question?Any question?Any question?Any question?Any question?Any question?Any question?Any question?Git workshop by @teranex 2.30pm in room2Git workshop by @teranex 2.30pm in room2Git workshop by @teranex 2.30pm in room2Git workshop by @teranex 2.30pm in room2Git workshop by @teranex 2.30pm in room2Git workshop by @teranex 2.30pm in room2Git workshop by @teranex 2.30pm in room2Git workshop by @teranex 2.30pm in room2Git workshop by @teranex 2.30pm in room2Git workshop by @teranex 2.30pm in room2Git workshop by @teranex 2.30pm in room2Git workshop by @teranex 2.30pm in room2Git workshop by @teranex 2.30pm in room2Git workshop by @teranex 2.30pm in room2Git workshop by @teranex 2.30pm in room2Git workshop by @teranex 2.30pm in room2Git workshop by @teranex 2.30pm in room2
ContactContactContactContactContactContactContactContactContactContactContactContactContactContactContactContactContact
Julien PivottoJulien PivottoJulien PivottoJulien PivottoJulien PivottoJulien PivottoJulien PivottoJulien PivottoJulien PivottoJulien PivottoJulien PivottoJulien PivottoJulien PivottoJulien PivottoJulien PivottoJulien PivottoJulien [email protected]@[email protected]@[email protected]@[email protected]@[email protected]@[email protected]@[email protected]@[email protected]@[email protected]@roidelapluie@roidelapluie@roidelapluie@roidelapluie@roidelapluie@roidelapluie@roidelapluie@roidelapluie@roidelapluie@roidelapluie@roidelapluie@roidelapluie@roidelapluie@roidelapluie@roidelapluie@roidelapluie@roidelapluie
inuitsinuitsinuitsinuitsinuitsinuitsinuitsinuitsinuitsinuitsinuitsinuitsinuitsinuitsinuitsinuitsinuitshttps://inuits.euhttps://inuits.euhttps://inuits.euhttps://inuits.euhttps://inuits.euhttps://inuits.euhttps://inuits.euhttps://inuits.euhttps://inuits.euhttps://inuits.euhttps://inuits.euhttps://inuits.euhttps://inuits.euhttps://inuits.euhttps://inuits.euhttps://inuits.euhttps://inuits.eu
[email protected]@[email protected]@[email protected]@[email protected]@[email protected]@[email protected]@[email protected]@[email protected]@[email protected]+32 473 441 636+32 473 441 636+32 473 441 636+32 473 441 636+32 473 441 636+32 473 441 636+32 473 441 636+32 473 441 636+32 473 441 636+32 473 441 636+32 473 441 636+32 473 441 636+32 473 441 636+32 473 441 636+32 473 441 636+32 473 441 636+32 473 441 636