Página principal » cómo » Seguimiento de versiones con Subversion (SVN) para principiantes

    Seguimiento de versiones con Subversion (SVN) para principiantes

    ¿Alguna vez ha querido trabajar en un proyecto con la capacidad de rastrear sus cambios y revertirlos? How-To Geek explica cómo usar el popular sistema de seguimiento de versiones, Subversion (a.k.a SVN).

    Imagen claramente ambigua.

    Prelog

    Esta guía intentará ofrecerle la posibilidad de utilizar el cliente de Subversion en general y, si tiene uno, en su enrutador * DD-WRT. Esta guía no es de ninguna manera una guía definitiva para Subversion y se puede encontrar mucha información en el Libro Rojo de Subversion. Esta guía solo está destinada a darle una respuesta abreviada a las preguntas más básicas..

    Visión general

    Podría haber varias razones por las que desearía poder "verificar" el último código para un proyecto de software que utiliza un sistema de control de versiones. Si lo hace, le permite beneficiarse de los últimos cambios aún no publicados, la ayuda con las pruebas e incluso el desarrollo. En esta guía, repasaremos algunos términos básicos de SVN, mostraremos cómo instalar el cliente SVN en Linux, Windows y si tiene uno, su enrutador DD-WRT habilitado para OPKG. También hemos incluido un ejemplo de un proyecto que puede retirar y usar para dicho enrutador.

    Que es Subversion?

    Subversion no es de ninguna manera el único sistema de control de versiones que existe y las alternativas incluyen Git (creado por Linus Torvalds, el fundador del kernel de Linux), Mercurial y PerForce, por nombrar algunos. Dicho esto, es uno de los gratuitos, está maduro y se usa ampliamente en todo el mundo..

    Fuera de la Subversión “Libro Rojo”:

    Subversion es una fuente libre / abierta sistema de control de versiones (VCS). Es decir, Subversion administra archivos y directorios, y los cambios realizados en ellos, a lo largo del tiempo. Esto le permite recuperar versiones anteriores de sus datos o examinar el historial de cómo cambiaron sus datos. En este sentido, muchas personas piensan que un sistema de control de versiones es una especie de "máquina del tiempo".

    Nota: este libro es la última recopilación de conocimientos sobre subversión y le recomendamos que la consulte en todos los temas relacionados con Subversion.

    ¿Qué es el versionado??

    El control de versiones es un proceso en el que se guarda el estado de un proyecto en un momento determinado. Este tipo de procedimiento se usa a menudo para administrar el desarrollo de software, de modo que el trabajo puede continuar mejorando el proyecto o agregar funciones, al mismo tiempo que puede hacer un seguimiento de lo que ha cambiado desde el último punto general de "guardar". Para elaborar, este tipo de procedimiento puede ser útil para una sola persona, pero más aún para un grupo de personas, todas trabajando en el mismo proyecto. Esto se debe a que, generalmente, cuando se trabaja en un proyecto como un grupo, hay una distribución de responsabilidades y diferentes personas cambian diferentes aspectos del proyecto. Sin un mecanismo de control de versiones, sería muy difícil mantener a todos sincronizados con los últimos cambios de trabajo de todos los demás.

    Terminología

    El repositorio
    El repositorio es la ubicación donde se guardan todos los datos de los diferentes lugares. En el mundo de Subversion, desde el punto de vista del cliente, es el servidor el que contiene la base de datos del proyecto. Esta base de datos contiene todos los archivos que forman parte del proyecto con todas sus versiones anteriores.

    Revisión

    Cuando se crea un repositorio, se le asigna un número de revisión de cero (0). Este número se incrementa en uno (1) cada vez que se realiza una confirmación. El número de revisión es global para el repositorio. Es decir, que no hay un número de revisión individual para archivos individuales en el repositorio, incluso si nada cambió en ese archivo para ese compromiso específico.

    La copia de trabajo

    Una copia de trabajo es una copia local (o "pago") de una versión en particular. Por lo general, esta versión cuando se retira es la "más reciente" (también llamada "cabeza"), pero se puede solicitar una anterior. El usuario puede hacer con la copia local cualquier cosa que desee, con el conocimiento de que, en el peor de los casos, podría simplemente volver a verificar el código. Además, esta copia es “privada”. Esto se debe a que, hasta que no actualices o confirmes tu copia, no verás los cambios de otras personas, ni ellos verán los tuyos..

    Actualización y resolución de conflictos

    Se puede actualizar una copia de trabajo local. Es decir, si "verificó" una determinada versión y, mientras trabajaba, la versión en el repositorio se ha actualizado, puede actualizar su copia de trabajo a la última versión. De hecho, el servidor evitará que confirme sus cambios antes de actualizar a la última versión para que coincida con el repositorio. Esto se hace para forzarlo a resolver conflictos localmente, incluso antes de que piense en realizar cambios en el repositorio.

    Fusionando

    La fusión se refiere al proceso mediante el cual, el código modificado se combina en una versión. También puede implicar la resolución de conflictos..

    Se compromete

    Confirmar es el proceso en el que los cambios que ha realizado en su copia local se fusionarán de nuevo en el repositorio. Esta es la parte más peligrosa del proceso, ya que es aquí donde los cambios que ha realizado pueden afectar a otras personas que utilizan el mismo repositorio. Es por eso que esto suele hacerse después de cierta consideración, con el consenso del equipo y después de que haya resuelto cualquier conflicto de fusión.

    El flujo de trabajo

    El flujo de trabajo más básico desde la perspectiva del usuario cuando se usa Subversion es este:

    1. Verifique el código existente (generalmente el "encabezado").
    2. Haz cambios, agrega archivos y generalmente desarrolla el código..
    3. Actualice a la última versión para asegurarse de que su copia local esté sincronizada con las actualizaciones en el repositorio.
    4. Combinar localmente y resolver conflictos si es necesario.
    5. Confirmar los cambios combinados en el repositorio..
    6. Ir al paso 2.

    Pongamos manos a la obra

    Instalar el cliente

    Para poder usar Subversion, necesita instalar el cliente en su máquina.

    En linux

    Solo necesitas instalar el paquete. En Ubuntu / Mint, esto se haría con:

    sudo aptitude install subversion

    En DD-WRT

    Si ha seguido el "Cómo instalar software adicional en su enrutador doméstico (DD-WRT)", puede instalar el cliente svn simplemente emitiendo:

    actualización de opkg; opkg install subversion-client

    En Windows

    Si bien los usuarios de geek profundos pueden comenzar a olvidar que la GUI incluso existe a veces, no todos lo tienen. Si desea utilizar un cliente de Windows para conectarse a un repositorio de SVN, el más popular es, por mucho, el de "Tortuga". Para usarlo, simplemente descargue el programa e instálelo en la forma habitual de "siguiente, siguiente, finalizar".

    Crear el "repositorio"

    Si bien no vamos a entrar en detalles sobre cómo configurar un servidor de subversión en esta guía, la alternativa de Google no es un mal comienzo para el usuario novato. Para crear un repositorio de Google:

    • Diríjase al sitio web de hospedaje de Google Code y "cree" un nuevo proyecto.
    • En la página siguiente, complete los campos requeridos y seleccione el tipo de "sistema de control de versiones" para ser subversión.

      Nota: es posible que desee ver cuál es la diferencia entre las licencias que ofrece Google, antes de seleccionar una para el proyecto..
    • Haga clic en "Crear proyecto".
    "Checkout" su copia de trabajo

    Una vez que haya creado su proyecto, debería poder encontrar las instrucciones sobre cómo acceder a él en la pestaña "Fuente".

    Lo bueno del código de Google es que habilitará una versión anónima de solo lectura para su proyecto. Si no quieres lidiar con la molestia de crear tu propio proyecto, puedes anónimamente revisar el repositorio de este escritor.

    Una nota sobre el proyecto hotfortech: este proyecto pretende ser un contenedor para las características que se han agregado a DD-WRT en How-To Geek (que yo personalmente uso) más algunos ajustes personales. Si bien este proyecto está orientado a trabajar en conjunto con los artículos publicados aquí en howtogeek, sigue siendo mi proyecto privado. Es decir, es muy adecuado para mi enrutador Buffalo (arquitectura AR71xx), mis caprichos personales y es propenso a los borkage ocasionales..

    En Linux / DD-WRT

    Cree el directorio para trabajar, por ejemplo en DD-WRT, que podría ser:

    mkdir -p / jffs / svn; cd / jffs / svn

    El comando completo en Linux consiste en el comando SVN, la directiva de "pago y envío", la dirección del repositorio y el directorio para el pago. Cree un directorio vacío y ejecute el siguiente comando:

    svn checkout http://hotfortech-dd-wrt.googlecode.com/svn/trunk/ hotfortech-dd-wrt-read-only

    Tenga en cuenta que en el ejemplo anterior, la versión de solo lectura está siendo revisada. Si optó por crear su propio repositorio, deberá utilizar el enlace httpS.

    En Windows

    Debido a que tortoise es una extensión de shell, deberá usar el menú contextual del explorador de archivos de Windows (clic derecho) para usarlo. De hecho, si intenta invocarlo desde el menú de inicio, obtendrá:

    • Crear un directorio vacío.
    • Haga clic derecho en él para abrir el menú contextual.
    • Seleccione "SVN Checkout":
    • Copie y pegue el enlace del proyecto (si tiene uno) en el cuadro de texto "URL":
    • Dependiendo del tamaño de su proyecto, esto puede llevar un tiempo, pero cuando se haya completado el "Pago", debería ver algo como:
    • Puedes comenzar a desarrollar.

    “Actualice” y “Combine” su copia de trabajo
    Si está trabajando en el código con colegas, o si usted mismo está actualizando el código desde varias ubicaciones (es decir, una computadora portátil, una computadora de escritorio o incluso un enrutador), tendrá que actualizar su copia de trabajo antes de confirmar los últimos cambios..

    En Linux / DD-WRT

    El comando para hacer esto en estos sistemas POSIX es simplemente:

    svn up

    En Windows

    • Haga clic derecho en el directorio de trabajo y seleccione "SVN Update":
    • Si encuentra conflictos, intente seguir las instrucciones en pantalla y use su criterio para saber qué hacer al respecto..

    “Confía” tus cambios
    Eso es todo, debe estar libre de conflictos y listo para actualizar el repositorio con sus cambios.
    El único punto a tener en cuenta aquí es que es una práctica común agregar un mensaje de "registro" a la confirmación, para poder recordar fácilmente por qué se realizaron los cambios. De hecho, el repositorio de Google hace que este sea un requisito previo obligatorio para cometer.

    En Linux / DD-WRT

    Este es un ejemplo del compromiso que hice con el proyecto hotfortech que lo elevó a la versión 19:

    svn commit -m "actualizado para reflejar el nuevo enlace del paquete ant-ads"

    En Windows

    • Haga clic derecho en el directorio de trabajo y seleccione "SVN Commit":
    • Debería ser recibido por una ventana que le permita anotar un mensaje de registro:
    • Presione OK y cuando se le solicite una contraseña, proporcione la contraseña generada por Google.
    • Si el compromiso fue exitoso, deberías ver algo como:
    • Eso es, deberías poder cometer como un BOSS..

    Observaciones finales
    Esto debería ser suficiente para empezar. Se recomienda que lea los libros de referencia de SVN para obtener un conocimiento más profundo y mejor de todos los usos, opciones y advertencias de SVN. Además, le recordamos (nuevamente) que Subversion NO es el único sistema de control de versiones que existe y GIT (que fue creado por Linus Torvalds, el fundador del kernel de Linux) parece estar ganando popularidad en los últimos años..

    Si opta por ejecutar "running-config.sh" desde el proyecto hotfortech en su enrutador, encontrará que se instalará actualmente para usted: el paquete anti-ads, el script Opkg geek-init, así como cosas como la GNU completa "ls", "less", "BASH" y más.

    /jffs/svn/hotfortech-dd-wrt/running-conf.sh

    Más características están pendientes y serán añadidas en el futuro..


    Los administradores del sistema codificarán su salida de la codificación..