¿Cómo configurar una revisión de código usando Gitlab?

85

¿Cómo se configura una revisión de código usando Gitlab? Lo veo enumerado como una función en el sitio web de Gitlab, pero parece que no puedo encontrar instrucciones sobre cómo configurar una (para el caso, cualquier enlace a un manual de usuario de Gitlab sería muy apreciado).

Algunas de mis búsquedas han indicado que las 'Solicitudes de combinación' son el camino a seguir ... pero las encuentro limitantes. Una solicitud de fusión emitida muestra todas las confirmaciones entre una rama y la otra. Parece que solo puedo ver las diferencias generadas para cada confirmación individual. Por ejemplo, digamos que tengo un archivo que quiero revisar. Es un archivo nuevo, pero le envié cambios en más de 10 confirmaciones en una rama de desarrollo. Si emito una solicitud de fusión para esa rama de desarrollo desde la integración, veo 10 confirmaciones, cada una de las cuales muestra los cambios incrementales realizados en el archivo ... Quiero revisar todo. ¡Es nuevo!

¿Estoy ladrando al árbol equivocado aquí? ¿Existe una herramienta de revisión de código real que pueda usar en GitLab, o las solicitudes de combinación son el camino a seguir, y si es así, las estoy usando incorrectamente? ¿Cuál es la mejor manera de configurar una revisión de código adecuada aquí?

djc6535
fuente
1
GitLab 6.4 y su vista de diferencias en paralelo pueden ayudar a revisar el código: vea mi respuesta a continuación
VonC
Con GitLab 13.1 (junio de 2020), ahora tiene revisiones de solicitud de combinación. Vea mi respuesta editada a continuación
VonC

Respuestas:

24

Nota: desde GitLab 6.4, la vista de diferencias en paralelo está disponible: consulte " Solicitud de extracción 5308 ".

(Julio 2013)Sin embargo, todavía no hay posibilidad de comentar en cada línea, solo a nivel de archivo.
Daniel Sokolowski menciona en los comentarios que los comentarios por línea ahora son compatibles (09/2014):

Los miembros de su equipo pueden comentar sobre la solicitud de fusión en general o en líneas específicas con comentarios de línea.

Eso todavía puede ayudar para la actividad de revisión de código.

https://f.cloud.github.com/assets/4224518/1558702/e0fe633a-4fa3-11e3-9388-3f3e445cb6d4.png


6 años después, para GitLab 13.1 (junio de 2020) :

Las revisiones de solicitudes de fusión se trasladaron al núcleo

Introducida originalmente en GitLab 11.4 como una función Premium de GitLab, las revisiones de solicitudes de combinación permiten a los revisores de solicitudes de combinación:

  • enviar varios comentarios a la vez,
  • reducir el ruido de notificación para el autor de la solicitud de combinación, y
  • lo que permite un proceso de revisión más coherente y racionalizado.

https://about.gitlab.com/images/13_1/batch_comments.png

Desde su introducción, hemos reevaluado su lugar en nuestro modelo de precios basado en el comprador y, como parte de 13.1, nos complace anunciar que esta función ahora se ha trasladado a GitLab Core.

Ver documentación y emisión

VonC
fuente
Los comentarios por línea ahora son compatibles: "Los miembros de su equipo pueden comentar sobre la solicitud de fusión en general o en líneas específicas con comentarios de línea". ( about.gitlab.com/2014/09/29/gitlab-flow )
Daniel Sokolowski
1
@DanielSokolowski ¡Genial! He incluido su comentario en la respuesta para mayor visibilidad.
VonC
9

He estado haciendo revisiones de código en Gitlab durante más de dos meses sin casi ningún problema. He configurado rss2email para enviar notificaciones por correo electrónico cada vez que un desarrollador impulsa nuevas confirmaciones. Luego utilizo la función de comentarios de Gitlab para que las confirmaciones hagan algunos comentarios sobre el código enviado.

Desafortunadamente, Gitlab no permite comentarios sobre los archivos en sí, solo en las confirmaciones (al igual que Github, supongo). Siempre que me encuentro en una situación en la que necesito comentar algo que me he perdido en una confirmación anterior, uso la herramienta de culpa para encontrar la confirmación que introdujo / cambió la sección de código que se va a comentar.

