Categories
FLOSS

Git a gagné, et on le savait déjà.

Eric S. Raymond pense la même chose que moi à propos de Git et Mercurial, il semble.

” git won the mindshare war. I regret this – I would have preferred Mercurial, but it too is not looking real healthy these days. I have made my peace with git’s victory and switched. I urge the Emacs project to do likewise.” 

bzr is dying; Emacs needs to move, 02 Jan 2014.

J’avais commencé par apprendre Mercurial (parce que Python), puis Git. Je préfère également l’interface utilisateur de Mercurial et trouve Mercurial un peu plus simple d’utilisation. Tout comme esr j’accepte la victoire de Git, qui est indéniablement un excellent DVCS. Techniquement Git a effectivement quelques avantages. Je vois surtout la gestion des branches qui est certainement mieux pensée et la zone de transit (ou staging, que l’on peut retrouver avec DirState en utilisant Mercurial).

Les statistiques Ohloh confirment la victoire de Git sur Mercurial. La décision de l’équipe de Bitbucket en 2011 de supporter Git était donc judicieuse afin de sécuriser leur avenir.

Bref, Git semble bien lancé pour écraser toutes concurrences. Ce qui est bien dommage car j’aime la diversité. Je trouve sympa le fait d’utiliser Mercurial pour un projet, Git pour un autre et Bazaar encore pour un autre. L’avenir de Bazaar est très certainement compromis. À un peu plus long terme celui de Mercurial (utilisé par la fondation Python). C’est en partie pour cette raison que mon activité sur Gitorious augmente depuis quelques temps. Il faut savoir quand il est inutile de s’obstiner.

Le threadbzr is dying; Emacs needs to move” de la liste de diffusion emacs-devel montre à quel point un outil comme un système de versionnement a son importance dans le développement d’un logiciel. Le passage à Git est une première étape afin d’apporter du sang neuf dans la communauté d’Emacs. En 2013/2014 pour un projet open source, avoir un dépôt sur Github est quasiment un prérequis pour son succès. Mais c’est un autre problème à développer.

Categories
Programming Python

Balloon prend de la hauteur

Depuis sa création quelques modifications apportés à Balloon le rendent déjà plus utilisable et moins bêta (il y a maintenant simplement un fichier de configuration à éditer). Une des améliorations majeures réside dans le fait que les push ne sont plus réalisés systématiquement après un commit. Balloon attend qu’une série de commits soit réalisée avant d’exécuter un push vers le serveur. Après quelques tests Balloon fonctionne plutôt bien (j’ai testé avec des fichiers textes et images de quelques méga-octets). Mais il y a encore du travail.

Lorsque le code sera un peu plus stable et mieux pensé, je n’aurai plus qu’à écrire la classe GitSync (à l’instar de HgSync) pour gérer les dépôts Git. En effet à terme Balloon pourra synchroniser plusieurs dossiers locaux (avec une racine différente) que ce soient des dossiers versionnés avec Git ou Mercurial.

Une des dernières étapes sera l’écriture d’un watcher pour Windows. Oui ce système dispose d’un noyau un peu primitif, ce n’est pas ma faute. inotify ne semble pas y être implémenté.
Pour le moment Balloon réagit aux événements: IN_CREATE, IN_DELETE, IN_MODIFY, IN_MOVED_FROM et IN_MOVED_TO. Pour la liste complète des événements voyez ce fichier: /usr/include/sys/inotify.h.

Le Wiki explique brièvement comment utiliser Balloon.

Categories
Technology

Le combat des DVCS

Mercurial vs Git

Ces derniers temps je vois de plus en plus de billets contenant la chaîne de caractère “git has won” ou “github has won“. Cela m’attriste un peu. Bien sûr il ne faut pas comprendre ici que Mercurial se porte mal. Au contraire. Mercurial c’est cool, simple à utiliser et puissant. Je me demande juste pourquoi tellement de développeurs adoptent la gitattitude.

Concrètement, pour qu’elle raison Git est-il plus tendance que Mercurial? Pour une raison technique? Parce que Linus? Pourquoi pas Guido? Sur un plan technique l’image de ce billet reflète certainement bien les différences. On peut aussi voir Git comme MacGyver et Mercurial comme James Bond.

Personnellement, je pense que Mercurial n’a rien a envier à Git sur le plan technique.
La bataille semble plutôt sociale. Git a le vent en poupe en partie grâce au réseau github et aussi (un peu moins) au réseau gitorious.
Il faut le dire, github est sacrément bien fait comparé à bitbucket. github est surtout plus rapide. L’aspect communautaire est aussi mieux pensé. Sur bitbucket il n’est même pas possible de mettre des tags sur un projet ou de rechercher par licence.

J’aimerai beaucoup que bitbucket utilise la même licence que gitorious. Une licence AGPL.

Finalement on se trompe peut être de combat. Il s’agit plutôt d’un combat de services d’hébergement de code source.

Il ne faut pas oublier que le code est roi. L’important reste toujours de développer ces logiciels ouvertement. Qu’il s’agit d’un dépôt Mercurial ou Git, le dépôt doit être ouvert et le code doit être sous licence libre. Et le service Web de préférence doit utiliser une licence libre, comme le fait gitorious.

Je me suis récemment ouvert un compte github et gitorious. Je vais me servir de ces comptes pour tester le plug-in Mercurial Hg-Git.

P.S.: si vous avez un argument technique de poids je suis preneur, merci.