Configuro Subversion

De Kafre.org

Sincronizar Configuración con Subversion

Cada vez que quiera hacer commit a subversion tender que correr el siguiente comando:

 /etc/scripts/CommitSetup.sh "COMENTARIO QUE QUIERA PONER"


Como he conseguido esto

La verdad que como todo es copia de algún lado. Esto lo he sacado de http://articles.techrepublic.com.com/5100-10878_11-6142224.html# Lo que viene a decir es que para tener las copias de la configuración en subversion comentadas después de cada cambio hay que:

Contenido

Crear un repositorio de subversion.

 mkdir -p /root/subversion/copy
 svnadmin create /root/subversion/repos --fs-type fsfs

Le doy permisos para apache (por si quiero acceder por apache)

 chown -R apache /root/subversion/repos
 chmod -R go-rwx /root/subversion/repos

Crear un directorio donde va a esta el working copy (copia que se baja de subversion).

 cd ~/subversion/copy

Copiamos ahí lo que tengamos en /etc con rsync.

 rsync -a /etc .

Lo importamos a subversion.

 svn import etc file:///root/subversion/repos -m "initial import"

Borramos ahora esto.

 rm -rf etc

Hacemos checkout con subversion.

 svn co file:///root/subversion/repos etc

Aquí ya tenemos la configuración en subversion. Ahora viene lo bueno. Con el siguiente script lo que hacemos es que cada vez que lo corramos pasándole un comentario como parámetro el script se encarga de buscar modificaciones/eliminaciones o ficheros nuevos en /etc, aplica los cambios en subversion y le pone el comentario que le has pasado como parametro

Script para actualizar subversion con los ultimos cambios de la configuracion

#!/bin/sh
# script to make an automated commit of /etc to subversion
 
svncopy="/root/subversion/copy"
svnrepo="/root/subversion/repos"
 
pushd ${svncopy} >/dev/null 2>&1
    rsync -a --delete --exclude=.svn /etc .
popd >/dev/null 2>&1
pushd ${svncopy}/etc >/dev/null 2>&1
    svnstatus="$(svn status)"
    if [ "${svnstatus}" != "" ]; then
        echo "The following changes were made to /etc:"
        tmpfile=$(mktemp /root/subversion/svn.XXXXXX)
        svn status >${tmpfile} 2>&1
        cat ${tmpfile}
        echo ""
        svntoadd=$(cat ${tmpfile} | egrep '^\?')
        for i in  ${svntoadd}; do
            if [ "${i}" != "?" ]; then
                svn add ${i}
            fi
        done
        svntodel=$(cat ${tmpfile} | egrep '^\!')
        for i in  ${svntodel}; do
            if [ "${i}" != "!" ]; then
                svn rm ${i}
            fi
        done
        svn commit -m "Auto-commit, after changes: $1"
        rm -f ${tmpfile}
    fi
popd >/dev/null 2>&1

Todo esto es muy bonito, pero para mi no me valdría de mucho porque lo que yo quería es poder ver los cambios reportados de alguna manera y el código a la vez, y para eso necesito a Como Instalar Trac en CentOS. Que me ha costado un poco configurar pero al final lo consegui.