I’m now with GIT

โดยส่วนตัวแล้ว ใช้โปรแกรมประเภท SCM กระจายมาก คือมั่วไปหมดตั้งแต่สมัยเรียน จำไม่ได้แล้วว่าตัวไหน แต่จำได้ว่าเคยไปช่วยเค้าเขียนคู่มือเป็นภาษาไทยอยู่ทีนึง แล้วก็จับๆ ทั้ง SVN และ CVS ส่วนตอนทำงานใช้งาน CVS อยู่ 95 % ส่วนอีก 5% ใช้ SVN ในโครงการเล็กๆ ประเภท Utility ใช้เองในบริษัททั้งหลาย

ตอนนั้นได้ชื่อ Mercurial จากพี่ป๊อกเป็นครั้งแรกแล้วก็โหลดมาเล่นดู ใช้งานได้สักสองอาทิตย์ก็เลิก เพราะรู้สึกว่าเข้าไม่ถึงคำสั่งอย่างประหลาด สุดท้ายก็เลิกไป แต่ก็ได้ไอเดียว่าระบบคุมเวอร์ชั่นแบบ Distributed นี่มีข้อดีที่น่าสนใจหลายๆ อย่าง

แต่เมื่ออาทิตย์ที่แล้วได้ดูวีดีโอ Linus on GIT แล้วก็พบเรื่องน่าสนใจหลายอย่าง แม้จริงๆ แล้วจะดูวีดีโอนี้เพราะอยากฟังไลนัสพูดมากกว่า แต่สุดท้ายหลังวีดีโอจบ ผมก็โหลด GIT มาเล่นดู แล้วก็พบว่ามันลงตัวหลายๆ อย่าง นับแต่ความง่าย ความทรงพลัง ฯล

แต่วีดีโอของไลนัสก็สร้างแรงกระเพื่อมออกมาค่อนข้างเยอะ ที่น่าสนใจที่สุดคงเป็นบทความของ  Ben Collins-Sussman นักพัฒนาของ SVN เองที่ออกมาเขียนบทความว่า GIT นั้นแม้จะดูเจ๋ง แต่เอาเข้าจริงแล้วก็เหมาะสมกับ Alpha Geek เท่านั้น แต่ผู้ใช้งานทั่วไปที่เป็นคนพัฒนาโปรแกรมในหน่วยงานต่างๆ นั้นไม่ได้ยินดีที่จะเรียนรู้แนวคิดใหม่เช่นนี้ และยิ่งระดับผู้บริหารแล้ว การทำสำเนาประวัติการพัฒนาโปรแกรมทั้งหมดให้อยู่ในมือโปรแกรมเมอร์ทุกคนคงไม่ใช่เรื่องที่ยอมรับได้ง่ายๆ

แต่แนวทางที่ผมว่าน่าสนใจ และคิดว่าควรมีก่อนเลยคือ Offline Commit ที่ Karl Fogel เองก็ยอมรับว่าเป็นหนึ่งในประเด็นที่มีความสำคัญสูง ส่วนเรื่องการทำงานเร็ว และการสร้าง Local Branch นั้นแม้จะดีแต่ก็คงไม่สำคัญเท่า

พอดีช่วงนี้เรียนต่อ จึงไม่ต้องทำงานร่วมกับคนอื่นมากนัก GIT เลยมาเป็นตัวเลือกที่ดีสำหรับผมไป หวังว่าก่อนกลับไปทำงาน SVN คงเอาข้อดีของ DCVS มาใช้ได้ครบแล้ว จะได้ทำงานมีความสุขกว่าเดิม

ปล. ดูวีดีโอแล้วจะเข้าใจว่าคำพูดแรงๆ ที่ไลนัสที่เจอในเว็บนี่เป็นนิสัยปรกติของเค้า ไม่งั้นอ่านแต่ละทีแล้วตกใจเอาง่ายๆ

4 thoughts on “I’m now with GIT

  1. ช่วงนี้ผมก็เริ่มหัดใช้ GIT เหมือนกัน มันมี feature ทีดีอันหนึ่งคือ git-svn ทำให้เราสามารถ checkout svn แล้วทำ local branch ของตัวเองได้

Leave a Reply

Your email address will not be published.

You may use these HTML tags and attributes: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <strike> <strong>