3 คะแนน โดย xguru 3 시간 전 | 1 ความคิดเห็น | แชร์ทาง WhatsApp
  • ไม่ต้องมี local clone สามารถสตรีม ref และออบเจ็กต์จาก source remote ไปยัง target remote ได้โดยตรง โดยไม่เช็กเอาต์รีโพซิทอรีลงดิสก์ในเครื่อง
  • ใช้ เส้นทางส่งต่อแบบ Relay เพื่อส่งข้อมูลแพ็กจาก upload-pack ของต้นทางไปยัง receive-pack ของปลายทางได้ทันที ทำให้การใช้หน่วยความจำคงที่ไม่ว่าขนาดรีโพซิทอรีจะใหญ่แค่ไหน
  • หากไม่สามารถใช้ relay ได้ (เช่น force, prune, delete) จะใช้ Materialized fallback โดย fetch ออบเจ็กต์เข้าไปยังสโตร์ go-git แบบ in-memory จากนั้นเข้ารหัส packfile และ push โดยสามารถจำกัดหน่วยความจำด้วย --materialized-max-objects
  • ใช้เพียง git-sync sync คำสั่งเดียวเพื่อจัดการได้ตั้งแต่ การ seed เป้าหมายที่ว่างเปล่าในครั้งแรกไปจนถึงการซิงก์อย่างต่อเนื่อง และสามารถพรีวิวก่อน push ได้ด้วย git-sync plan
  • git-sync replicate เป็นโหมดเข้มงวดที่ทำให้ target ref ตรงกับ source อย่างสมบูรณ์ แต่จะถือว่า ล้มเหลวหากจำเป็นต้อง materialize ในเครื่อง
  • รองรับ การจัดการ ref ทุกแบบ ทั้งการสร้าง ref, การอัปเดต, การบังคับอัปเดตด้วย --force, การลบด้วย --prune เป็นต้น
  • วางแผนทุกแอ็กชันก่อน push และให้ ผลลัพธ์ JSON แบบมีชนิดข้อมูล จึงเชื่อมต่อเข้ากับ CI/ระบบอัตโนมัติได้ทันที
  • สามารถฝังใช้งานเป็นไลบรารี Go ได้เช่นกัน พร้อม API แบบเสถียร อย่าง Probe, Plan, Sync, Replicate
  • รองรับเฉพาะแบบทางเดียว, ไม่รองรับ SSH (รองรับเฉพาะ Smart HTTP/HTTPS), ไม่มีความสามารถแบบเดมอน/เฝ้าดู และทำงานแบบรันครั้งเดียว
  • ไลเซนส์ MIT

1 ความคิดเห็น

 
colus001 2 시간 전

คงทำขึ้นมาเพราะ worktree กำลังฮิตสินะ เดี๋ยวต้องลองใช้ดู!