Qué es un pull request apilado
Terminaste un cambio grande.
Toca varias partes del código, el diff es largo y ya sabes que un pull request gigante es difícil de revisar.
Antes de escribir más código, enfrentas una decisión real: mantenerlo como un solo pull request o dividirlo en una cadena de pull requests apilados.
En esa cadena, cada capa se construye sobre la anterior.
Esta guía te ayuda a decidir antes de empezar.
Luego describe las obligaciones de mantenimiento que GitHub documenta para las pilas, para que sepas a qué te comprometes en cualquier caso.
GitHub describe los pull requests apilados como una forma de dividir cambios grandes de código en una cadena de pull requests más pequeños y dependientes.
Puedes revisar y fusionar cada uno de manera independiente.
Cada pull request de la pila tiene como base la rama que está debajo.
La capa inferior es lo primero que ven los revisores y lo primero que puede fusionarse; las capas superiores solo tienen sentido una vez que existen las capas inferiores.
La palabra dependiente importa.
A diferencia de dividir el trabajo en pull requests sin relación entre sí, una pila es un solo cambio cortado verticalmente.
Si la capa inferior cambia, todo lo que está encima normalmente necesita un rebase.
Cuándo una pila encaja con tu cambio
No existe una regla universal que diga que un cambio grande debe apilarse.
La decisión depende de tres preguntas que puedes responder antes de escribir código.
- ¿El cambio tiene capas revisables de forma independiente? Si puedes describir cada parte en una frase, por ejemplo un cambio en el modelo de datos, luego una interfaz construida sobre él y luego una función que usa esa interfaz, una pila da a los revisores un diff más pequeño que analizar en cada paso. Si cada parte solo tiene sentido en el contexto del conjunto, dividir puede crear pull requests que los revisores no pueden aprobar por sí solos.
- ¿Pueden los revisores empezar por la capa inferior mientras las superiores siguen en desarrollo? Una pila rinde cuando la capa inferior puede revisarse y fusionarse mientras sigues construyendo hacia arriba. Si tus revisores van a esperar la pila completa de todos modos, añadiste estructura sin ganar retroalimentación temprana.
- ¿Puede tu equipo asumir la carga de ramas dependientes? Las pilas requieren trabajo continuo de rebase y reestructuración, que la siguiente sección describe. Si tu equipo rara vez hace rebase y no tiene disposición a hacerlo, un solo pull request, o una división realmente independiente, puede ser la opción más honesta.


