# Reporte de Rollback Servidor - SmartPlus

Fecha: 2026-05-22  
Servidor: `5.161.118.178`  
Ruta app: `/var/www/html/smart`  
Usuario SSH: `root`  
Objetivo de rollback: `c519d62e2`

## Resumen ejecutivo

Se ejecuto rollback completo del checkout de servidor al commit `c519d62e2` y se dejo el arbol Git limpio en ese punto.

- Estado inicial: rama `integrate/upstream-master-20260515-block2`, `HEAD=f4109d88`, arbol sucio con `8837` cambios.
- Estado final: `HEAD=c519d62e2`, arbol limpio (`post_dirty_count=0`).
- Se creo rama de respaldo para reversa tecnica: `backup/pre-rollback-20260522-183908`.

## Evidencia generada en servidor

Directorio de evidencia:

- `/root/rollback-smartplus-20260522-183908`

Archivos clave:

- `00_pre_identity.txt` (identidad previa)
- `01_pre_status_sb.txt` (status resumido previo)
- `02_pre_status_porcelain.txt` (detalle previo)
- `03_pre_dirty_count.txt` (conteo previo)
- `04_backup_branch.txt` (rama de respaldo)
- `10_post_identity.txt` (identidad posterior)
- `11_post_status_sb.txt` (status posterior)
- `12_post_status_porcelain.txt` (detalle posterior)
- `13_post_dirty_count.txt` (conteo posterior)
- `20_optimize_clear.txt` (salida de `php artisan optimize:clear`)

## Comandos ejecutados (servidor)

```bash
cd /var/www/html/smart

# evidencia pre
git status -sb
git status --porcelain

# respaldo
git branch backup/pre-rollback-20260522-183908 f4109d888538a2fedfee176020128827f3458703

# rollback
git reset --hard c519d62e2
git clean -fd

# validacion post
git status -sb
git status --porcelain
php artisan optimize:clear
```

## Evidencia antes/despues

Antes:

- `branch=integrate/upstream-master-20260515-block2`
- `head=f4109d888538a2fedfee176020128827f3458703`
- `dirty_count=8837`

Despues:

- `post_branch=integrate/upstream-master-20260515-block2`
- `post_head=c519d62e251e80bc7be23f239801bdfd1ceeb6d4`
- `post_head_short=c519d62e`
- `post_dirty_count=0`

Adicional:

- `git status -sb` final: `## integrate/upstream-master-20260515-block2...origin/integrate/upstream-master-20260515-block2 [behind 989]`
  - Esto es consistente con un rollback del branch local del servidor a un commit anterior.

## Notas operativas

- El rollback movio el puntero de la rama local del servidor a un commit anterior (`c519d62e2`).
- Se preservo punto de retorno tecnico con rama `backup/pre-rollback-20260522-183908`.
- `git clean -fd` elimino archivos no rastreados (principalmente backups/parches sueltos) y ayudo a cerrar en estado limpio.

## Fase 2: intento de sincronizacion segura con remoto (Git)

Fecha: 2026-05-22

Objetivo:

- Publicar una rama remota nueva anclada en `c519d62e2` para alinear `servidor <-> git remoto` sin sobrescribir ramas existentes.

Acciones ejecutadas en servidor:

```bash
cd /var/www/html/smart
git checkout -b rollback/c519d62e2-20260522-184145
git push -u origin rollback/c519d62e2-20260522-184145
```

Resultado:

- Rama local creada correctamente:
  - `rollback/c519d62e2-20260522-184145`
  - `HEAD=c519d62e`
  - `git status -sb` limpio en esa rama.
- Push bloqueado por permisos del remoto:
  - `ERROR: This deploy key does not have write access to this project.`

Conclusion:

- El servidor quedo estable y limpio en rama local de rollback.
- No fue posible completar la alineacion con `origin` por restriccion de permisos de escritura del deploy key.

Paso pendiente para cierre total de trazabilidad Git remoto:

```bash
cd /var/www/html/smart
git push -u origin rollback/c519d62e2-20260522-184145
```

Requisito:

- Ejecutar el push con una credencial/llave con permisos de escritura en `jcsalazar191/smartplus`.

## Fase 3: cierre de sincronizacion con remoto (completado)

Fecha: 2026-05-22

Tras habilitar `write access` para la deploy key, se ejecuto nuevamente:

```bash
cd /var/www/html/smart
git checkout rollback/c519d62e2-20260522-184145
git push -u origin rollback/c519d62e2-20260522-184145
```

Resultado:

- Push exitoso a remoto:
  - `rollback/c519d62e2-20260522-184145 -> rollback/c519d62e2-20260522-184145`
- Rama local vinculada a upstream:
  - `Branch 'rollback/c519d62e2-20260522-184145' set up to track remote branch ...`
- Verificacion:
  - `git status -sb`:
    `## rollback/c519d62e2-20260522-184145...origin/rollback/c519d62e2-20260522-184145`
  - `git ls-remote --heads origin rollback/c519d62e2-20260522-184145` retorna:
    `c519d62e251e80bc7be23f239801bdfd1ceeb6d4 refs/heads/rollback/c519d62e2-20260522-184145`

Estado final:

- Servidor: limpio y anclado en `c519d62e2`.
- Git remoto: rama de rollback publicada y trazable.

## Fase 4: merge request creado (completado)

Fecha: 2026-05-22

Como la rama inicial ya estaba subida, para forzar `merge_request.create` se publico
una rama espejo desde el mismo commit:

- Rama source MR: `rollback/c519d62e2-20260522-mr`
- Target MR: `integrate/upstream-master-20260515-block2`
- Commit source: `c519d62e2`

MR creado por GitLab:

- `https://gitlab.com/jcsalazar191/smartplus/-/merge_requests/1`
