Uso de solicitudes de extracción como revisiones de código

Al desarrollar software, el control de fuente hace que nuestras vidas sean mucho más fáciles. Desde el seguimiento de nuestros cambios hasta la introducción de la colaboración de código, ayuda a aumentar nuestra productividad. Además, el hecho de que hay una serie de herramientas diferentes disponibles (Subversion, Perforce, Mercurial, etc.) lo hace aún mejor al brindarnos opciones para elegir..

En esta serie, estamos analizando específicamente Git y el uso de Bitbucket y cómo pueden ayudarnos en nuestro trabajo diario. En este artículo, nos centraremos específicamente en el uso de Bitbucket para la discusión de características, el seguimiento de errores, el etiquetado de versiones y más.

Una de las características principales de Git (y, por lo tanto, Bitbucket) es la idea de las solicitudes de extracción. En este artículo, analizaremos las solicitudes de extracción y cómo no solo nos benefician desde el punto de vista de control de origen, sino también desde el punto de vista de la revisión por pares..

Un manual de solicitud de extracción

Cuando alguien emite una solicitud de extracción en su proyecto, significa que está solicitando que su código se fusione en el código base. Es decir, están solicitando que ingreses su código en el proyecto.

Pero nosotros, como mantenedores, tenemos la capacidad de revisar, probar y fusionar los cambios introducidos por la solicitud. No se equivoque: jugamos un papel muy importante para decidir si la solicitud en particular cumple con los estándares y objetivos de nuestro software..

Si se encuentra una discrepancia, podemos pedirle al colaborador que actualice la solicitud de extracción limpiando el código, resolviendo cualquier problema pendiente o mejorando la calidad general del código. Por otro lado, también podemos rechazar la solicitud de extracción si decidimos que no cumple con los criterios que consideramos necesarios para el proyecto..

Para emitir una solicitud de extracción, una persona debe primero bifurcar el código base del proyecto inicial. Esto significa que toman una instantánea de la base de código en su estado actual, crean un conjunto de cambios y luego los comprometen en su copia personal del código. A partir de ahí, el desarrollador solicita que el cambio se introduzca en el repositorio inicial.

Como se mencionó anteriormente, las solicitudes de extracción pueden constar de varias cosas:

  • Corrección de errores
  • Traducciones
  • Adiciones de características
  • Adición o modificación a la documentación.
  • … y así

Utilizado por equipos de todos los tamaños, tanto internos como distribuidos, la gestión de control de fuente es una parte valiosa del desarrollo de software. El problema es que, cuando se trata de trabajar con sistemas de control de origen, los usuarios tienen diferentes roles de permisos..

Es decir, cuando se trata de mantener un repositorio, algunos desarrolladores tendrán acceso de solo lectura mientras que otros tendrán acceso de lectura y escritura. Y aquellos con acceso de escritura son los responsables de mantener las solicitudes de extracción.

Bitbucket y solicitudes de extracción

En esta serie de artículos, analizamos cómo Bitbucket puede mejorar el flujo de trabajo de su equipo cuando se trata de desarrollar software. Al igual que lo hemos discutido anteriormente, Bitbucket permite que las personas participen en el proyecto, ya sea mediante la confirmación del código, la revisión de las solicitudes de extracción y la fusión de dichas solicitudes..

Una de las características más interesantes de Bitbucket es que le permite agregar múltiples revisores a una única solicitud de extracción, que puede aprobar (o rechazar) la solicitud. Esto, a su vez, le da a aquellos que mantienen el repositorio la capacidad de revisar la calidad del código que se especifica en la solicitud de extracción.

Tal vez les agradecerán las adiciones al proyecto, tal vez no. Cualquiera que sea el caso, Bitbucket les da a los mantenedores las herramientas necesarias para enviar comentarios sobre cualquier solicitud de extracción determinada.

Finalmente, Bitbucket admite comentarios en línea en cada solicitud de extracción, lo que facilita mucho el análisis de una línea, bloque o módulo de código específico..

En general, este enfoque hace que sea mucho más fácil determinar si una solicitud de extracción debe combinarse o no, si debe rechazarse, o qué áreas de la misma deberían cambiarse antes de fusionar la solicitud.

Aprender por ejemplo

Tenedor de un repositorio

Para comenzar, visite el tablero de un proyecto en su navegador web y luego haga clic en Tenedor para bifurcar el repositorio.


A continuación, se le presentará un formulario que le permite especificar un nombre personalizado y una descripción personalizada. También tiene la capacidad de establecer la visibilidad y los permisos del repositorio entre otras características.

Si es responsable del código que se va a escribir y desea acceder a herramientas adicionales para facilitar el trabajo con un equipo en torno al código base, seleccione el Gestión de proyectos Opción desde el elemento de interfaz correspondiente..

Después de hacer clic en el Repositorio tenedor Botón, obtendrá la última versión de la base de código del proyecto y la tendrá disponible en un repositorio que es todo suyo. Para verificar el código de su máquina local, puede usar un cliente Git como SourceTree, o puede hacerlo desde la línea de comandos emitiendo los siguientes comandos en el directorio local donde se almacena su proyecto:

$ git clone https: //[email protected]/yourusername/reponame.git

