Muestra las diferencias entre dos versiones de la página.
Próxima revisión | Revisión previa | ||
subversion [25/07/2020 21:02] – creado Juanga Covas | subversion [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 casa, usando 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 | ||
- | Si lo que te interesa alojar tu servidor SVN en windows, puedes echar un vistazo a [[https:// | + | Si lo que te interesa |
- | Las ventajas de alojar subversion en Linux: | + | <WRAP tip> |
- | - Se puede hostear en servidores (o VMs) más pequeños y baratos que si fuera en Windows | + | |
- | - Se puede aprovechar scripting Bash/Perl ya existente | + | |
- | - Dispondremos fácilmente del protocolo " | + | |
- | - El sistema de usuarios es el propio de cuentas de usuario de Linux | + | |
- | Desventajas | + | 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", |
+ | |||
+ | </ | ||
+ | |||
+ | Las ventajas | ||
+ | |||
+ | - Se puede hostear en servidores (o VMs) más pequeños, resultando más baratos que Windows. | ||
+ | - Se pueden aprovechar herramientas (scripts) ya escritos en Bash, Perl, Python... | ||
+ | - Dispondremos fácilmente del protocolo '' | ||
+ | - La gestión de usuarios la realizaremos usando el propio sistema de cuentas de usuario de Linux. | ||
+ | |||
+ | Inconvenientes de alojar Subversion | ||
+ | |||
+ | - 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 " | - 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 " | ||
- No tenemos "de entrada" | - No tenemos "de entrada" | ||
+ | |||
+ | |||
Cosas que necesitaremos: | Cosas que necesitaremos: | ||
- | * Instalación y actualización | + | * Instalación y actualización |
- | * Instalar la versión de subversion | + | * Instalar la versión de Subversion |
- | * Poder actualizar el servidor SVN para estar al día | + | * 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 |
- | * 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 | + | * Si el servidor es solo para SVN, por seguridad |
* Decidir nuestro " | * Decidir nuestro " | ||
- | * Aprender a usar los " | + | * Aprender a usar los " |
* Scripts: | * Scripts: | ||
- | * Script para añadir repositorios | + | * Script para crear un nuevo repositorio |
- | * Script para añadir | + | * Script para añadir |
- | * Script para crear el esqueleto de un proyecto nuevo (boilerplate/ | + | * Script para crear un esqueleto de aplicación en un proyecto nuevo (boilerplate/ |
- | * Script para listar repositorios/proyectos | + | * Script para listar |
* Script para buscar cadenas en ciertos archivos de todos los repositorios | * Script para buscar cadenas en ciertos archivos de todos los repositorios | ||
- | * Script para " | + | * Script para " |
- | * Script | + | * Scripts |
* Extras: | * Extras: | ||
- | * Uso de una rama " | + | * Uso de una rama " |
- | * Svnnotify (enviar email con diferencias | + | * Svnnotify (al hacer commit, envío automático de un e-mail al equipo con los cambios/ |
- | * Usuario | + | * Utilizar un usuario de "actualizaciones/ |
+ | * Uso de " | ||