3 points par xguru 3 시간 전 | 1 commentaires | Partager sur WhatsApp
  • Aucun clone local nécessaire : les refs et objets sont diffusés directement du remote source vers le remote cible, sans checkout du dépôt sur le disque local
  • Via un chemin de transfert Relay, les données pack de l’upload-pack source sont envoyées directement au receive-pack cible, ce qui maintient une utilisation mémoire constante quelle que soit la taille du dépôt
  • Quand le relay est impossible (force, prune, delete, etc.), un fallback Materialized récupère les objets dans un store go-git en mémoire, puis encode le packfile et pousse ; la mémoire peut être limitée avec --materialized-max-objects
  • Une seule commande, git-sync sync, gère l’amorçage initial d’une cible vide jusqu’à la synchronisation continue ; git-sync plan permet un aperçu avant le push
  • git-sync replicate aligne complètement les refs cibles sur la source, mais fonctionne en mode strict : échec si une materialisation locale est nécessaire
  • Prise en charge de toutes les actions de gestion des refs : création, mise à jour, mise à jour forcée avec --force, suppression avec --prune, etc.
  • Toutes les actions sont planifiées avant le push, avec une sortie JSON typée directement exploitable dans des pipelines CI/automatisation
  • Peut aussi être embarqué comme bibliothèque Go, avec des API stables telles que Probe, Plan, Sync et Replicate
  • Unidirectionnel uniquement, pas de prise en charge SSH (Smart HTTP/HTTPS seulement), pas de daemon ni de fonction de surveillance, exécution en une seule fois
  • Licence MIT

1 commentaires

 
colus001 3 시간 전

Avec la popularité de worktree, j’imagine que ça a été créé pour ça. Je vais l’essayer !