3 Punkte von xguru 3 시간 전 | 1 Kommentare | Auf WhatsApp teilen
  • Kein lokaler Klon erforderlich: Refs und Objekte werden direkt vom Quell-Remote zum Ziel-Remote gestreamt, ohne das Repository auf lokaler Festplatte auszuchecken
  • Relay-Übertragungspfad: Pack-Daten aus dem upload-pack der Quelle werden direkt an das receive-pack des Ziels weitergeleitet; dadurch bleibt der Speicherverbrauch unabhängig von der Repository-Größe konstant
  • Falls Relay nicht möglich ist (force, prune, delete usw.), erfolgt ein materialisierter Fallback: Objekte werden in einen In-Memory-go-git-Store gefetcht, anschließend wird die Pack-Datei kodiert und gepusht; das Speicherlimit lässt sich mit --materialized-max-objects festlegen
  • Mit git-sync sync lässt sich alles von der initialen Befüllung eines leeren Ziels bis zur fortlaufenden Synchronisierung abdecken; mit git-sync plan ist vor dem Push eine Vorschau möglich
  • git-sync replicate gleicht Ziel-Refs vollständig an die Quelle an, ist dabei aber ein strenger Modus, der fehlschlägt, wenn lokale Materialisierung nötig wäre
  • Unterstützung für alle Ref-Verwaltungsaktionen wie Erstellen und Aktualisieren von Refs, erzwungene Updates mit --force sowie Löschen mit --prune
  • Alle Aktionen werden vor dem Push geplant, und es gibt eine typisierte JSON-Ausgabe, die sich direkt in CI-/Automatisierungspipelines integrieren lässt
  • Kann auch als Go-Bibliothek eingebettet werden und bietet stabile APIs wie Probe, Plan, Sync und Replicate
  • Nur unidirektional, ohne SSH-Unterstützung (nur Smart HTTP/HTTPS), und als One-Shot-Ausführung ohne Daemon- oder Watch-Funktion
  • MIT-Lizenz

1 Kommentare

 
colus001 2 시간 전

Wurde wohl gebaut, weil worktree gerade im Trend ist. Muss ich mal ausprobieren!