Files
fn_registry/bash/functions/pipelines/full_git_pull.md
T
egutierrez eb8dbf66a1 feat(infra): auto-commit con 88 cambios
Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
2026-06-11 00:16:46 +02:00

2.9 KiB

name, kind, lang, domain, version, purity, signature, description, tags, uses_functions, uses_types, returns, returns_optional, error_type, imports, params, output, tested, tests, test_file_path, file_path
name kind lang domain version purity signature description tags uses_functions uses_types returns returns_optional error_type imports params output tested tests test_file_path file_path
full_git_pull pipeline bash pipelines 1.1.0 impure full_git_pull() -> stdout: tabla resumen Pull automatico de fn_registry + todos los sub-repos locales + submodules + fn sync. Descubre repos locales, stashea dirty trees antes de pullear, hace pull --ff-only, actualiza submodulos del repo principal, pulla ~/.password-store, regenera registry.db con fn index, ejecuta fn sync y reclona los sub-repos hijos faltantes de cada project (apps/analysis) via clone_project_subrepos.
git
pull
sync
registry
pipeline
pendiente-usar
discover_git_repos_bash_infra
git_pull_with_stash_bash_infra
clone_project_subrepos_bash_pipelines
pass_get_bash_infra
false error_go_core
tabla resumen por stdout: pull status de cada repo, estado de pass-secrets, submodulos actualizados, resultado de fn index, resultado de fn sync; lista de repos con divergencia o conflicto de stash al final false
bash/functions/pipelines/full_git_pull.sh

Ejemplo

# Pull completo
fn run full_git_pull

# Directo
bash bash/functions/pipelines/full_git_pull.sh

Flujo

  1. discover_git_repos — lista repos git locales bajo $FN_REGISTRY_ROOT
  2. git_pull_with_stash — para cada repo: stash si dirty, fetch, pull --ff-only, pop stash
  3. git submodule update --init --recursive — actualiza submodulos del repo principal
  4. git_pull_with_stash sobre ~/.password-store (si existe)
  5. CGO_ENABLED=1 ./fn index — regenera registry.db
  6. fn sync — sincroniza proposals, apps, projects, analysis, vaults, pc_locations

Variables de entorno

  • FN_REGISTRY_ROOT — raiz del registry; default $HOME/fn_registry
  • FN_REGISTRY_API, REGISTRY_API_TOKEN — se cargan de pass registry/*

Notas

Solo hace pull fast-forward — nunca rebase ni merge automatico. Los repos con divergencia o conflicto de stash se listan al final del resumen para intervencion manual, pero el pipeline no aborta por ellos. Modo completamente no-interactivo.

Desde v1.1.0 SI reclona los sub-repos hijos faltantes de cada project: tras fn sync (que trae a registry.db las filas de apps/analysis de todos los PCs), itera los projects y llama clone_project_subrepos para traer al disco los hijos que falten, re-indexando si clono alguno. registry.db actua como manifest de sub-repos, asi que clonar el project paraguas + /full-git-pull reconstruye su arbol entero sin adivinar nombres. Los repos sueltos (sin project) siguen sin auto-clonarse: cada PC tiene el subset que le interesa.

Capability growth log

  • v1.1.0 (2026-06-10) — anade el paso 6: reclonado de sub-repos hijos de cada project via clone_project_subrepos tras fn sync, con re-index si clona alguno. Permite reconstruir el arbol completo de un project en un PC nuevo (issue 0171).