JuangaCovas.info

La página personal de Juan Gabriel Covas

Herramientas de usuario

Herramientas del sitio


subversion

Diferencias

Muestra las diferencias entre dos versiones de la página.

Enlace a la vista de comparación

Ambos lados, revisión anteriorRevisión previa
Próxima revisión
Revisión previa
subversion [06/02/2021 18:37] Juanga Covassubversion [03/02/2024 00:58] (actual) Juanga Covas
Línea 1: Línea 1:
 ====== Mundo real: cómo administrar un servidor subversion para un equipo pequeño ====== ====== Mundo real: cómo administrar un servidor subversion para un equipo pequeño ======
  
-Estas son mis notas tras 4 años de administración de un servidor Subversion (SVN) en Linux, para un equipo pequeño de 4 o 5 personas que acceden desde la oficina, o desde casausando clientes Windows, Mac o Linux.+Estas son mis notas tras 4 años de administración de un servidor Subversion (SVN)
 +  - En Linux, 
 +  - para un equipo pequeño de 4 o 5 personas que acceden desde la oficina, o desde casa 
 +  - usando clientes desde Windows, Mac o Linux.
  
-Si lo que te interesa alojar tu servidor SVN en windows, puedes echar un vistazo a [[https://www.visualsvn.com/server/|VisualSVN Server para Windows]] (con versión gratuita y de pago).+Si lo que te interesa es alojar tu servidor SVN en windows, puedes echar un vistazo a [[https://www.visualsvn.com/server/|VisualSVN Server para Windows]] (con versión gratuita y de pago).
  
-Las ventajas de alojar subversion en Linux:+<WRAP tip> 
 + 
 +Lo habitual es que pensemos en Subversion como una manera de "poder trabajar en equipo al mismo tiempo en el mismo proyecto, controlar los cambios en el código", etc. Un concepto adicional que he aprendido para entender mejor cómo utilizar SVN en el día a día en un equipo es el siguiente: **usamos Subversión con el objetivo de __propagar fácilmente__ los cambios realizados en los proyectos al resto del equipo y a los servidores de prueba, de producción, etc.** Esta idea ayuda a comprender mejor cómo debemos enviar (//commitar//) los cambios que realizamos en el código fuente y los cambios en las carpetas o directorios, especialmente en SVN. 
 + 
 +</WRAP> 
 + 
 +Las ventajas de alojar Subversion/SVN en Linux:
  
   - Se puede hostear en servidores (o VMs) más pequeños, resultando más baratos que Windows.   - Se puede hostear en servidores (o VMs) más pequeños, resultando más baratos que Windows.
Línea 12: Línea 21:
   - La gestión de usuarios la realizaremos usando el propio sistema de cuentas de usuario de Linux.   - La gestión de usuarios la realizaremos usando el propio sistema de cuentas de usuario de Linux.
  
-Desventajas de alojar subversion en Linux bajo el protocolo ''svn+ssh'':+Inconvenientes de alojar Subversion en Linux bajo el protocolo ''svn+ssh'':
  
-  - Estamos obligados a usar línea de comandos, no hay intergaz gráfica (GUI) para administrar el servidor+  - Estamos obligados a usar línea de comandos **para administrar el servidor**, no hay intergaz gráfica (GUI). En el lado del cliente (el usuario), podremos usar GUIs como TortoiseSVN para Windows o cualquier otra para otros sistemas, además de línea de comandos.
   - No tenemos la misma granularización de permisos en los repositorios y directorios. Todos los usuarios pueden acceder a todo y escribir en todas partes, si bien siempre hay alternativas o pequeños "hacks".   - No tenemos la misma granularización de permisos en los repositorios y directorios. Todos los usuarios pueden acceder a todo y escribir en todas partes, si bien siempre hay alternativas o pequeños "hacks".
   - No tenemos "de entrada" un visor HTML de los repositorios como cuando instalamos una típica instalación SVN con el servidor web Apache, etc. aunque siempre se pueden instalar aparte.   - No tenemos "de entrada" un visor HTML de los repositorios como cuando instalamos una típica instalación SVN con el servidor web Apache, etc. aunque siempre se pueden instalar aparte.
  
-<WRAP tip> 
  
-Lo habitual es que pensemos en Subversion como una manera de "poder trabajar en equipo al mismo tiempo en el mismo proyecto, controlar los cambios en el código", etc. Un concepto adicional que he aprendido para entender mejor cómo utilizar SVN en el día a día en un equipo es el siguiente: **usamos Subversión con el objetivo de __propagar fácilmente__ los cambios realizados en los proyectos al resto del equipo y a los servidores de prueba, de producción, etc.** Esta idea ayuda a comprender mejor cómo debemos enviar (//commitar//) los cambios que realizamos en el código fuente y los cambios en las carpetas o directorios, especialmente en SVN. 
- 
-</WRAP> 
  
 Cosas que necesitaremos: Cosas que necesitaremos:
  
-  * Instalación y actualización de Subversion +  * Instalación y actualización de Subversion. 
-    * Instalar la versión de Subversion deseada, en Ubuntu o CentOS +    * Instalar la versión de Subversion deseada, en Ubuntu o CentOS, cliente o servidor. 
-    * Poder actualizar el servidor SVN para disfrutar de la última versión+    * Poder actualizar el cliente/servidor SVN para disfrutar de la última versión
 +  * Interfaz: en Windows, la herramienta TortoiseSVN es la más completa. En línea de comandos, CMDer lee los metadatos de Subversion y nos muestra el estado/rama de cada path como en git.
   * Gestión de usuarios   * Gestión de usuarios
-    * Añadir usuarios (un nuevo empleado, por ejemplo). +    * Añadir usuarios al servidor Subversion (un nuevo empleado, por ejemplo). 
-    * Dar de baja usuarios (expiración de usuarios, por ejemplo cuando un empleado deja la empresa). +    * Dar de baja usuarios (expiración de usuarios, por ejemplo cuando un empleado deja la empresa). Evitar perder el histórico de commits de dicho usuario
-    * Si el servidor es solo para SVN, los usuarios *solo* deben poder hacer Subversion una vez conectados, y nada más.+    * Si el servidor es solo para SVN, por seguridad los usuarios *solo* deben poder hacer Subversion una vez conectados por ''ssh'', y **nada más**.
   * Decidir nuestro "esquema de repositorios" (layout), por ejemplo el de "uno o más proyectos en cada repo", más flexible que el de "un repo = un proyecto".   * Decidir nuestro "esquema de repositorios" (layout), por ejemplo el de "uno o más proyectos en cada repo", más flexible que el de "un repo = un proyecto".
-  * Aprender a usar los "externals" de SVN+  * Aprender a usar los "externals" de SVN para tener carpetas/librerías comunes en varios proyectos a la vez, de forma centralizada.
   * Scripts:   * Scripts:
     * Script para crear un nuevo repositorio     * Script para crear un nuevo repositorio
Línea 44: Línea 50:
     * Scripts para hacer copias de seguridad (backup) de los repositorios. Hay diversos modos de hacerlo.     * Scripts para hacer copias de seguridad (backup) de los repositorios. Hay diversos modos de hacerlo.
   * Extras:   * Extras:
-    * Uso de una rama "trunk" estándar (algo como "master" en git), y como mucho una rama "release" para proyectos que lo requieren+    * Uso de una rama "trunk" estándar (algo como "master" en git), y como mucho una rama "release" para proyectos que lo requieren.
     * Svnnotify (al hacer commit, envío automático de un e-mail al equipo con los cambios/diferencias efectuados).     * Svnnotify (al hacer commit, envío automático de un e-mail al equipo con los cambios/diferencias efectuados).
     * Utilizar un usuario de "actualizaciones/despliegue" para desplegar el proyecto (deploy)     * Utilizar un usuario de "actualizaciones/despliegue" para desplegar el proyecto (deploy)
subversion.1612633028.txt.bz2 · Última modificación: 06/02/2021 18:37 por Juanga Covas