Passez à Git quand vous venez de subversion

Git a le vent en poupe ces derniers temps, de plus vous avez tous entendu plus ou moins parlé de github, ce sourceforce s’appuyant sur git au lieu de subversion.
Personnellement j’utilise subversion depuis quelques années maintenant, j’y suis habitué et je fais avec ses défauts.
Récemment j’ai décidé, suite à de nombreuses demandes de mettre à disposition mon framework également sur github pour faciliter les retours/corrections de bugs et les éventuels améliorations.

Mais voilà, j’ai mes habitudes et me suis retrouvé un peu désarmé en utilisant git, je vais résumer ici les différences à connaitre

La récupération des sources: svn checkout
Quand vous récupérez les sources d’un projet svn, vous vous rendez dans votre répertoire et vous executez

1
svn checkout http://svn.votreProjet.com/trunk/ .

Avec Git vous « clonez » votre dépôt

1
git clone http://git.votreProjet.com

Versionnez des nouveaux fichiers: svn add
Lorsque vous créez de nouveaux fichiers, vous les ajoutez au projet versionné par un

1
svn add monNouveauFichier

Sous git, ici c’est la même chose

1
git add monNouveauFichier

L’envoi de modifications: svn commit
Lorsque vous faites des modifications de fichiers, vous envoyez vos modification par un

1
svn commit

Sous git, c’est un peu différent: vous soumettez « localement » vos modification avec

1
git commit

note: si sous subversion le simple fait de modifier des fichiers suffit à les prendre en compte lors du commit,
sous git, il faut indiquer les fichiers que l’on veut prendre en compte dans le commit avec un

1
git add

Ou, si vous souhaitez qu’il commit tous les fichiers modifié, vous pouvez utiliser le paramètre -a pour « all »

1
git commit -a

Puis quand vous estimez avoir un lot « stable » vous pousser vos modifications locales vers le dépot distant

1
git push

Récuperez les mises à jour: svn update
Sous subversion, pour récupérer la version modifié par les collègues ou par vous même à partir d’un autre serveur

1
svn update

Sous git

1
git pull

Annuler des modification locales: svn revert
Quelques fois vous faites des modifications locales, et au moment de la mise à jour via svn, vous voyez un conflit. Et si vous estimez preferez la version du serveur vous faites un:

1
svn revert monFichier

Sous git

1
git checkout monFichier

Conclusion
Comme vous avez pu le lire, il y a quelques différences à connaitre entre subversion et git qu’il faut connaitre et apprendre lorsque l’on est habitué à subversion.
J’espère que ce petit récapitulatif aidera certains d’entre vous ;)

N’hésitez pas à soumettre d’autres astuces/différences de commande entre svn et git, je les ajouterai à l’article ;)

Haxe: coder une fois, déployer partout ou presque ;)

HaxeIntroduction
Il y a quelques années, avant l’arrivée de l’HTML5, il m’arrivait d’avoir besoin de faire du flash (appris sur le tard avec des collègues de classe d’informatique), mais je(ou ma société) n’avait pas de budget prévu pour Macromedia Flash (depuis racheté par Adobe), j’avais donc cherché sur internet les alternatives disponibles (comme svg) et j’étais finalement tombé sur deux projets: MSTASC et SWFMILL.
L’un permettait d’écrire des fichiers actionsScript 2 puis de les compiler en swf, et l’autre http://swfmill.org/ de compiler une scène avec des clips, fonts… en flash également.
Avec ces deux outils, on pouvait facilement faire du flash sans le logiciel sous windows/linux/mac, et gratuitement ;)
Puis un jour, sur le site de MSTASC, l’auteur annonça la migration de ce projet vers son successeur: HAXE

Haxe késako ?
Haxe est un langage de programmation opensource un peu particulier, puisque qu’il permet d’être compilé aussi bien en flash qu’en c#, javascript ou même php…
Oui vous avez bien lu, un langage qui permet aussi bien de produire des jeux applications flash, que du code serveur ou client.
Bien entendu, en fonction de la cible, certaines bibliothèques, certains objets ne seront pas disponibles: on ne va pas demander à c# de lire un clip flash ;)
Mais mis à part les spécificités de chaque cible, le reste du langage, et donc de la logique et la syntaxe reste la même ;)

Quel intérêt ?
Imaginez le cas, ou dans la même journée/semaine vous devez developper une application web php avec un peu de javascript, voir y inclure une petite appication flash pour promouvoir une application mobile Android (en c++).
Avec la même syntaxe vous allez pouvoir faire l’ensemble: vous n’avez pas besoin de vous souvenir des différentes syntaxes de chaque langage: vous pouvez passer de l’un à l’autre naturellement.
L’intérêt est donc là: un langage à apprendre pour développer tout type d’application différente.
Si les écoles d’informatique pouvaient enseigner ce langage, cela donnerait une meilleure valeur ajoutée à leurs élèves qui deviendraient de fait plus polyvalent ;)

Comment ça marche ?
Il n’y a pas de magie: vous codez en Haxe, et appelez un binaire Haxe pour compiler vers une cible :)
Plus d’informations sur les options de compilation ici: http://haxe.org/doc/compiler

Conclusion
Haxe est un langage qui gagne à être connu, c’est une autre manière de voir les langages de programmation.
Et comme dit plus haut: vous pouvez l’apprendre uniquement pour faire du flash ou une application Android/iOs