Subversion proporciona muchos comportamientos opcionales que pueden ser controlados por el usuario. Muchas de estas opciones son del tipo que el usuario querría aplicar a todas las operaciones de Subversion. Así que en lugar de obligar a los usuarios a recordar parámetros de línea de comando para especificar estas opciones, y usarlos para todas y cada una de las operaciones que realicen, Subversion usa ficheros de configuración, segregados en un área de configuración de Subversion.
El área de configuración de Subversion es una jerarquía de dos capas de nombres de opciones y sus respectivos valores. Normalmente, esto se reduce a un directorio especial que contiene ficheros de configuración (la primera capa), que son simplemente ficheros de texto en un formato INI estándar (con “secciones”, las cuales forman la segunda capa). Estos ficheros pueden ser modificados fácilmente usando su editor de texto favorito (como Emacs o vi), y contienen directivas leídas por el cliente para determinar qué comportamiento opcional, de varios a elegir, prefiere el usuario.
La primera vez que el cliente de línea de comando
        svn es ejecutado, crea un área
        de configuración para el usuario. En sistemas
        tipo Unix, este área aparece como el directorio
        .subversion en el directorio home  del usuario.
        En sistemas Win32, Subversion crea un directorio llamado
        Subversion, típicamente dentro del
        área Application Data del directorio
        de perfil del usuario (el cual, por cierto, suele ser un
        directorio oculto).  No obstante, en esta plataforma la
        ubicación exacta difiere de sistema a sistema, y es dictada
        por el registro de Windows.
        [33]
        A lo largo del libro nos referiremos al área de
        configuración de cada usuario usando su nombre Unix,
        .subversion.
Además del área de configuración de cada usuario,
        Subversion también reconoce la existencia de un área
        de configuración global de sistema.  Ésta le permite al
        administrador de sistema establecer valores por defecto para
        todos los usuarios en una máquina determinada. Tenga en
        cuenta que el área de configuración global de sistema por
        sí sola no dicta reglas obligatorias—los parámetros
        del área de configuración de cada usuario tienen prioridad
        a los globales, y los parámetros proporcionados en la
        línea de comando al programa svn
        tienen la palabra final sobre el comportamiento. En
        plataformas tipo Unix, el área de configuración
        global de sistema estará posiblemente en el directorio
        /etc/subversion; en máquinas Windows,
        se busca el directorio Subversion dentro
        de la ubicación común Application Data
        (de nuevo, especificada por el registro de Windows).
        A diferencia del caso específico de cada usuario, el
        programa svn no intentan crear un área
        de configuración global de sistema.
El área de configuración actualmente contiene tres
        ficheros—dos ficheros de configuración
        (config y servers),
        y un fichero README.txt que describe el
        formato INI.  En el momento de su creación, los ficheros
        contienen los valores por defecto para cada una de las
        opciones soportadas por Subversion, en su mayoría con
        comentarios y agrupadas con descripciones textuales
        que indican cómo los valores de cada opción afectan al
        comportamiento de Subversion. Para cambiar un comportamiento
        dado, sólo necesita cargar el fichero de configuración
        adecuado en su editor de texto, y modificar el valor de la
        opción deseada. Si en algún momento desea recuperar los
        valores de configuración por defecto, puede simplemente
        borrar (o renombrar) su directorio de configuración y
        entonces ejecutar algún comando svn
        inocuo, como svn --version.  Entonces se
        creará un nuevo directorio de configuración con el contenido
        por defecto.
El área de configuración de cada usuario también contiene
        una cache de datos de autenticación. El directorio
        auth agrupa un conjunto de
        subdirectorios que contienen trozos de información guardada
        
        usada por los varios métodos de autenticación soportados
        por Subversion. Este directorio es creado de tal manera que
        sólo su usuario tiene permiso para leer su contenido.
Además del área de configuración habitual basada en ficheros INI, los clientes de Subversion ejecutados en plataformas Windows también pueden usar el registro de Windows para almacenar datos de configuración. Los nombres de las opciones y sus valores son iguales que en los ficheros INI. La jerarquía “fichero/sección” también se mantiene, aunque especificada de una manera ligeramente diferente—en este esquema, los ficheros y las secciones son simples niveles del árbol del registro de claves.
Subversion busca valores de configuración global de
        sistema bajo la clave
        HKEY_LOCAL_MACHINE\Software\Tigris.org\Subversion.
        Por ejemplo, la opción global-ignores,
        que pertenece a la sección miscellany
        del fichero config, se encontraría en
        HKEY_LOCAL_MACHINE\Software\Tigris.org\Subversion\Config\Miscellany\global-ignores.
        Los valores de configuración de cada usuario debería poder
        encontrarlos en
        HKEY_CURRENT_USER\Software\Tigris.org\Subversion.
      
