- लोकल clone की ज़रूरत बिना source remote से target remote तक refs और objects को सीधे stream करता है, और repository को लोकल disk पर checkout नहीं करता
- Relay ट्रांसफर पाथ के जरिए source
upload-pack pack data को target receive-pack में सीधे बहाता है, इसलिए repository के size से अलग memory उपयोग स्थिर रहता है
- relay संभव न होने पर (force, prune, delete आदि) Materialized fallback के तहत in-memory
go-git store में objects को fetch करने के बाद packfile encode और push करता है, और --materialized-max-objects से memory सीमा तय की जा सकती है
git-sync sync एक ही कमांड से खाली target की शुरुआती seeding से लेकर लगातार synchronization तक संभालता है, और git-sync plan से push से पहले preview देखा जा सकता है
git-sync replicate target refs को source के साथ पूरी तरह match करता है, लेकिन अगर local materialize की ज़रूरत पड़े तो failure देने वाला strict mode है
- ref बनाना, update करना,
--force से force update, --prune से delete करना जैसी सभी ref management actions को support करता है
- push से पहले सभी actions की planning करता है और typed JSON output देता है, जिससे इसे CI/automation pipelines से सीधे जोड़ा जा सकता है
- Go library के रूप में embed भी किया जा सकता है, और
Probe, Plan, Sync, Replicate जैसी stable APIs प्रदान करता है
- सिर्फ one-way, SSH unsupported (केवल Smart HTTP/HTTPS), daemon/watch functionality के बिना one-shot execution mode
- MIT license
1 टिप्पणियां
लगता है
worktreeके लोकप्रिय होने की वजह से इसे बनाया गया होगा। इस्तेमाल करके देखना पड़ेगा!