$30 off During Our Annual Pro Sale. View Details »
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
110
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
400
Comment Docker révolutionne le web
ubermuda
3
690
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
490
Symfony 2, un framework robuste et moderne
ubermuda
5
200
Other Decks in Technology
See All in Technology
Haskell を武器にして挑む競技プログラミング ─ 操作的思考から意味モデル思考へ
naoya
7
1.6k
OCI Oracle Database Services新機能アップデート(2025/09-2025/11)
oracle4engineer
PRO
1
210
2025-12-18_AI駆動開発推進プロジェクト運営について / AIDD-Promotion project management
yayoi_dd
0
110
ActiveJobUpdates
igaiga
1
140
MySQLとPostgreSQLのコレーション / Collation of MySQL and PostgreSQL
tmtms
1
880
子育てで想像してなかった「見えないダメージ」 / Unforeseen "hidden burdens" of raising children.
pauli
2
290
Fashion×AI「似合う」を届けるためのWEARのAI戦略
zozotech
PRO
2
860
会社紹介資料 / Sansan Company Profile
sansan33
PRO
11
390k
AI駆動開発における設計思想 認知負荷を下げるフロントエンドアーキテクチャ/ 20251211 Teppei Hanai
shift_evolve
PRO
2
420
[デモです] NotebookLM で作ったスライドの例
kongmingstrap
0
160
生成AI時代におけるグローバル戦略思考
taka_aki
0
200
Lookerで実現するセキュアな外部データ提供
zozotech
PRO
0
170
Featured
See All Featured
Tips & Tricks on How to Get Your First Job In Tech
honzajavorek
0
390
個人開発の失敗を避けるイケてる考え方 / tips for indie hackers
panda_program
122
21k
The Psychology of Web Performance [Beyond Tellerrand 2023]
tammyeverts
49
3.2k
The Language of Interfaces
destraynor
162
25k
Keith and Marios Guide to Fast Websites
keithpitt
413
23k
Facilitating Awesome Meetings
lara
57
6.7k
Bootstrapping a Software Product
garrettdimon
PRO
307
120k
Claude Code のすすめ
schroneko
65
200k
It's Worth the Effort
3n
187
29k
Stewardship and Sustainability of Urban and Community Forests
pwiseman
0
67
BBQ
matthewcrist
89
9.9k
Principles of Awesome APIs and How to Build Them.
keavy
127
17k
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 !