(copie de mon journal linuxfr)
Bitbucket, qui est une forge de dépôts Git et Mercurial, a annoncé en août dernier la suppression des dépôts Mercurial de ses utilisateurs dès le premier juin 2020.
C'est une annonce qui n'a pas été très bien accueillie, mais bitbucket prétend vouloir se concentrer sur Git, car selon une étude américaine, il y a 90% des développeurs qui utilisent Git, contre 3% qui utilisent Mercurial. De plus, les nouveaux dépôts Mercurial créés sur Bitbucket ne concernent plus que 1% des projets. Ce qu'ils ne disent pas en revanche, c'est quel est le pourcentage de dépôts Mercurial au total hébergés chez eux, en effet, historiquement Bitbucket ne proposait que Mercurial, et c'est face à la montée de Github et de Git qu'ils ont rajouté le support de ce dernier. Ainsi, on peut imaginer que cette fermeture impactera une part non négligeable de leurs utilisateurs actuels.
On peut également imaginer qu'en supprimant simplement ces dépôts (au lieu de juste les figer), quelques projets open source qui ne sont plus maintenus vont ainsi totalement disparaître. Ce sont des milliers de ligne de code libre qui vont cesser d'exister.
Si vous avez des dépôts mercurial chez eux, il faudra donc envisager une migration, soit vers une autre forge, soit vers git et rester chez bitbucket. Je ne crois pas qu'ils aient développé d'outils spécifique pour migrer facilement un dépôt chez eux (ce qui énerve d'autant plus quantité de développeurs, surtout ceux qui payent et qui se sentent encore plus lésés).
Pour ma part, j'ai quelques dépôts en Git, et quelques autres utilisant Mercurial. Je n'ai rien contre Git, et pour mon utilisation assez basique, je ne trouve pas vraiment beaucoup de différence entre les deux, il y a des commandes assez similaires (clone, commit, push, pull...).
J'aime bien chez Mercurial la possibilité de monter avec juste une commande ("hg serve") un serveur mercurial fonctionnel, en local, qui permet de voir graphiquement les commit depuis un navigateur web, et de faire des push et pull depuis un autre ordinateur. Rien que pour ça, et pour la pluralité des solutions, je veux rester avec Mercurial.
Je trouve github plus pratique au niveau des interactions envers les autres utilisateurs (fork, pull request etc), et surtout vu qu'ils y a peut-être 90% des développeurs sur github ou gitlab, et 3% chez Bitbucket, en utilisant la même logique qu'eux, je pense que cela ne vaut plus la peine de rester chez eux, je suis donc en train de déplacer mes dépôts ailleurs.
Chez github il y a un outil d'import, je viens de le tester, ça fonctionne bien (mais ne garde pas le bugtracker) : https://github.com/new/import
Gitlab propose également des outils d'importation, mais je n'ai pas testé.
Pour ma part je suis parti chez le mal-aimé Sourceforge, et pour garder tout mon historique des commits mercurial, j'ai simplement :
- créé un projet chez SF
- récupéré l'adresse du dépôt, et remplacé dans le .hg/hgrc du projet sur mon disque dur, la ligne
default = https://login@bitbucket.org/login/projet
par
default = ssh://login@hg.code.sf.net/p/projet/code
Ensuite il suffit de taper "hg push", et ça recréera tout dans le nouveau dépôt !