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

Votre adresse e-mail ne sera pas publiée. Les champs obligatoires sont indiqués avec *

*

Ce site utilise Akismet pour réduire les indésirables. En savoir plus sur comment les données de vos commentaires sont utilisées.