git multi repos
TRANSCRIPT
![Page 1: Git multi repos](https://reader035.vdocuments.us/reader035/viewer/2022062502/58a4db0e1a28ab34318b5c15/html5/thumbnails/1.jpg)
Version Control SystemGit Multi Repos
JULIEN PLÉE – DEPUTY CTOAURÉLIE VALÉRY – R&D MANAGERRACHID AGOUDAR – CHIEF SOFTWARE ARCHITECTEMMANUEL GUÉRIN – SOFTWARE ARCHITECT
![Page 2: Git multi repos](https://reader035.vdocuments.us/reader035/viewer/2022062502/58a4db0e1a28ab34318b5c15/html5/thumbnails/2.jpg)
Git Multi-repository Goals :
◦ allow each team to work in its own Git environment◦ Guarantee stability of some chosen branches using CI to realize the merge operations
How : ◦ by using the Multi-repository pattern, giving each team its own repository and all teams sharing a
master repository
![Page 3: Git multi repos](https://reader035.vdocuments.us/reader035/viewer/2022062502/58a4db0e1a28ab34318b5c15/html5/thumbnails/3.jpg)
Git Multi ReposFEATURE DEVELOPMENT
![Page 4: Git multi repos](https://reader035.vdocuments.us/reader035/viewer/2022062502/58a4db0e1a28ab34318b5c15/html5/thumbnails/4.jpg)
Teammate Repository
arc_Sprint
Environment
Bitbucket Servers
Bitbucket Servers
Workstation
0 – Initial status
RootRepository
Sprint-stable
Dev-stable
Qualif-stable
Sprint
Dev
Qualif
career-arcRepository
career-funRepository
arc_Sprint-stable fun_Sprint-stablearc_Sprint fun_Sprint
Repositories
![Page 5: Git multi repos](https://reader035.vdocuments.us/reader035/viewer/2022062502/58a4db0e1a28ab34318b5c15/html5/thumbnails/5.jpg)
RootRepository
Sprint-stable
Dev-stable
Qualif-stable
Sprint
Dev
Qualif
career-arcRepository
career-funRepository
arc_Sprint-stable fun_Sprint-stablearc_Sprint fun_Sprint
Teammate Repository
arc_Sprint
Environment
Bitbucket Servers
Bitbucket Servers
Workstation
1 – Teammate checkouts a new branch “123” from “arc/arc_Sprint-stable” or “arc/arc_Sprint” and develops a task
Repositories
123
![Page 6: Git multi repos](https://reader035.vdocuments.us/reader035/viewer/2022062502/58a4db0e1a28ab34318b5c15/html5/thumbnails/6.jpg)
TeammateRepository
arc_Sprint
Environment
Bitbucket Servers
Bitbucket Servers
Workstation
0 – The Teammate commits, and pushes branch “123” to “arc/123”. All team “arc” can now work on it
RootRepository
Sprint-stable
Dev-stable
Qualif-stable
Sprint
Dev
Qualif
career-arcRepository
career-funRepository
arc_Sprint-stable fun_Sprint-stablearc_Sprint fun_Sprint
Repositories
123
123
![Page 7: Git multi repos](https://reader035.vdocuments.us/reader035/viewer/2022062502/58a4db0e1a28ab34318b5c15/html5/thumbnails/7.jpg)
TeammateRepository
arc_Sprint
Environment
Bitbucket Servers
Bitbucket Servers
Workstation
0 – In the same time, “Root/Sprint” received some new commit from “career-fun” repository
RootRepository
Sprint-stable
Dev-stable
Qualif-stable
Sprint
Dev
Qualif
career-arcRepository
career-funRepository
arc_Sprint-stable fun_Sprint-stablearc_Sprint fun_Sprint
Repositories
123
123
![Page 8: Git multi repos](https://reader035.vdocuments.us/reader035/viewer/2022062502/58a4db0e1a28ab34318b5c15/html5/thumbnails/8.jpg)
TeammateRepository
arc_Sprint
Environment
Bitbucket Servers
Bitbucket Servers
Workstation
0 – Jenkins validates the commit and merges it in the branch “Root/Sprint-stable”. Team “fun” fixes potential errors
RootRepository
Sprint-stable
Dev-stable
Qualif-stable
Sprint
Dev
Qualif
career-arcRepository
career-funRepository
TA_Sprint-stable fun_Sprint-stablearc_Sprint fun_Sprint
Repositories
123
123
![Page 9: Git multi repos](https://reader035.vdocuments.us/reader035/viewer/2022062502/58a4db0e1a28ab34318b5c15/html5/thumbnails/9.jpg)
Teammate Repository
arc_Sprint
Environment
Bitbucket Servers
Bitbucket Servers
Workstation
0 – Teammate pulls “Root/Sprint-stable” into their team branch “arc_Sprint”
RootRepository
Sprint-stable
Dev-stable
Qualif-stable
Sprint
Dev
Qualif
career-arcRepository
career-funRepository
arc_Sprint-stable fun_Sprint-stablearc_Sprint fun_Sprint
Repositories
123
123
![Page 10: Git multi repos](https://reader035.vdocuments.us/reader035/viewer/2022062502/58a4db0e1a28ab34318b5c15/html5/thumbnails/10.jpg)
Teammate Repository
arc_Sprint
Environment
Bitbucket Servers
Bitbucket Servers
Workstation
0 – Teammate pushes “arc_Sprint” into “arc/arc_Sprint”
RootRepository
Sprint-stable
Dev-stable
Qualif-stable
Sprint
Dev
Qualif
career-arcRepository
career-funRepository
arc_Sprint-stable fun_Sprint-stablearc_Sprint fun_Sprint
Repositories
123
123
![Page 11: Git multi repos](https://reader035.vdocuments.us/reader035/viewer/2022062502/58a4db0e1a28ab34318b5c15/html5/thumbnails/11.jpg)
TeammateRepository
arc_Sprint
Environment
Bitbucket Servers
Bitbucket Servers
Workstation
0 – Jenkins validates and merges “arc/arc_Sprint” in “arc/arc_Sprint-stable”. Team “arc” fixes potential errors
RootRepository
Sprint-stable
Dev-stable
Qualif-stable
Sprint
Dev
Qualif
career-arcRepository
career-funRepository
arc_Sprint-stable fun_Sprint-stablearc_Sprint fun_Sprint
Repositories
123
123
A Teammate could always use “arc/arc_Sprint-stable”if he wants to be sure to start from a stable commit
![Page 12: Git multi repos](https://reader035.vdocuments.us/reader035/viewer/2022062502/58a4db0e1a28ab34318b5c15/html5/thumbnails/12.jpg)
Teammate Repository
arc_Sprint
Environment
Bitbucket Servers
Bitbucket Servers
Workstation
0 – Teammate merges “arc/123” into “arc_Sprint”
RootRepository
Sprint-stable
Dev-stable
Qualif-stable
Sprint
Dev
Qualif
career-arcRepository
career-funRepository
arc_Sprint-stable fun_Sprint-stablearc_Sprint fun_Sprint
Repositories
123
123
![Page 13: Git multi repos](https://reader035.vdocuments.us/reader035/viewer/2022062502/58a4db0e1a28ab34318b5c15/html5/thumbnails/13.jpg)
Teammate Repository
arc_Sprint
Environment
Bitbucket Servers
Bitbucket Servers
Workstation
0 – Teammate pushes “arc_Sprint” into “arc/arc_Sprint” and Jenkins validates it. Team “arc” fixes potential errors
RootRepository
Sprint-stable
Dev-stable
Qualif-stable
Sprint
Dev
Qualif
career-arcRepository
career-funRepository
arc_Sprint-stable fun_Sprint-stablearc_Sprint fun_Sprint
Repositories
123
123
![Page 14: Git multi repos](https://reader035.vdocuments.us/reader035/viewer/2022062502/58a4db0e1a28ab34318b5c15/html5/thumbnails/14.jpg)
Teammate Repository
arc_Sprint
Environment
Bitbucket Servers
Bitbucket Servers
Workstation
0 – Teammate pulls “arc/arc_Sprint-stable” into “arc_Sprint” and pushes it on “Root/Sprint”
RootRepository
Sprint-stable
Dev-stable
Qualif-stable
Sprint
Dev
Qualif
career-arcRepository
career-funRepository
arc_Sprint-stable fun_Sprint-stablearc_Sprint fun_Sprint
Repositories
Note : It will sometimes be needed toMerge “Root/Sprint” into “arc_Sprint” as other teams could have already push something in itSo there is no warranty that “arc_Sprint” is stable and the team could be fixing it after
![Page 15: Git multi repos](https://reader035.vdocuments.us/reader035/viewer/2022062502/58a4db0e1a28ab34318b5c15/html5/thumbnails/15.jpg)
Git Multi ReposHOTFIX DEVELOPMENT
![Page 16: Git multi repos](https://reader035.vdocuments.us/reader035/viewer/2022062502/58a4db0e1a28ab34318b5c15/html5/thumbnails/16.jpg)
Teammate Repository
arc_Sprint
Environment
Bitbucket Servers
Bitbucket Servers
Workstation
0 – Initial status
RootRepository
Sprint-stable
Dev-stable
Qualif-stable
Sprint
Dev
Qualif
career-arcRepository
career-funRepository
arc_Sprint-stable fun_Sprint-stablearc_Sprint fun_Sprint
Repositories
![Page 17: Git multi repos](https://reader035.vdocuments.us/reader035/viewer/2022062502/58a4db0e1a28ab34318b5c15/html5/thumbnails/17.jpg)
RootRepository
Sprint-stable
Dev-stable
Qualif-stable
Sprint
Dev
Qualif
career-arcRepository
career-funRepository
arc_Sprint-stable fun_Sprint-stablearc_Sprint fun_Sprint
Teammate Repository
arc_Sprint
Environment
Bitbucket Servers
Workstation
1 – Teammate checkouts a new branch “123” from “root/qualif-stable” and fixes the bug
Repositories
Bug-fix
Bitbucket Servers
![Page 18: Git multi repos](https://reader035.vdocuments.us/reader035/viewer/2022062502/58a4db0e1a28ab34318b5c15/html5/thumbnails/18.jpg)
Teammate Repository
arc_Sprint
Environment
Bitbucket Servers
Bitbucket Servers
Workstation
0 – Teammate merges branch “bug-fix” into “Root/Qualif”
RootRepository
Sprint-stable
Dev-stable
Qualif-stable
Sprint
Dev
Qualif
career-arcRepository
career-funRepository
arc_Sprint-stable fun_Sprint-stablearc_Sprint fun_Sprint
Repositories
Bug-fix
![Page 19: Git multi repos](https://reader035.vdocuments.us/reader035/viewer/2022062502/58a4db0e1a28ab34318b5c15/html5/thumbnails/19.jpg)
TeammateRepository
arc_Sprint
Environment
Bitbucket Servers
Bitbucket Servers
Workstation
0 – Jenkins validates the commit and merges it in the branch “Root/Sprint-stable”. Team “fun” fixes potential errors
RootRepository
Sprint-stable
Dev-stable
Qualif-stable
Sprint
Dev
Qualif
career-arcRepository
career-funRepository
TA_Sprint-stable fun_Sprint-stablearc_Sprint fun_Sprint
Repositories
Bug-fix
123
![Page 20: Git multi repos](https://reader035.vdocuments.us/reader035/viewer/2022062502/58a4db0e1a28ab34318b5c15/html5/thumbnails/20.jpg)
TeammateRepository
arc_Sprint
Environment
Bitbucket Servers
Bitbucket Servers
Workstation
0 – Teammate can now realize a new release with the up-to-date “Root/Qualif-stable” branch
RootRepository
Sprint-stable
Dev-stable
Qualif-stable
Sprint
Dev
Qualif
career-arcRepository
career-funRepository
TA_Sprint-stable fun_Sprint-stablearc_Sprint fun_Sprint
Repositories
Bug-fix
123
![Page 21: Git multi repos](https://reader035.vdocuments.us/reader035/viewer/2022062502/58a4db0e1a28ab34318b5c15/html5/thumbnails/21.jpg)
TeammateRepository
arc_Sprint
Environment
Bitbucket Servers
Bitbucket Servers
Workstation
0 – Teammate merges “Root/Qualif-stable” into “Root/Dev” and “Root/Sprint” (not displayed) and Jenkins validates dev
RootRepository
Sprint-stable
Dev-stable
Qualif-stable
Sprint
Dev
Qualif
career-arcRepository
career-funRepository
TA_Sprint-stable fun_Sprint-stablearc_Sprint fun_Sprint
Repositories
Bug-fix
123