====== Script pour tester les changements en attente dans plusieurs projets ======
__Problème__:
Comment tester facilement si des changements sont en attente (status, outgoing, incoming) dans plusieurs projets ?
__Script__:
#!/bin/bash
# script to test if changes are pending in some Mercurial repositories
# author: Nicolas Rod, 13.08.2010
workspace=/home/rodn/workspace/
repositories="cakephp_alaxos blaxos demo_alaxos tandem"
unchanged_text="aucun changement"
#clear the screen for better display
clear
for repository in $repositories
do
echo "----------------------"
echo "|| $repository ||"
echo "----------------------"
cd "$workspace$repository"
echo "---------status"
st=$(hg status)
st_length=${#st}
if (($st_length > 0))
then
echo -e "\033[1;32m$st\033[0m"
fi
echo "---------incoming"
in=$(hg incoming)
if ! grep -q "$unchanged_text" <<<$in;
then
echo -e "\033[1;32m$in\033[0m"
fi
echo "---------outgoing"
out=$(hg outgoing)
if ! grep -q "$unchanged_text" <<<$out;
then
echo -e "\033[1;32m$out\033[0m"
fi
echo
done
====== Appliquer un commit à un autre projet (patch) ======
__Problème__:
Dans le cas de deux projets distincts A et B ayant un même projet comme ancêtre, il est possible d'appliquer des commits du projet A au projet B, pour par exemple corriger un bug existant dans les deux projets A et B
__Commandes__:
1) procéder au commit dans le projet A
2) exporter le changeset du commit:
hg export -o changeset-54.patch 54:e3745da77977
3) dans le projet B, importer le changeset:
hg import changeset-54.patch --no-commit
Note: l'ajout de --no-commit permet de vérifier les changements appliqués avant de les commiter dans le projet B
====== Logs au format CSV ======
__Problème__:
Comment obtenir les logs d'un projet dans un format que l'on peut parser facilement
__Commandes__:
$ hg log --template "{rev}\t{node}\t{date|isodate}\t{author}\t{desc}\n"
61 6aab1393fc3dd13c429121a92979a4a9fc797f70 2012-07-13 18:17 +0200 Nicolas Rod ACL plugin update
60 806ca0813e7b5fe3685452386195c9fbc6f5f065 2012-07-13 18:13 +0200 Nicolas Rod Alaxos plugin update
59 edb937096cddb2ee947e1dd15cef727e3798db71 2012-07-02 13:04 +0200 Nicolas Rod Alaxos plugin update