El último día de la semana laboral estaba terminando ...

El último día de la semana laboral terminó. Me preparé café en la cocina de la oficina, preguntándome cómo podríamos reducir la cola del grupo de solicitudes, que ha crecido enormemente después de la introducción de la guía de revisión . Parece que las reglas simples causaron una larga correspondencia en los comentarios al conjunto de solicitudes entre los miembros del equipo de revisión y los desarrolladores del marco.

imagen

Nada presagiado. Estaba oscureciendo.

De repente, un chat en funcionamiento susurró con mensajes:
- ¿Por qué se eliminó mi solicitud de extracción?
- Y mis solicitudes de tirón golpearon!
- ¡Y mío!

Después de solo unos minutos de inversión, descubrimos que esto sucedió porque alguien eliminó la rama de trabajo de Bootstrap, donde más de 40 personas ingresaron de contrabando durante más de tres meses. Una vez más, para poder darse cuenta del alcance total del problema, cuarenta personas vertieron código allí durante más de tres meses.

imagen

Los colegas inmediatamente comenzaron a entusiasmarse con ideas de que todos tenemos copias locales de esta rama, y ​​creemos esta rama desde cero.

Según mi propia experiencia, sé que las decisiones apresuradas y la improvisación no conducen a nada bueno, así que les pedí a todos que no tomaran ninguna medida y literalmente "quiten las manos del teclado".

imagen

Entonces, la disposición es el viernes por la noche, una oficina casi vacía, una sucursal perdida con una enorme base de código. Si no resuelve este problema aquí y ahora, existe la posibilidad de que la situación empeore si otros desarrolladores que no conocen la situación actual se conectan al fin de semana (todos leemos el chat de trabajo con cuidado, ¿verdad? ).

En el chat, pregunté cortésmente quién eliminó la rama Bootstrap, y un desarrollador joven, que fue incluido recientemente en el trabajo, admitió que lo hizo por error. "Lo siento".

imagen

Tomo a un especialista que ha aparecido con éxito por el brazo, y nos apresuramos hacia un desarrollador joven que en este momento está experimentando una crisis existencial y cuyo lugar de trabajo, por casualidad, está en la misma oficina que nosotros.

Por supuesto, restauramos la rama, un poco de magia, y todo funcionó. No puede decir más de 20 solicitudes de extracción que han desaparecido en las entrañas de GitHub. Desagradable, pero no fatal.
Es hora de tomar un respiro, averiguar qué pasó y sacar algunas conclusiones.

imagen

La pregunta principal es ¿por qué? La respuesta, en general, es trivial: por accidente. Algo estaba mal con el código que estaba comprometido con su propia rama de trabajo: nada criminal, solo era un código feo, e incluso si revierte el compromiso, aún permanece en la historia. Por lo tanto, el desarrollador decidió demoler toda su rama de trabajo y recrearla. Desde cero Y la rama Bootstrap quedó bajo una mano ardiente. Viernes. Noche. Misklik, si.

imagen

GitHub le permite cancelar la operación de eliminación, pero solo hasta que la página se actualice y esta oportunidad no se haya utilizado.

¿Podría haberse evitado esta situación? Sí tu puedes. Por defecto, cualquier persona con acceso de escritura a su repositorio puede eliminar cualquier rama. Sin embargo, GitHub le permite crear una regla de protección de sucursal para una o más sucursales.

imagen

Donde es importante asegurarse de que la casilla de verificación correspondiente no esté marcada.

imagen

Esto no se hizo para la rama de arranque, y nos alcanzó.

En el residuo seco:

  1. Salvaron la rama.
  2. Ahora, en cualquier rama en la que contribuya más de una persona, instalamos la regla de Protección. Lo que recomiendo es no olvidarse de hacer todo.
  3. Soporte para el paquete BootStrap en JDI Light, eventualmente implementamos y lanzamos. Pero qué es y por qué, esa es otra historia ...

All Articles