Está lejos de ser perfecto, pero está funcionando bien hasta ahora.

Herberth Amaral
fuente
1
En lugar de rss2email, uno podría usar las notificaciones de Gitlab para recibir notificaciones sobre empujes.
vadipp
Tengo el mismo problema / solución. Creo que sería una buena característica agregar que puede agregar un comentario a la confirmación correcta culpando a una línea en particular en la vista de diferencias o archivos (me refiero a la interfaz web navegando archivos o diferencias, no ejecutando la culpa).
AlejandroVD
2

Puede ver el código enviado en Merge Request para otro repositorio o en el repositorio actual.
ejemplo http://demo.gitlab.com/diaspora/diaspora/commits/master

Luego puede agregar comentarios a los cambios de archivo confirmados (botón Reply) o a toda la confirmación

ejemplo http://demo.gitlab.com/diaspora/diaspora/commit/42f47626890218a180870bc3f44ec57625b0779c

La comunicación resultante es la revisión del código. . Sin embargo, personalmente recomiendo hacer la revisión del código en una PC con comunicación cara a cara siempre que sea posible, y usar herramientas para registrar los resultados o cuando se necesite más formalidad.

Para una revista de archivos que tiene muchas confirmaciones, por ejemplo, http://demo.gitlab.com/diaspora/diaspora/blame/master/README.md, mírelo usando blamepara comprender quién hizo qué. Sin embargo, en esta vista no hay opción para comunicarse y agregar comentarios. Recomendaría simplemente agregar cambios como comentarios en este caso.

Paul Verest
fuente
7
Recibo un 404 para el primer, segundo y último enlace en su respuesta.
Bryan Oakley
1
Como dice en la página de inicio, demo.gitlab.com "ES UN SANDBOX - se reinicia cada hora" por lo que se borraron todos los ejemplos. Este no es un buen vehículo para dar ejemplos.
Uriah Blatherwick
Sí, reconsidere la posibilidad de configurarlo con ejemplos adecuados. Su respuesta parece ser un consejo sólido en general.
datos del
0

Si. Las solicitudes de fusión son la forma en que se realizan las revisiones por pares.

Debería haber una pestaña 'diff' que muestre los cambios de todas las confirmaciones (mencionado aquí: http://youtu.be/DyAX8ws5OIc?t=3m2s ).

El video también explica muy bien cómo se puede utilizar para la revisión por pares.

cebolleta
fuente
0

El caso de uso normal de las revisiones de código es revisar el código en una rama antes de fusionarlo con el maestro o similar. Tengo una situación en la que he desarrollado un proyecto y quiero que todos los miembros del equipo revisen todo el código.

Lo que hice fue:

Verifique la primera confirmación, realice un cambio, confirme y presione

git co -b FIRST_COMMIT eb67f06c2b3222c0219214b176c41922bc454881
vi README.md
git add README.md
git ci -m "First commit modified so can get full diff against it"
git push --set-upstream origin FIRST-COMMIT

Verifique la última confirmación, realice un cambio, confirme y presione

git co -b master
vi README.md
git add README.md
git ci -m "Last commit modified so can get full diff against it"
git push --set-upstream origin LAST-COMMIT

En GitLab / GitHub, cree una solicitud de extracción

  • Es uno que se fusiona de LAST_COMMIT a FIRST_COMMIT

¡Funciona para mi!

HankCa
fuente
¿No te deja eso con dos ramas "basura" en el repositorio y sin seguimiento de los comentarios en la rama maestra? Si los comentarios requieren cambios de código, ¿los fusiona para dominar?
user2084572
Sí, habrá ramas FIRST_COMMIT y LAST_COMMIT que son fáciles de eliminar ( git br --delete --force origin FIRST_COMMIT LAST_COMMIT; git br --delete --force FIRST_COMMIT LAST_COMMIT). Puede usar una rama maestra diferente para contener cambios a eso, o crear problemas separados manualmente. Y luego cree una o más ramas (por ejemplo, una por tema) si hay demasiados comentarios.
HankCa