Sélectionner des logs Subversion ou Mercurial selon une période de temps
Supposons que l’on veuille retrouver les messages de commit selon une date de début et une date de fin. Selon le gestionnaire de version utilisé, les commande diffèrent légèrement.
Dans les exemple suivants, on souhaite récupérer la liste des commit réalisés entre le 20 et le 28 Mai 2012 inclus.
Subversion (SVN)
Voici la syntaxe à utiliser :
- Version longue :
svn --revision {2012-05-20}:{2012-05-28} log - Version courte :
svn -r {2012-05-20}:{2012-05-28} log
Le résultat que l’on peut obtenir sur la sortie standard :
r3299 | bob | 2012-05-20 02:14:59 +0200 (dim. 20 mai 2012) | 1 ligne
possibilité de faire la somme de deux entiers
————————————————————————
r3300 | alice | 2012-05-21 12:24:22 +0200 (lun. 21 mai 2012) | 1 ligneFIX: somme avec une retenue
————————————————————————
r3301 | bob | 2012-05-21 12:54:27 +0200 (lun. 21 mai 2012) | 1 lignesomme avec des nombres à virgules deviennent possibles
————————————————————————
r3302 | bob | 2012-05-21 18:06:13 +0200 (lun. 21 mai 2012) | 1 lignerefacto pour recette
————————————————————————
r3303 | bob | 2012-05-22 10:11:53 +0200 (mar. 22 mai 2012) | 1 lignele client veut des soustractions plutôt que des additions
————————————————————————
r3304 | alice | 2012-05-22 15:52:48 +0200 (mar. 22 mai 2012) | 1 ligneFIX: problème de retenue lors de la soustraction
————————————————————————
r3305 | alice | 2012-05-23 17:16:10 +0200 (mer. 23 mai 2012) | 1 ligneretouches graphiques selon préférences du client (coins arrondis et texte en #DDDDDD sur fond #EEEEEE)
————————————————————————
Si les deux dates sont inversées, l’ordre des commits est affiché dans l’autre sens.
Mercurial
Voici les commandes équivalentes avec Mercurial :
- Version longue :
hg log --date "2012-05-20 to 2012-05-28" - Version courte :
hg log -d "2012-05-20 to 2012-05-28"
Le résultat sur la sortie standard est différent mais affiche globalement les mêmes informations :
changeset: 863:9282710bfded
parent: 856:36ecccd6d084
user: "Alice" <alice@example.com>
date: Mon May 28 22:07:05 2012 +0200
summary: Cloud de calculs hautes performances dispo par webserviceschangeset: 862:48757838dcc3
user: "Bob" <bob@example.com>
date: Fri May 25 18:02:47 2012 +0200
summary: FIX: contournement calcul avec oneliner Perlchangeset: 861:556dcf3215e0
parent: 860:64a388d648ea
parent: 859:6a73cea460b3
user: "Alice" <alice@example.com>
date: Fri May 25 17:10:05 2012 +0200
summary: import libsoustraction
Contrairement à Subversion, la liste s’affiche du commit le plus récent au plus vieux. Avec cette syntaxe, il n’est pas possible d’afficher les données dans le sens chronologique (pas de résultat). Il est aussi possible d’ajouter les heures et minutes.
D’autres formats de date sont possibles, mais moins pratiques à mon avis (cf. man hg, section DATE FORMATS).
Versions utilisées
Client :
svn : version 1.6.17 (r1128011)
hg : version 2.2.1
Serveur :
svn : version 1.6.6 (r40053)
hg : version 1.4.3