URL: https://linuxfr.org/users/crev/journaux/des-migrations-de-syst%C3%A8mes-de-sources Title: des migrations de systèmes de sources Authors: CrEv Date: 2009年08月14日T00:32:20+02:00 Tags: linus_torvalds Score: 6 plop journal ! Aujourd'hui, je viens te parler d'un sujet ... intéressant je trouve, même si certains aspects on déjà pu être traités en partie ici (et je sais que c'est un sujet qui intéresse du monde) Jusqu'à présent, dans la boite où je suis (et dans mes projets perso ou non) les codes écrits sont toujours placés dans un repository subversion. D'ailleurs, ça n'a pas coupé au repository multi projet, mal (pas) géré, grossissant, etc Désormais, et suite à des changements (améliorations) de méthodes de dev, et aussi par apprentissage de techniques diverses, je regarde pour migrer vers des systèmes plus évolués, non initialement orientés décentralisation mais surtout orienté gestion de merge, branches, etc. J'ai donc commencé à regarder [git](http://git-scm.com/), [bazaar](http://bazaar-vcs.org/) et [mercurial](http://mercurial.selenic.com/wiki/) Git est très intéressant je trouve, j'aime beaucoup la gestion des branches, l'interface utilisateur mais a été éliminé à cause du support windows et eclipse (nécessaire dans ma boite) Dommage... Je me suis ensuite tourné vers Mercurial mais j'ai été déçu. Le support eclipse n'est pas terrible, et les fonctionnalités de base m'ont parues moins sympa. La gestion des fichiers (renomage, ajout, etc) est moins bien faite, plus proche de subversion je trouve. J'avais éliminé précédemment bazaar pour je ne sais plus quelle raison, mais je me suis repanché dessus récemment. Tout d'abord les points intéressants : Les fonctionnalités de base ont l'air bien faites, gestion des fichiers, interface avec l'utilisateur. c'est un peu moins bien que git je trouve, mais ça roule. L'un des points qui m'a vraiment plus est qu'en fait il est assez maléable au niveau de la gestion des working copies, des branches, etc ([Shared repository](http://bazaar-vcs.org/SharedRepositoryTutorial)) Il est aussi très maléable quant aux [workflows](http://bazaar-vcs.org/Workflows) utilisables Le support eclipse / windows a aussi l'air pas mal, résultat c'est assez bien parti L'un des problèmes que j'ai provient du fait que justement il est malléable. Résultat, pour mettre en place un système utilisable, c'est pas évident tellement les solutions sont nombreuses. Qu'utilisez vous en général ? Système alasvn ? (un dossier par branche) Système alagit ? (un dossier central dans lequel on switch de branche) Un autre système ? Mais maintenant que je pense faire mon choix, le problème de la migration s'impose. Mais la franchement, comment on migre un dépot de source ? J'ai essayé plusieurs techniques, et en général ... ben ça échoue tôt ou tard... En y ajoutant la rapidité (sic) de bazaar ... J'ai testé svn2bzr mais planté au bout de quelques heures. L'un des problèmes que j'ai eu provient en partie des exports depuis svn peu efficaces (en utilisant [svndumpfilter](http://svnbook.red-bean.com/en/1.5/svn-book.html#svn.reposadmin.maint.tk.svndumpfilter)) J'ai ensuite voulu jouer avec [BzrFastImport](http://bazaar-vcs.org/BzrFastImport) ... echec en provenance de svn J'ai donc eu ensuite l'idée de passer par git Un petit coup de git-svn et hop un répo git potable (facile sur ce coup là) Un coup de [git fast-export](http://www.kernel.org/pub/software/scm/git/docs/git-fast-export.html) et j'ai mon dump correct. Les tests que je réalise sont sur un projet légèrement conséquent mais pas énorme non plus. Y'a de l'ordre de 3-400 000 lignes de codes, un dump de 1,3Go pour en gros 2-3 ans d'historique (à ne pas perdre évidemment) Maintenant que le dump est là ... il faut l'importer Et là c'est le drame... Y'a pas à dire, lorsque Torvalds parle de rapidité dans [sa vidéo sur git](http://www.youtube.com/watch?v=4XpnKHJAok8) finalement c'est loin d'être négligeable. L'import dans bazaar est d'une sous efficacité monstrueuse : ça prend 2Go de ram, 2Go de swap (ok 100% en fait...) et ça n'avance pas... Comment faites vous pour gérez vos migrations de sources ? Y'a-t-il d'autres outils intéressant où faut-il juste galérer ? Quels sont vos expériences en la matière, surtout ?