Observe que la URL que hemos especificado anteriormente está visible en el panel de su repositorio en el panel de Bitbucket.

Después de verificar el código, puede comenzar a trabajar en el proyecto en su máquina local. A medida que introduzca cambios, querrá confirmar esto en el repositorio. Para hacer esto, primero realice su trabajo y luego comprometa su trabajo en el repositorio..

Haz tus cambios

En este punto, estamos listos para empezar a trabajar. Lo que esto significa variará dependiendo de la naturaleza de su proyecto: tal vez esté trabajando para cerrar un error, quizás esté refactorizando una función, o tal vez esté agregando una característica.

En cualquier caso, una vez que se hayan realizado los cambios, puede emitir un compromiso al repositorio. Esto significa que está tomando los archivos en los que ha trabajado y los está combinando en una única colección de cambios que se llama un conjunto de cambios. Los conjuntos de cambios suelen ir acompañados de un mensaje corto que explica qué se cambió y por qué.

Cuando confirma el código, al menos al principio, en realidad no está presionando nada en el repositorio. En otras palabras, si esta es su primera confirmación, entonces su código no se almacena en línea en Bitbucket. En su lugar, los cambios solo existen en su máquina local. Una vez que haya realizado su empuje inicial, el código existe en el repositorio.

En última instancia, el control de fuente proporciona una manera de mantener un historial limpio de sus cambios, así como una manera fácil de retroceder a un cierto punto en el tiempo.

Emitir una solicitud de extracción

Una vez que haya presionado un cambio en el repositorio remoto (ya sea a través de un cliente o a través de la línea de comandos), está listo para iniciar una solicitud de extracción. Esto significa que está listo para tomar el código que ha insertado en su base de código y preguntar a los mantenedores originales si fusionarán el código en su proyecto..

Hacer esto dentro de la aplicación Bitbucket es fácil. Simplemente vaya al panel del repositorio bifurcado y luego haga clic en Crear solicitud de extracción.

A continuación, se le presentará una interfaz que le permitirá crear su solicitud de extracción. La solicitud incluirá su repositorio, el repositorio original y un título y descripción.

Desde aquí, seleccionará su repositorio como el repositorio de origen y el repositorio de base de código original como el repositorio de destino. Es posible que deba cambiarlos dentro del panel de control según sus requisitos.

Por ejemplo, si nombró su copia del código "desarrollar" al emitir el comando "git add remote" anteriormente, pero la base de código original usa la palabra "maestro", entonces deberá asegurarse de haber seleccionado los valores apropiados.

Finalmente, aquí es donde Bitbucket le permite agregar revisores a una solicitud de extracción. Como se mencionó anteriormente, esto hace que sea mucho más fácil atraer la atención de los encargados de los proyectos para que puedan revisar su trabajo, ofrecer cualquier comentario que puedan tener y fusionar (o rechazar) su solicitud..

Siguiendo con la solicitud de extracción

Bitbucket actualiza automáticamente su solicitud de extracción cuando coloca el código en el directorio de origen para que el revisor del proyecto siempre vea el último código que puede extraer.. 

Cuando el revisor solicita un cambio específico, él / ella puede simplemente empujar los cambios solicitados en su copia del repositorio, es decir, el repositorio bifurcado.

Gestión de solicitudes de extracción

Si mantiene un repositorio que recibe solicitudes de extracción de otros, entonces es probable que observe que su repositorio recibirá tanto una notificación en el panel de la aplicación de Bitbucket como en su correo electrónico..

Además, si eres un revisor, también recibirás una notificación y un correo electrónico. Para administrar todas las solicitudes de extracción entrantes, haga clic en el enlace "Solicitudes de extracción" y seleccione la solicitud de extracción con la que desea trabajar.

Como puede ver, Bitbucket proporciona una interfaz limpia donde puede discutir y revisar las solicitudes de extracción. Tanto los mantenedores como los espectadores pueden rechazar, fusionar o solicitar que se realice un trabajo adicional en una solicitud de extracción determinada.

Suponiendo que tiene una solicitud que está lista para fusionarse, entonces haga clic en la opción específica para hacer exactamente eso. Si trabajas con varios revisores, Bitbucket también deja claro quién aprobó la solicitud al aplicar una marca de verificación en su avatar. Obviamente, mientras más controles aparezcan entre los revisores, más probable será que la solicitud esté lista para fusionarse.

¿Pero qué sucede si falla la fusión de la solicitud de extracción? En este punto, se debe realizar una fusión manual (que es una parte común de la administración del código fuente, aunque fuera del alcance de este artículo), después de lo cual el código se confirmará en el repositorio..

Conclusión

Claramente, el control de fuente ofrece muchas ventajas para los equipos; sin embargo, las solicitudes de extracción son una característica poderosa que facilitan la contribución a un proyecto y hacen que otros revisen su código, lo comenten y lo mejoren antes de integrarlo en el código base..

Esto solo puede ayudarlo a convertirse en un desarrollador mucho mejor a medida que aprende de la experiencia de otros desarrolladores que mantienen el proyecto más grande. Si aún no lo ha hecho, intente usar las solicitudes de extracción en su flujo de trabajo para ayudar a mejorar su código y recopilar comentarios de otros.

.