Geeky Academy: Git 4 Geeks Part I
เมื่อก่อนเราแชร์ Open Source Software โดยใช้ Centralized SCM (Source Control Management) คือการมีเซิร์ฟเวอร์เพื่อเก็บ Code เอาไว้และใครต้องการเข้ามาทำงานก็โหลดลงไปทำงาน โดยซอฟต์แวร์ที่เป็นที่นิยมเช่น SVN แต่เนื่องจากไม่เหมาะกับ Project ที่มี Contributor (ผู้ร่วมพัฒนา) เยอะ โดยมีปัญหา เนื่องจากมี Code กลางแค่ชุดเดียว ขอยกตัวอย่าง Linux Kernel ยุคแรกๆ Linus ก็ต้องหาคนที่ไว้ใจในการที่จะส่งโค้ดไปรวมที่โค้ดกลาง (ซึ่งก็มีเพียงไม่กี่คน) แต่ Developer มีเยอะ ดังนั้นต้องให้คนที่ถูก Linus ไว้ใจช่วยกัน Review Code โดย Developer ที่ Linus เองถ้าให้ตรวจทั้งหมดก็ไม่ไหว ก็ต้องมีมือขวามาช่วยตรวจอีก ถ้า Developer เยอะขึ้นเรื่อยๆ ปัญหานี้ก็จะ Recursive ไปเรื่อยๆ นั่นเอง จึงทำให้ Linus เกลียดมาก เพราะสภาพการทำงานแบบ Centralized SCM ยากต่อการ Scale Linux Kernel จึงหันมาใช้ BitKeeper แทน มาช่วยให้ Linux Kernel Scale ต่อได้ แต่ก็พบข้อจำกัดต่างๆ (ส่วนใหญ่เป็นเรื่อง Comercial License) Linus และทีมจึงทำการ Reverse Engineer Protocol ของ BitKeeper จนผิด Policy และทะเลาะกันรุนแรง เลยต้องหาอ...