]> git.llucax.com Git - mecon/scripts.git/commitdiff
Se agregan scripts para mantenimiento de repositorios.
authorLeandro Lucarella <llucax@gmail.com>
Tue, 3 Feb 2004 20:57:47 +0000 (20:57 +0000)
committerLeandro Lucarella <llucax@gmail.com>
Tue, 3 Feb 2004 20:57:47 +0000 (20:57 +0000)
subversion/scripts/fixperm.sh [new file with mode: 0755]
subversion/scripts/load.sh [new file with mode: 0755]
subversion/scripts/recover.sh [new file with mode: 0755]

diff --git a/subversion/scripts/fixperm.sh b/subversion/scripts/fixperm.sh
new file mode 100755 (executable)
index 0000000..aec9319
--- /dev/null
@@ -0,0 +1,20 @@
+#!/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
+
diff --git a/subversion/scripts/load.sh b/subversion/scripts/load.sh
new file mode 100755 (executable)
index 0000000..851a2cf
--- /dev/null
@@ -0,0 +1,49 @@
+#!/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
+
diff --git a/subversion/scripts/recover.sh b/subversion/scripts/recover.sh
new file mode 100755 (executable)
index 0000000..76883cd
--- /dev/null
@@ -0,0 +1,15 @@
+#!/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"
+