Bash, trier par numéro de version
Sur Jamendo on a une architecture SVN plutot classique :
* projects * project1 * tags * branches * trunk * project2 * etc...
Pour gérer l'export automatique en live de la dernière version d'un projet on la tag. Le tag se fait par numéro de version classique style : Majeure.Mineure.Hotfix.
Le problème est de savoir quelle est la dernière version sur laquelle on travaille.
Donc :
svn list svnroot/svnpath | sort | tail -n1
On est d'acord ça suffit tant qu'on a pas des versions qui dépassent 10, auquel cas, elles seront classées avec les 1 ...
donc :
svn list svnroot/svnpath | sort -g | tail -n1
Nous sauve temporairement et pour bien des cas .... La ou ça devient tricky, c'est quand on a des versions 6.12.1, 6.9.7 enfin ... vous voyez bien, quand le problème se répercute après le [.]
Donc vla une commande qui solutionne un peu ce problème je suis sur qu'on peux y trouver d'autres applications... comme j'ai mis un peu de temps, je partage ;)
svn list svnroot/svnpath | awk '{print $1 " " $1}' | sed s/[.]//1 | sed s/[.]//1 | sort -g | tail -n 1 | cut -d" " -f2
Le principe est simple, je double la valeur, j'enlève les points de la première occurence, je tri numériquement, je prend le dernier puis je recoupe ... Pas très compliqué en somme mais assez pratique ;)
