robot de la enciclopedia para niños

Subversion (software) para niños

Enciclopedia para niños
Datos para niños
Subversion
Apache Subversion logo.svg
Información general
Tipo de programa Control de versiones
Autor CollabNet
Desarrollador Comunidad, y desarrolladores de CollabNet, Elego, VisualSVN, WANdisco
Lanzamiento inicial 20 de octubre de 2000
Vulnerabilidades CVE-2017-9800
Descubridor Jim Blandy
Licencia Licencia Apache
Idiomas Multilingüe
Información técnica
Programado en C
Versiones
Última versión estable 1.14.4 (info) (8 de octubre de 2024 (8 meses y 30 días))
Archivos legibles
  • SVN dump format (v1)
  • SVN dump format (v2)
  • SVN dump format (v3)
  • SVN dump format (generic)
Archivos editables
  • SVN dump format (v1)
  • SVN dump format (v2)
  • SVN dump format (v3)
  • SVN dump format (generic)
Enlaces
Sitio web oficial
Repositorio de código
Seguimiento de errores

Apache Subversion, a menudo llamado SVN, es una herramienta de control de versiones de código abierto. Funciona como una biblioteca central donde se guardan todos los cambios de un proyecto. Imagina que es como una máquina del tiempo para tus archivos.

Este programa es software libre y usa una licencia especial llamada Apache/BSD. Esto significa que cualquiera puede usarlo, modificarlo y compartirlo. SVN guarda solo las diferencias entre las versiones de un archivo. Así, ocupa menos espacio en tu disco duro. Puedes crear, copiar y borrar carpetas como si estuvieras en tu propia computadora.

Subversion permite que varias personas trabajen en el mismo proyecto al mismo tiempo. Pueden estar en diferentes computadoras y lugares. Esto hace que el trabajo en equipo sea mucho más fácil y rápido. Si alguien comete un error, es sencillo volver a una versión anterior.

¿Qué es el control de versiones?

El control de versiones es un sistema que registra los cambios que se hacen a un archivo o a un grupo de archivos a lo largo del tiempo. Esto permite que puedas recuperar versiones específicas más tarde. Es muy útil para los equipos que desarrollan programas de computadora.

Características principales de Subversion

Subversion tiene varias características que lo hacen una herramienta poderosa.

Ventajas de usar SVN

  • Seguimiento de cambios: Puedes ver la historia completa de los archivos y carpetas. Esto incluye cuándo se copiaron o se les cambió el nombre.
  • Cambios seguros: Las modificaciones, incluso si afectan a muchos archivos, se guardan de forma completa. Esto significa que no se pierden partes de los cambios.
  • Creación de versiones: Es muy eficiente crear "ramas" (versiones paralelas) y "etiquetas" (versiones fijas). Esto es más rápido que en otros sistemas.
  • Envío de diferencias: Solo se envían los cambios que se hicieron, no el archivo completo. Esto ahorra tiempo y ancho de banda.
  • Funciona con Apache: Puede usarse con el servidor web Apache. Esto permite que otros programas usen Subversion de forma sencilla.
  • Manejo de archivos: Funciona bien con archivos de cualquier tipo, incluso fotos o videos. Otros sistemas a veces tienen problemas con esto.
  • Bloqueo de archivos: Puedes bloquear un archivo para que solo una persona lo edite a la vez. Esto es útil para archivos que no se pueden combinar fácilmente.
  • Seguridad: Si se usa con Apache, puede usar sus opciones de seguridad. Esto ayuda a proteger tus archivos.
Archivo:Svn 3D-tree
Un ejemplo de cómo se organizan los proyectos en Subversion.

Aspectos a mejorar de SVN

  • Cambio de nombres: Cuando cambias el nombre de un archivo, Subversion lo ve como si lo hubieras copiado y luego borrado el original.
  • Gestión de parches: No es tan fácil seguir los cambios que se aplican entre diferentes versiones paralelas de un proyecto.

¿Quién usa Subversion?

Subversion es muy popular en el mundo del software libre. Muchos proyectos importantes lo han usado, aunque algunos han cambiado a otras herramientas más nuevas como Git.

  • Proyectos que lo usaron:
  • Servicios que ofrecen SVN gratis:
    • SourceForge
    • Google Code
    • Project Kenai
    • CodePlex
    • Forja de Conocimiento Libre de la Comunidad RedIRIS
    • GitHub

Subversion también es usado por muchas empresas. En 2007, un estudio lo reconoció como el líder en sistemas de control de versiones.

Cómo organizar tu proyecto en Subversion

Para usar Subversion de la mejor manera, se recomienda una estructura de carpetas específica. Se llama TTB, por las iniciales de sus tres carpetas principales: Trunk, Tags y Branches.

  • Trunk: Es la rama principal de tu proyecto. Aquí es donde se desarrolla la versión más reciente.
  • Tags: Aquí se guardan las versiones "cerradas" o finales de tu proyecto. Una vez que una versión está aquí, no se debe modificar.
  • Branches: Son ramas paralelas del proyecto. Se usan para desarrollar nuevas funciones o corregir errores sin afectar la versión principal.

Operaciones comunes con Subversion

Aquí te explicamos cómo se trabaja normalmente con Subversion.

Trabajar en equipo

