3 puntos por xguru 3 시간 전 | 1 comentarios | Compartir por WhatsApp
  • Sin necesidad de clonar localmente: transmite directamente refs y objetos desde el remoto de origen al remoto de destino, sin hacer checkout del repositorio en disco local
  • Usa una ruta de transferencia Relay para pasar directamente los datos del pack de upload-pack del origen al receive-pack del destino, manteniendo constante el uso de memoria sin importar el tamaño del repositorio
  • Cuando el relay no es posible (force, prune, delete, etc.), usa un fallback Materialized: hace fetch de los objetos a un store en memoria de go-git, luego codifica el packfile y hace push; se puede limitar la memoria con --materialized-max-objects
  • Con solo git-sync sync maneja desde el seeding inicial de un destino vacío hasta la sincronización continua; también permite previsualizar antes del push con git-sync plan
  • git-sync replicate hace que los refs del destino coincidan completamente con los del origen, pero en modo estricto falla si requiere materialización local
  • Soporta todas las acciones de gestión de refs: creación, actualización, actualización forzada con --force, eliminación con --prune, etc.
  • Planifica todas las acciones antes del push y ofrece salida JSON tipada, lista para integrarse directamente en pipelines de CI/automatización
  • También se puede integrar como librería en Go y ofrece APIs estables como Probe, Plan, Sync y Replicate
  • Solo unidireccional, sin soporte para SSH (solo Smart HTTP/HTTPS), y con ejecución one-shot, sin funciones de daemon o monitoreo
  • Licencia MIT

1 comentarios

 
colus001 2 시간 전

Parece que lo hicieron porque worktree se puso de moda. ¡Voy a probarlo!