Upgrade to Pro
— share decks privately, control downloads, hide ads and more …
Speaker Deck
Features
Speaker Deck
PRO
Sign in
Sign up for free
Search
Search
Migration d'une base de code subversion vers git
Search
ubermuda
November 09, 2011
Technology
0
83
Migration d'une base de code subversion vers git
ubermuda
November 09, 2011
Tweet
Share
More Decks by ubermuda
See All by ubermuda
La théorie des graphes appliquée à Git
ubermuda
0
370
Comment Docker révolutionne le web
ubermuda
3
670
Vers des applications twelve-factor
ubermuda
2
980
Git et la théorie des graph
ubermuda
3
960
Introduction à Docker
ubermuda
6
970
Meetup Docker 101
ubermuda
1
200
A multi-container Symfony2 setup with Docker
ubermuda
40
12k
Docker Introduction
ubermuda
5
420
Symfony 2, un framework robuste et moderne
ubermuda
5
170
Other Decks in Technology
See All in Technology
マルチプロダクトな開発組織で 「開発生産性」に向き合うために試みたこと / Improving Multi-Product Dev Productivity
sugamasao
1
300
AWS Lambda のトラブルシュートをしていて思うこと
kazzpapa3
2
170
Taming you application's environments
salaboy
0
180
信頼性に挑む中で拡張できる・得られる1人のスキルセットとは?
ken5scal
2
530
強いチームと開発生産性
onk
PRO
33
11k
OCI 運用監視サービス 概要
oracle4engineer
PRO
0
4.8k
マルチモーダル / AI Agent / LLMOps 3つの技術トレンドで理解するLLMの今後の展望
hirosatogamo
37
12k
The Rise of LLMOps
asei
5
1.2k
サイバーセキュリティと認知バイアス:対策の隙を埋める心理学的アプローチ
shumei_ito
0
380
障害対応指揮の意思決定と情報共有における価値観 / Waroom Meetup #2
arthur1
5
470
rootlessコンテナのすゝめ - 研究室サーバーでもできる安全なコンテナ管理
kitsuya0828
3
380
リンクアンドモチベーション ソフトウェアエンジニア向け紹介資料 / Introduction to Link and Motivation for Software Engineers
lmi
4
300k
Featured
See All Featured
GitHub's CSS Performance
jonrohan
1030
460k
Raft: Consensus for Rubyists
vanstee
136
6.6k
Distributed Sagas: A Protocol for Coordinating Microservices
caitiem20
329
21k
Optimizing for Happiness
mojombo
376
70k
The Invisible Side of Design
smashingmag
298
50k
Building Applications with DynamoDB
mza
90
6.1k
Keith and Marios Guide to Fast Websites
keithpitt
409
22k
A designer walks into a library…
pauljervisheath
203
24k
Typedesign – Prime Four
hannesfritz
40
2.4k
Testing 201, or: Great Expectations
jmmastey
38
7.1k
Learning to Love Humans: Emotional Interface Design
aarron
273
40k
Refactoring Trust on Your Teams (GOTO; Chicago 2020)
rmw
31
2.7k
Transcript
{ Migration d'une base de code subversion vers git Geoffrey
Bachelet – PMSIpilot Forum PHP 2010
{ PMSIpilot "Le groupe PMSIpilot conçoit, édite et distribue des
logiciels étudiés spécialement pour les établissements de santé."
{ PMSIpilot • 8 logiciels interdépendants • 15 développeurs •
250 000+ lignes de code • 6.5G de dépôt subversion • 24 000+ révisions • Fichiers binaires
{ Pourquoi ? • Flexibilité des branches • Gestion d'un
gros projet • Facilités de backport • Fonctionnalités « bonus »
{ Flexibilité des branches • Coût de création d'une branche
très faible • Branches locales • « feature branches »
{ Gestion d'un gros projet • Gère les sources du
noyau Linux • 17 000+ révisions • Quelques surprises quand même • Fichiers binaires volumineux
{ Facilité des backports • Une branche par version •
« git cherry-pick » • « git rebase [--interactive] »
{ Bonus • « git stash » • « git
add --interactive » • « git rebase --interactive » • « git commit --amend » • Commit en mode déconnecté
{ Migration du dépôt git-svn
{ Problèmes avec git-svn • C'est long (7h d'import) •
Gère mal les tags
{ Solutions ! • Importer un dépôt local (file:///path/to/svn) •
Convertir les « branches tags » en vrais tags • http://gitready.com/advanced/2009/02/16/convert-git-svn • http://blue-dwarf.de/wp/2008/08/30/converting-git-svn-ta • http://progit.org/book/ch8-2.html • …
{ Ne pas oublier ! git svn init --stdlayout
{ Hébergement du serveur Par un tiers ou en interne
?
{ Tiers • Pas de serveur à gérer • Services
autour du dépôt • Large choix • https://git.wiki.kernel.org/index.php/GitHosting • http://stackoverflow.com/questions/109440/best-git-repo
{ Interne • Contrôle des données • Flexibilité • Interfaçage
avec l'existant
{ Gitosis • Authentification des développeurs par clés RSA •
Gestion des droits par utilisateur et par dépôt • Lecture seulement • Lecture / écriture
{ Problème rencontré Fichiers binaires volumineux
{Fichiers binaires volumineux • Consommation mémoire lors du « repack
» • Problème connu • http://www.google.com/search?q=git+fatal+out+memory • 223 000 résultats
{ Solution ? • Avoir une version de git à
jour • « git repack -adf » • Echoue sur notre serveur (4Go de RAM, 32bits)
{ Solution ! git help repack --window --window-memory --max-pack-size
{ git filter-branch Réécrire l'histoire
{ Réécrire l'histoire git filter-branch --index-filter 'git rm bigfile' --
--all
{ Réécrire l'histoire git filter-branch –index-filter 'git rm bigfile' --
--all
{ Réécrire l'histoire • http://progit.org/book/ch9-7.html • git help filter-branch •
Beaucoup d'outils dans git • git count-objects • git rev-list • git verify-pack • etc
{ Réécrire l'histoire N'en faites pas trop quand même.
{ Les grafts Réécrire l'histoire
{ Les grafts Deux dépôts, zéro commits communs.
{ Les grafts
{ Les grafts
{ Les grafts
{ Les grafts
{ Les grafts « .git/info/grafts »
{ <commit SHA1> <parent SHA1> Les grafts
{ Les grafts dc5b6cfa
{ Les grafts 746f0b6b
{ Les grafts <commit> <parent> dc5b6cfa 746f0b6b
{ Les grafts
{ Les grafts git help filter-branch NOTE: This command honors
.git/info/grafts. If you have any grafts defined, running this command will make them permanent.
{ Les grafts « git filter-branch -- dc5b6cfa..unrelated-master »
{ Les grafts
{ Les grafts git reset –hard unrelated-master
{ Les grafts
{ BLACK MAGIC VOODOO
{ Les développeurs
{ Les développeurs • Nouveau workflow • Similaire à l'ancien
pour commencer • Nouveaux logiciels • git, gitk, gitx • Redmine • PHPStorm
{ Les développeurs • Formation interne • Réunions techniques •
Référents internes • Auto-formation
{ Auto-formation • http://progit.org/ • http://git-scm.com/documentation • http://help.github.com/ • http://gitref.org/
• etc.
{ Problème rencontré Beaucoup de nouveaux concepts
{ Nouveaux concepts • Fonctionnement en mode distribué • Confusion
entre « remote » et « branche » • Confusion entre « commit » et « push » • Confusion sur le « pull » et le « merge » • Vocabulaire différent • « revert » vs « checkout » / « reset »
{ Nouveaux concepts Oubliez tout ce que vous croyez savoir.
{ Vraiment.
{ Questions ?
{ C'est fini ! • Merci à l'AFUP • Merci
à PMSIpilot (on recrute !) • Merci à vous !