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
Sponsored
·
SiteGround - Reliable hosting with speed, security, and support you can count on.
→
ubermuda
November 09, 2011
Technology
0
120
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
410
Comment Docker révolutionne le web
ubermuda
3
700
Vers des applications twelve-factor
ubermuda
2
1.1k
Git et la théorie des graph
ubermuda
3
1.1k
Introduction à Docker
ubermuda
6
1.1k
Meetup Docker 101
ubermuda
1
220
A multi-container Symfony2 setup with Docker
ubermuda
40
12k
Docker Introduction
ubermuda
5
510
Symfony 2, un framework robuste et moderne
ubermuda
5
200
Other Decks in Technology
See All in Technology
仕様書駆動AI開発の実践: Issue→Skill→PRテンプレで 再現性を作る
knishioka
2
640
マーケットプレイス版Oracle WebCenter Content For OCI
oracle4engineer
PRO
5
1.6k
コスト削減から「セキュリティと利便性」を担うプラットフォームへ
sansantech
PRO
3
1.4k
15 years with Rails and DDD (AI Edition)
andrzejkrzywda
0
190
AI駆動PjMの理想像 と現在地 -実践例を添えて-
masahiro_okamura
1
110
Introduction to Sansan for Engineers / エンジニア向け会社紹介
sansan33
PRO
6
68k
Bill One 開発エンジニア 紹介資料
sansan33
PRO
4
17k
Context Engineeringが企業で不可欠になる理由
hirosatogamo
PRO
3
560
What happened to RubyGems and what can we learn?
mikemcquaid
0
280
SREのプラクティスを用いた3領域同時 マネジメントへの挑戦 〜SRE・情シス・セキュリティを統合した チーム運営術〜
coconala_engineer
2
640
今日から始めるAmazon Bedrock AgentCore
har1101
4
400
2026年、サーバーレスの現在地 -「制約と戦う技術」から「当たり前の実行基盤」へ- /serverless2026
slsops
2
240
Featured
See All Featured
Designing Experiences People Love
moore
144
24k
Fashionably flexible responsive web design (full day workshop)
malarkey
408
66k
Producing Creativity
orderedlist
PRO
348
40k
Building a A Zero-Code AI SEO Workflow
portentint
PRO
0
310
世界の人気アプリ100個を分析して見えたペイウォール設計の心得
akihiro_kokubo
PRO
66
36k
A designer walks into a library…
pauljervisheath
210
24k
Typedesign – Prime Four
hannesfritz
42
2.9k
The Mindset for Success: Future Career Progression
greggifford
PRO
0
240
Agile Leadership in an Agile Organization
kimpetersen
PRO
0
80
Max Prin - Stacking Signals: How International SEO Comes Together (And Falls Apart)
techseoconnect
PRO
0
84
Practical Tips for Bootstrapping Information Extraction Pipelines
honnibal
25
1.7k
Become a Pro
speakerdeck
PRO
31
5.8k
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 !