11 คะแนน โดย GN⁺ 2023-12-13 | 2 ความคิดเห็น | แชร์ทาง WhatsApp

คำถามเกี่ยวกับว่า Git เป็นคำตอบสุดท้ายสำหรับระบบควบคุมเวอร์ชัน (VCS) หรือว่ายังเป็นไปได้ที่จะมีระบบที่ดีกว่า

คำตอบสำคัญ

  • การเรียนรู้ Git มีประโยชน์มากกว่าการใช้ VCS อื่นหรือการสร้าง VCS ใหม่อย่างมาก
  • Git CLI ไม่ค่อยดีนัก จึงมีความพยายามแก้ปัญหา UI ของ Git ในหลายที่
  • Jujutsu ผสานข้อดีของระบบควบคุมเวอร์ชันแบบกระจาย (DVCS) อื่น ๆ และนำเสนอแนวคิดที่ล้ำสมัย
  • Fossil ที่สร้างโดยผู้พัฒนา SQLite สามารถติดตามประวัติของไฟล์ย้อนหลังและไปข้างหน้าได้
  • Pijul ก็น่าจับตามองเช่นกัน
  • ภายในของ Git ไม่ได้ซับซ้อน แต่ส่วนติดต่อกลับชวนสับสน
  • สำหรับไฟล์ไบนารีขนาดใหญ่ยังคงไม่ดีพอ และ LFS ก็ดูขัด ๆ
  • Darcs ก็ใช้ได้เหมือนกัน

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

 
rapihara 2023-12-13

ในมุมมองของนักพัฒนาเกมที่ต้องจัดการกับไฟล์ขนาดใหญ่อยู่บ่อยครั้ง ผมคิดว่าการใช้ git ย่อมมีข้อจำกัดอย่างหลีกเลี่ยงไม่ได้
git จัดเก็บข้อมูลแบบ snapshot ดังนั้นแม้ไฟล์จะเปลี่ยนไปเพียงเล็กน้อย พื้นที่จัดเก็บก็อาจเพิ่มขึ้นอย่างมากได้ ทางออกคือควรจัดเก็บแบบ delta แทน snapshot แต่สิ่งนี้อาจกระทบต่อปรัชญาการออกแบบพื้นฐานของ git ดังนั้นผมจึงคิดว่าอาจจะดีกว่าหากใช้ mercurial ซึ่งเป็น DVCS เหมือนกันแต่จัดเก็บแบบ delta

 
GN⁺ 2023-12-13
ความคิดเห็นจาก Hacker News
  • หลายคนได้รู้จัก Git ในฐานะระบบควบคุมเวอร์ชัน (VCS) ตัวแรกและตัวเดียว

    • ก่อนหน้านี้เคยใช้ RCS, CVS, SVN แล้วจึงย้ายมาใช้ Git
    • Git แก้ปัญหาเชิงโครงสร้างพื้นฐานของระบบรุ่นก่อน ๆ
    • ข้อจำกัดของ Git อยู่ที่ผู้ใช้ต้องรู้ว่าจะใช้งาน Git อย่างไร
    • ความพยายามทำให้ UI ที่ซับซ้อนของ Git เรียบง่ายลงอาจทำให้ความทรงพลังของ Git ลดลง
    • การเรียนรู้ Git มีประโยชน์กว่าการไปใช้ VCS อื่นหรือสร้าง VCS ใหม่มาก
  • มีคำถามว่าหาก Git จะเป็น VCS ที่ "ดีกว่า" ควรปรับปรุงด้านใดบ้าง

    • ส่วนติดต่อผู้ใช้แบบ CLI ของ Git มีความซับซ้อน
    • Git เติบโตได้อย่างรวดเร็ว แต่ต้องแลกมากับประสบการณ์การใช้งาน CLI
    • หลายบริษัทนำเสนอโซลูชันหลากหลายแบบเพื่อแก้ปัญหา UI ของ Git
  • ระบบควบคุมเวอร์ชัน Jujutsu ผสานข้อดีของ distributed version control system (DVCS) อื่น ๆ และนำเสนอแนวคิดใหม่ที่น่าสนใจ

    • เคยถูกพูดถึงใน Hacker News หลายครั้ง
  • Fossil ซึ่งเป็นระบบที่สร้างโดยผู้สร้าง Sqlite

    • Fossil ต่างจาก Git ตรงที่สามารถติดตามประวัติของไฟล์ได้ทั้งเดินหน้าและย้อนหลัง
  • มีความเห็นว่าแม้ Git จะไม่สมบูรณ์แบบ แต่ก็ยังดีกว่าทางเลือกอื่น

    • การค้นหาฟีเจอร์ของ Git ทำให้สับสนและมีความซับซ้อน
    • การเรียนรู้ Git ต้องใช้ความพยายามมาก แต่ถ้าใช้แค่คำสั่งพื้นฐานก็ไม่มีปัญหา
  • การทำงานภายในของ Git ไม่ได้ซับซ้อน แต่ส่วนติดต่อผู้ใช้ชวนให้สับสน

    • สิ่งที่ควรทำให้เรียบง่ายคือ UI ไม่ใช่ตัว Git เอง
  • Fossil ถูกเสนอเป็นทางเลือกแทน Git

    • Fossil มีเครื่องมือ forge ที่ช่วยแก้ปัญหาความรวมศูนย์ของ Git repository
  • มีความหวังว่า Git จะจัดการไฟล์ขนาดใหญ่/asset แบบไบนารีได้ดีกว่านี้ตั้งแต่ต้น

    • LFS (Large File Storage) ใช้ได้ดีพอสมควร แต่ยังไม่สมบูรณ์
    • CLI ไม่ใช่ปัญหา และก็มีเครื่องมือทางเลือกอยู่มากมาย
  • Fossil ของ Sqlite และ Sapling ของ Facebook ถูกกล่าวถึงว่าเป็นทางเลือกแทน Git

  • มีทฤษฎีส่วนตัวเกี่ยวกับวิธีปรับปรุงอินเทอร์เฟซของ Git

    • ควรโฟกัสที่ repository ในฐานะกราฟมีทิศทางมากขึ้น และใช้ภาษาที่อิงคำศัพท์แบบกราฟ
    • จะช่วยให้คนที่มีพื้นฐานคณิตศาสตร์เรียนรู้ Git ได้ง่ายขึ้น