Las opciones de configuración almacenadas en el registro son procesadas antes que sus versiones en ficheros de texto, por lo que sus valores son sobreescritos por lo que contengan los ficheros de configuración. En otras palabras, en un sistema Windows, la prioridad de configuración sigue el siguiente orden:
Opciones de línea de comando
Ficheros INI de cada usuario
Valores de registro de cada usuario
Ficheros INI globales de sistema
Valores de registro globales de sistema
Además, el registro de Windows no soporta el concepto
        de que algo esté “comentado”. No obstante,
        Subversion ignorará cualquier opción cuyo nombre comience
        con el carácter almohadilla (#). Esto le
        permite comentar de forma efectiva una opción de Subversion
        sin tener que borrar la clave completa del registro,
        obviamente simplificando el proceso de recuperación de
        esta opción.
El cliente de línea de comando svn
        nunca intenta modificar el registro de Windows, así que
        no intentará crear ahí ningún área de configuración por
        defecto. Puede crear las claves que necesita usando el
        programa REGEDIT. Alternativamente,
        puede crear un fichero .reg, y entonces
        hacer doble click sobre ese fichero desde una ventana de
        explorador, lo cual hará que los datos sean fusionados en
        su registro.
Ejemplo 7.1. Fichero ejemplo de registro (.reg).
REGEDIT4 [HKEY_LOCAL_MACHINE\Software\Tigris.org\Subversion\Servers\groups] [HKEY_LOCAL_MACHINE\Software\Tigris.org\Subversion\Servers\global] "#http-proxy-host"="" "#http-proxy-port"="" "#http-proxy-username"="" "#http-proxy-password"="" "#http-proxy-exceptions"="" "#http-timeout"="0" "#http-compression"="yes" "#neon-debug-mask"="" "#ssl-authority-files"="" "#ssl-trust-default-ca"="" "#ssl-client-cert-file"="" "#ssl-client-cert-password"="" [HKEY_CURRENT_USER\Software\Tigris.org\Subversion\Config\auth] "#store-auth-creds"="no" [HKEY_CURRENT_USER\Software\Tigris.org\Subversion\Config\helpers] "#editor-cmd"="notepad" "#diff-cmd"="" "#diff3-cmd"="" "#diff3-has-program-arg"="" [HKEY_CURRENT_USER\Software\Tigris.org\Subversion\Config\miscellany] "#global-ignores"="*.o *.lo *.la #*# .*.rej *.rej .*~ *~ .#*" "#log-encoding"="" "#use-commit-times"="" "#template-root"="" "#enable-auto-props"="" [HKEY_CURRENT_USER\Software\Tigris.org\Subversion\Config\tunnels] [HKEY_CURRENT_USER\Software\Tigris.org\Subversion\Config\auto-props]
El ejemplo anterior muestra el contenido de un fichero
        .reg que contiene algunas de las
        opciones de configuración más usadas y sus valores por
        defecto. Tenga en cuenta la presencia tanto de opciones
        globales de sistema (para opciones relacionadas con proxys)
        como opciones de cada usuario (programas de edición y
        almacenamiento de claves, entre otras). Fíjese también
        que todas las opciones están comentadas. Sólo tiene que
        eliminar el carácter almohadilla (#)
        del comienzo de cada nombre de opción, y poner los valores
        que desee.
En esta sección discutiremos las opciones específicas de parámetros de ejecución soportados actualmente por Subversion.
El fichero servers contiene
          opciones de configuración de Subversion relacionadas con
          las capas de red. Hay dos nombres de sección especiales
          en este fichero—groups
          y global.  La sección
          groups es esencialmente una tabla
          de referencias cruzadas. Las claves en esta sección son
          nombres de otras secciones en el fichero; sus valores son
          máscaras—palabras textuales
          que posiblemente contienen caracteres comodines—que
          son comparadas contra los nombres de la máquina a la que
          se envían peticiones Subversion.
[groups] beanie-babies = *.red-bean.com collabnet = svn.collab.net [beanie-babies] … [collabnet] …
Cuando Subversion es usado en una red, intenta
          encontrar una coincidencia entre el nombre del servidor
          al que intenta llegar con un nombre de grupo de la
          sección groups. Si se encuentra tal
          coincidencia, Subversion busca entonces una sección en el
          fichero servers cuyo nombre coincida
          con el nombre del grupo.  De esta sección obtendrá la
          configuración de red que será usada.
La sección global contiene la
          configuración que será usada para todos los servidores
          que no encajen con ninguna de las máscaras de la
          sección groups. Las opciones
          disponibles en esta sección son exactamente las mismas
          que aquellas válidas para otras secciones de servidor en
          el fichero (excepto, por supuesto, la sección especial
          groups), y son las siguientes:
http-proxy-host
                
              Especifica el nombre del ordenador proxy por el cual deben pasar sus peticiones Subversion basadas en HTTP. Por defecto es un valor vacío, lo que significa que Subversion no intentará enrutar peticiones HTTP por un ordenador proxy, y que en su lugar intentará contactar la máquina destino directamente.
http-proxy-port
                
              Especifica el número de puerto del ordenador proxy que debe usar. Por defecto es un valor vacío.
http-proxy-username
                
              Especifica el nombre de usuario que se le facilitará al proxy. Por defecto es un valor vacío.
http-proxy-password
                
              Especifica la palabra clave que se le facilitará al proxy. Por defecto es un valor vacío.
http-timeout
                
              Especifica la cantidad de tiempo, en segundos,
                que se espera las respuestas del servidor. Si
                experimenta problemas con una conexión de red lenta
                que provoca que las operaciones de Subversion fallen
                por tiempo de espera agotado, debería incrementar
                el valor de esta opción.  El valor por defecto es
                0, que indica a la librería HTTP
                subyacente, Neon, que use su valor tiempo de espera
                por defecto.
http-compression
                
              Especifica si Subversion debería o no intentar
                comprimir las peticiones de red realizadas a
                servidores con soporte DAV. El valor por defecto es
                yes (aunque la compresión sólo
                ocurrirá si esta característica fue compilada en la
                capa de red). Cambie esto a no
                para desactivar la compresión, por ejemplo para
                depurar transmisiones por red.
neon-debug-mask
                
              Esto es una máscara de bits que la librería HTTP
                subyacente, Neon, usa para determinar el tipo
                de información de depuración que debe mostrar.
                El valor por defecto es 0, el
                cual elimina cualquier información de depuración.
                Para más información sobre cómo Subversion usa Neon,
                vea Capítulo 8, Información para desarrolladores.
ssl-authority-files
                
              Esto es una lista delimitada con punto y coma de rutas a ficheros que contienen certificados de las autoridades de certificación (o CAs) que son aceptadas por el cliente de Subversion cuando se accede a un repositorio sobre HTTPS.
ssl-trust-default-ca
                
              Modifique esta variable a yes
                si quiere que Subversion confíe de forma automática
                el conjunto de CAs por defecto que se distribuyen
                con OpenSSL.
ssl-client-cert-file
                
              Si una máquina (o grupo de máquinas) requieren un certificado de cliente SSL, normalmente se le preguntará por la ruta a su certificado. Ajustando esta variable a esta misma ruta, Subversion será capaz de encontrar la certificación de su cliente automáticamente sin tener que preguntarle. No hay un lugar estándar para almacenar certificados en disco; Subversion los obtendrá de cualquier ruta que especifique.
ssl-client-cert-password
                
              Si el fichero de su certificado de cliente
                SSL está cifrado con una frase, Subversion le
                preguntará por ésta cada vez que el certificado vaya
                a ser usado. Si considera esto un inconveniente (y no
                le importa almacenar la palabra clave en el fichero
                servers), entonces modifique
                esta variable para que contenta la clave. Ya no se
                le preguntará más.
El fichero config contiene el
          resto de los parámetros de ejecución actualmente
          disponibles con Subversion, aquellos no relacionados con
          la conexión a red. Sólo hay un par de opciones en uso por
          ahora, pero de nuevo están agrupadas en secciones pues se
          esperan adiciones futuras.
La sección auth contiene parámetros
          relacionados con autenticación y autorización de Subversion
          contra un repositorio.  Éstos son:
store-auth-creds
                
              Esto indica a Subversion si desea mantener
                una caché o no de las credenciales de autenticación
                proporcionadas por el usuario en respuesta a demandas
                de autenticación por parte del servidor. El valor
                por defecto es yes.  Cambie esto
                a no para desactivar la caché
                de credenciales en disco. Puede reemplazar
                esta opción en invocaciones individuales
                del comando svn usando
                la opción --no-auth-cache
                como parámetro (para aquellos subcomandos que
                la soportan). Para más información, vea “Client Credentials Caching”.
La sección helpers controla qué
          aplicaciones externas son usadas por Subversion para
          realizar ciertas tareas. Las opciones válidas en esta
          sección son:
editor-cmd
                
              Especifica el programa que Subversion usará para
                solicitar al usuario el mensaje del informe de
                cambios cuando envía cambios al repositorio, como
                por ejemplo al usar svn commit
                sin las opciones --message
                (-m) o --file
                (-F).  Este programa
                también se usa con el comando svn
                propedit—un fichero temporal
                es rellenado con los valores actuales de la
                propiedad que el usuario desea modificar, y los
                cambios toman forma en el programa editor (vea
                “Propiedades”).  El valor por
                defecto de esta opción es vacío. Si la opción no
                está activada, Subversion comprobará las variables
                de entorno SVN_EDITOR,
                VISUAL, y
                EDITOR (en ese orden) para
                encontrar un comando de edición.
diff-cmd
                
              Especifica una ruta absoluta a un programa de diferenciación, usado cuando Subversion genera salida “diff” (como cuando usa el comando svn diff). Por defecto Subversion usa una librería de diferenciación interna—activando esta opción obligará realizar esta tarea usando un programa externo.
diff3-cmd
                
              Especifica una ruta absoluta a un programa de diferenciación a tres bandas. Subversion usa este programa para fusionar cambios realizados por el usuario con aquellos recibidos del repositorio. Por defecto Subversion usa una librería de diferenciación interna—activando esta opción obligará realizar esta tarea usando un programa externo.
diff3-has-program-arg
                
              Este parámetro debe ajustarse a
                true si el programa especificado
                por la opción diff3-cmd
                acepta el parámetro de línea de comando
                --diff-program.
La sección tunnels le permite
          definir nuevos esquemas de túneles a usar con
          svnserve y conexiones cliente
          svn://.  Para más detalles, vea “Autenticación y autorización SSH”.
La sección miscellany es donde
          acaba todo lo que no encaja en otra parte.
          [34]
          En esta sección puede encontrar:
global-ignores
                
              Cuando ejecuta el comando svn
                status, Subversion muestra un listado
                de ficheros y directorios no versionados
                junto con los versionados, anotándolos con
                el carácter ? (vea “svn status”).  A veces puede
                ser molesto ver elementos no versionados o no
                interesantes—por ejemplo, ficheros objeto
                resultado de la compilación de un programa— en
                pantalla. La opción global-ignores
                es una lista de máscaras delimitadas por
                espacio que describen los nombres de ficheros y
                directorios que Subversion no debe mostrar a no
                ser que estén versionados. El valor por defecto
                es *.o *.lo *.la #*# .*.rej *.rej .*~ *~
                .#*.
Puede redefinir esta opción en invocaciones
                individuales del comando svn
                status usando la opción de línea de comando
                --no-ignore.  Para más información
                sobre el control detallado de elementos ignorados,
                vea “svn:ignore”.
enable-auto-props
                
              Esto indica a Subversion que añada propiedades
                automáticamente en ficheros nuevos o importados. El
                valor por defecto es no, así que
                cambie esto a yes para activar
                auto propiedades. 
La sección auto-props controla
                la capacidad del cliente de Subversion de poner
                automáticamente propiedades en ficheros que fueron
                añadidos o importados. Contiene un número de
                parejas clave-valor en el formato PATRÓN =
                NOMBREPROPIEDAD=VALORPROPIEDAD donde
                PATRÓN es una máscara de
                fichero que encaja con un grupo de ficheros
                y el resto de la línea es la propiedad y su
                valor. Múltiples coincidencias en un fichero
                resultarán en múltiples propiedades para ese
                fichero; no obstante, no hay garantía alguna de
                que las auto propiedades sean aplicadas en el
                orden en el cual fueron listadas en el fichero de
                configuración, así que no puede tener una regla
                que “redefina” otra.  Puede encontrar
                varios ejemplos del uso de auto propiedades en el
                fichero config.  Por último, no
                olvide cambiar enable-auto-props
                a yes si quiere activar las auto
                propiedades.
log-encoding
                
              Esta variable ajusta el formato por defecto de
                codificación de caracteres de los informes
                de cambios. Es una versión permanente de la
                opción --encoding (vea “Parámetros de svn”.)  El repositorio
                Subversion almacena los mensajes de los informes de
                cambios en UTF8, y asume que su mensaje es escrito
                usando las locales nativas de
                su sistema operativo. Debería especificar una
                codificación diferente si sus mensajes son escritos
                con otra codificación.
use-commit-times
                
              Normalmente los ficheros de su copia local de trabajo tienen marcas de tiempo que reflejan el último momento en que fueron tocados por cualquier proceso, ya sea su propio editor o uno de los subcomandos svn. Esto es normalmente conveniente para gente que desarrolla software, porque los sistemas de compilación a menudo comprueban las marcas de tiempo para decidir qué ficheros necesitan ser recompilados.
En otras situaciones, no obstante, es conveniente
                tener en su copia local de trabajo ficheros
                con marcas de tiempo que reflejan el último
                momento en el que cambiaron en el repositorio
                El comando svn export
                siempre pone estas “marcas temporales de
                última modificación” en los árboles que
                produce. Cambiando esta variable de configuración
                a yes, los comandos svn
                checkout, svn update,
                svn switch, y svn
                revert también ajustarán la marca temporal
                a la última modificación en el repositorio en los
                ficheros que manejen.