Cuando varias personas trabajan en el mismo código, Subversion permite que lo hagan al mismo tiempo. No es necesario bloquear partes del proyecto. Si dos personas cambian lo mismo, Subversion intenta combinar los cambios automáticamente. Si no puede, te pedirá que lo hagas manualmente.

  • ¿Cuándo sincronizar?

Antes de empezar a trabajar, asegúrate de tener la última versión del proyecto. Cuando termines tus cambios, también debes sincronizar para que no haya conflictos con lo que otros hayan guardado.

  • Formas de sincronizar:
    • Checkout: Descarga una copia completa del proyecto a tu computadora. Es útil para empezar un proyecto nuevo.
    • Update: Descarga solo los cambios que se hicieron desde la última vez que sincronizaste.
    • Commit: Sube tus cambios al proyecto central. Subversion solo te dejará hacerlo si no hay conflictos con los cambios de otros.

Guardar una versión (Crear un Tag)

A veces, cuando terminas una parte importante de tu proyecto, quieres guardar una "foto" de ese momento. Esto se llama crear un Tag. Es como hacer una copia de seguridad de esa versión. Si más tarde necesitas volver a esa versión, puedes hacerlo fácilmente.

  • ¿Cuándo hacerlo?

Se recomienda crear un Tag cada vez que alcances un punto importante en el desarrollo de tu proyecto.

  • Consejo importante:

Una vez que creas un Tag, no lo modifiques. Si lo haces, esa "foto" de tu proyecto ya no será la misma.

Crear una rama de código (Crear un Branch)

A veces, necesitas trabajar en una nueva función o corregir un error sin afectar la versión principal de tu proyecto. Para esto, puedes crear un Branch. Es como hacer una copia del proyecto para trabajar en ella por separado. Los cambios que hagas en el Branch se pueden combinar con la versión principal más tarde.

  • ¿Cuándo crear un Branch?

Puedes crear un Branch si necesitas desarrollar algo grande que podría hacer que el proyecto principal sea inestable por un tiempo. También es útil si tienes que corregir un error en una versión que ya está en uso, mientras sigues desarrollando la siguiente versión.

  • Consejo importante:

Aunque es fácil crear Branches, no abuses de ellos. Demasiadas ramas pueden hacer que el proyecto sea difícil de manejar. Los Branches suelen ser temporales.

Combinar cambios (Merge)

Después de trabajar en un Branch, es posible que quieras que esos cambios se apliquen a la versión principal de tu proyecto. Para esto, usas el comando Merge. Este comando combina los cambios de una rama a otra.

  • ¿Cuándo combinar?

Siempre que termines un desarrollo en una rama paralela y quieras que esos cambios estén en la rama principal.

  • Consejo importante:

Usa siempre el comando Merge. Intentar copiar los cambios manualmente puede llevar a errores y toma mucho más tiempo.

Ejemplo de un proyecto con Subversion

Imagina que estás creando un videojuego. Así es como podrías usar Subversion:

  • Inicio (Rev. 10): Subes el código inicial de tu juego al Trunk.
  • Desarrollo (Rev. 20): Tú y tu equipo trabajan en el Trunk para crear la primera versión del juego (versión 1.0.0).
  • Lanzamiento (Rev. 30): Terminas la versión 1.0.0. Creas un Tag para guardarla y empiezas a trabajar en la versión 2.0.0 en el Trunk. La versión 1.0.0 se lanza al público.
  • Mantenimiento (Rev. 40): Decides ofrecer actualizaciones para la versión 1.0.0. Creas un Branch para la versión 1.x. Así, puedes trabajar en las actualizaciones sin afectar el desarrollo de la versión 2.0.0.
  • Corrección de errores (Rev. 50): Encuentras un error en la versión 1.0.0 que ya está en el mercado. Recuperas el Tag de la versión 1.0.0 y creas un nuevo Branch para corregir ese error. Esto te permitirá crear la versión 1.0.1.
  • Trabajo paralelo (Revs. 60–80): Sigues trabajando en la versión 2.x en el Trunk, en las actualizaciones de la versión 1.x en su Branch, y en la corrección del error en el Branch de la versión 1.0.x.
  • Lanzamiento de corrección (Rev. 90): Terminas la versión 1.0.1 con el error corregido. Creas un Tag para esta nueva versión.
  • Combinar cambios (Revs. 100-110): Como el error de la versión 1.0.0 también podría estar en las versiones 1.x y 2.x, combinas los cambios de la versión 1.0.1 con el Trunk y el Branch de la versión 1.x.
Archivo:SVN Branches and Trunk
Método propuesto para desarrollar versiones en SVN

Programas para usar Subversion

Existen varias herramientas que te ayudan a interactuar con Subversion:

  • TortoiseSVN: Se integra con el explorador de archivos de Microsoft Windows. Es muy popular en este sistema operativo.
  • ViewVC: Es una interfaz web que te permite ver los cambios en tu navegador.
  • Para Mac OS X: Puedes usar SvnX, RapidSVN y Zigversion.
  • KDESvn: Funciona con el entorno de escritorio KDE y es similar a TortoiseSVN.

Ver también

  • Control de versiones
  • Git
  • Bazaar (software)
  • Mercurial

Véase también

Kids robot.svg En inglés: Apache Subversion Facts for Kids

kids search engine
Subversion (software) para Niños. Enciclopedia Kiddle.