--- /dev/null
+#!/bin/sh
+
+echo "$0 - Repara los permisos de repositorios."
+if [ -z "$1" ]; then
+ echo 'Falta argumento. Uso:'
+ echo " $0 repos"
+ echo 'Donde repos es el nombre del repositorio o "-a" si quieren reparar los permisos de todos.'
+ exit
+fi
+
+repos="$1"
+if [ "a$1" == "a-a" ]; then
+ repos="."
+fi
+
+echo "Reparando permisos del directorio '$repos'..."
+chmod g=u "$repos" -R
+find "$repos" -type d -exec chmod g=u+s '{}' \;
+chown .src "$repos" -R
+
--- /dev/null
+#!/bin/sh
+
+echo "$0 - Recupera repositorios desde un 'dump'."
+if [ -z "$1" ]; then
+ echo 'Falta argumento. Uso:'
+ echo " $0 repos"
+ echo 'Donde repos es el nombre del repositorio o "-a" si quiere recuperar todos.'
+ exit
+fi
+
+##### Si pasan -a procesa todos los repositorios del directorio actual ######
+
+if [ "a$1" == "a-a" ]; then
+ for repos in *; do
+ bz2bak="$repos.dump.bz2"
+ if [ -d "$repos" ] && [ -r "$bz2bak" ]; then
+ $0 "$repos"
+ fi
+ done
+ exit
+fi
+
+################### Procesa un repositorio en particular ####################
+
+repos="$1"
+repold="$repos.old"
+bz2bak="$repos.dump.bz2"
+
+echo "Haciendo backup del repositorio '$repos' en '$repold'..."
+mv "$repos" "$repold"
+echo "Creando nuevo repositorio '$repos'..."
+svnadmin create "$repos"
+echo "Cargando informaciĆ³n desde '$bz2bak' en '$repos'..."
+bzcat $bz2bak | svnadmin load "$repos"
+
+./fixperm.sh -a
+
+# Se fija si hay hooks para migrar
+hooks=''
+for f in intranet.old/hooks/*; do
+ if [ `echo $f | grep -v .tmpl` ]; then
+ hooks="$hooks $f"
+ fi
+done
+if [ "$hooks" ]; then
+ echo 'Probablemente necesite migrar los siguientes hooks del repositorio:'
+ echo "$hooks"
+fi
+
--- /dev/null
+#!/bin/sh
+
+echo "$0 - Repara un repositorio corrompido."
+if [ -z "$1" ]; then
+ echo 'Falta argumento. Uso:'
+ echo " $0 repos"
+ echo 'Donde repos es el nombre del repositorio a reparar.'
+ exit
+fi
+
+repos="$1"
+
+svnadmin recover "$repos"
+./fixperm.sh "$repos"
+