Subversion – Création d’une archive d’une ou plusieurs révisions
Un première version du script : Permet de créer un zip d’un intervalle de révisions pour un export.
Il reste des améliorations à faire c’est sûr, mais aujourd’hui cela répond à mes besoins du moment !
#!/bin/sh
# svndiff2zip.sh
# Vérifications
if [ ! $1 ];then echo "svndiff2zip : Pas de dépôt spécifié - obligatoire";exit;fi
if [ ! $2 ];then echo "svndiff2zip : Pas de révision de début spécifiée - obligatoire";exit;fi
if [ ! $3 ];then echo "svndiff2zip : Pas de révision de fin spécifiée - obligatoire";exit;fi
if [ ! $4 ];then echo "svndiff2zip : Pas de destination spécifiée - obligatoire";exit;fi
if [ -d $4 ];then echo "svnxport : le répertoire '$4' existe déjà : supprimer ou autre.";exit;fi
echo "Processing : source($1), revision start($2), revision end($3), target_directory($4)"
# Traitement
for myfile in `svn diff -r $2:$3 --summarize $1 | grep -e '^M ' -e '^A ' -e '^AM '`
do
if [ "$myfile" = "M" -o "$myfile" = "AM" -o "$myfile" = "A" -o "$myfile" = "." -o -d $myfile ]
then
continue
else
outfile=`echo $myfile |sed "s|$1||g"`
dir="$4/$outfile"
mkdir -p $(dirname $dir)
svn export --force $myfile $4/$outfile >> /dev/null
echo "export $4/$outfile "
zip -r "$4.zip" $4 >> /dev/null
fi
done
Laisser un commentaire