28 มกราคม 2552

[023] มาใช้ Subversion กันเถอะ

ถ้าจะพูดถึงโปรแกรมจำพวก Version Control ต่างๆ ผมเองก็เคยใช้มาเป็นของค่าย Microsoft ชื่อ SourceSafe ซึ่งสามารถใช้งานร่วมกันกับ Visual Studio ได้เป็นอย่างดี ส่วนโปรแกรมดังๆ ก็รองรับ ใช้อยู่สักพัก พอลงเครื่องใหม่ และหันมาจับ web app. เต็มตัวเลยไม่ได้ลง และอีกอย่างคือ งานส่วนใหญ่เป็นงานเล็กๆ ทำแล้วจบไป แต่พักหลังงานเริ่มใหญ่ขึ้น การทำงานเริ่มมีปัญหาเรื่องการแก้ไขและ backup เพราะต้องคอยมา backup และดูแลในส่วนนี้ ทำให้เสียเวลาและไม่มีประสิทธิภาพเท่าที่ควร และปัญหาที่สำคัญที่สุดคือ แก้ไขแล้วแย่กว่าเดิม จะ rollback ก็ทำได้ไม่ดีเพราะไม่เห็นส่วนที่เปลี่ยนแปลงต้องมานั่งไล่เอา


ดังนั้นเราจึงต้องหาผู้ช่้วยสำหรับงาน Version Control* กัน ยุคนี้เป็นยุค Open Source จะไปใช้ SourceSafe เหมือนเดิมอาจเชยเกินไป อีกอย่างก็ไม่มีเงินจะไปซื้อรุ่นใหม่มาใช้งานงาน เลยมองหาก็ได้ไปเจอ Subversion

สำหรับ Subversion เป็นโปรแกรมที่ทำหน้าที่ช่วยบันทึกการแก้ไขไฟล์งานต่างๆ โดยมีคุณสมบัติหลักๆ ดังนี้

  • ช่วยให้สามารถทำงาน 1 Project ได้หลายๆ คนพร้อมกัน โดยไม่มีปัญหาการทำงานซ้ำซ้อนกัน
  • บันทึกข้อมูลที่มีการเปลี่ยนแปลงในแต่ละครั้ง หากแก้ไขแล้วมีปัญหา สามารถย้อนกลับมาทำงานข้อมูลก่อนหน้าได้
  • สามารถดูความแตกต่างของการแก้ไขข้อมูลในแต่ละรุ่นได้ ทำให้สามารถวิเคราะห์ถึงปัญหาที่เกิดขึ้นได้
  • สามารถใช้งานผ่านระบบ network ได้ โดยเฉพาะ internet
สิ่งที่ต้องมี
  1. โปรแกรม Subversion Server (ต่อไปขอเรียกสั้นๆ ว่า SVN Server) มีหลายทางเลือก โดยหลักๆ จะเป็น Module สำหรับ Apache Web Server
  2. โปรแกรม SVN Client สำหรับใช้ติดต่อกับข้อ 1
  3. โปรแกรมที่รองรับการทำงาน SVN โดยปกติโปรแกรมดังๆ ใหม่ๆ จะรองรับอยู่แล้ว
เว็บไซต์ SUBVersion สามารถดาวน์โหลดโปรแกรม
และคู่มือที่เกี่ยวข้องได้ที่นี้ครับ
สำหรับผมลองเอา Module ของ SVN ไปใช้กับ Apache ที่มีอยู่ในเครื่องแล้่วมีปัญหากับระบบ เลยหันไปใช้ VisualSVN Server แทน ซึ่งเหมาะกับผมและคนที่ไม่ชอบพิมพ์ command line ครับ เพราะมันทำงานผ่าน Microsoft Management Console (MMC)
เมื่อติดตั้งโปรแกรมแล้ว จะสามารถจัดการงานทั้งหมดผ่าน MMC ได้เลย ไม่ว่าจะเพิ่ม Repositories, Users และ Group ของผู้ที่ใช้งาน

หน้าตา VisualSVN เหมาะกับคนที่ไม่ชอบพิมพ์ command line

เมื่อติดตั้งและสร้าง Repositories, Users และ Group ของผู้ที่ใช้งาน เรียบร้อยแล้ว ต่อไปคือการทดสอบว่าสามารถใช้งานได้ถูกต้องหรือไม่ ให้ลองคลิกที่ Server URL ที่ระบุไว้ตอนติดตั้ง โปรแกรมจะเปิดเว็บเบราเซอร์ พร้อมทั้งถาม username และ password ตามที่ได้กำหนดเอาไว้

เมื่อได้ SVN Server เรียบร้อยแล้ว เราจำเป็นต้องมี SVN Client สำหรับติดต่อกับ Server สำหรับต้องการใช้งานผ่าน Windows Explorer เป็นหลักเนื่องจากสะดวก และไม่ต้องไปยึดติดกับโปรแกรม IDE ที่ใช้ ตัวเลือกของผมจึงเป็น TortoiseSVN
โปรแกรม TortoiseSVN ให้โหลดใช้งานได้ฟรีเหมือนกัน
เมื่อติดตั้ง TortoiseSVN เรียบร้อยแล้วจะสามารถใช้งาน SVN ผ่าน Shell Extension ได้ทันที ซึ่งก็เหมาะมากสำหรับคนที่ไม่ชอบพิมพ์ command line

เมื่อทำการ Import โฟลเดอร์ที่ต้องการกับ SVN แล้ว icon จะเปลี่ยนไป

ทดสอบ Lock ไฟล์ดู
เมื่อ Lock แล้วจะมีรูปกุญแจเพิ่มขึ้นมา ซึ่งสื่อความหมายได้ดี
นอกจากนี้ยังสามารถใช้งาน SVN ผ่าน IDE รุ่นใหม่ๆ อย่างเช่น NetBeans IDE เป็นต้น ซึ่งนอกจาก NetBeans ยังมีโปรแกรมอื่นๆ ที่เป็นนิยมมากๆ จะสนับสนุน SVN กันอยู่แล้ว หรือไม่ก็หา Plugin มาเพิ่มได้ ซึ่งถ้า IDE ที่คุณใช้มันสนับสนุนจริงๆ ก็ใช้ TortoiseSVN หรือ SVN ผ่าน command line ก็ได้
โปรแกรม NetBeans กับ SVN
สุดท้ายสิ่งที่ขาดไม่ได้คือ คู่มือการใช้งาน อันนี้สำคัญมาก เพราะสำหรับผมถ้าคู่มือไม่มีหรือไม่ดี เกือบ 90% ผมเลือกที่จะไม่ใช้งานเพราะมีโอกาสล้มเหลวสูง แต่สำหรับ SVN มันสุดยอดมากครับ มีคู่มือ 400 กว่าหน้า ให้อ่านกันตั้งแต่ระดับ user จนถึง admin กันเลยที่เดียว มีภาพประกอบและคำอธิบายที่ดี เรียกว่าน่าใช้งานและน่าสนับสนุนมาก
คู่มือการใช้งาน SVN มีหลายรูปแบบให้ดาวน์โหลด
อีกสิ่งหนึ่งที่ SVN หรือโปรแกรมจำพวก Version Control ยังช่วยให้เราทำงานเป็นระบบมากขึ้น และหากต้องการทำงานเป็นทีมก็ช่วยให้การทำงานราบรื่นครับ

ปล.อย่าลืม backup ข้อมูลใน Repositories ด้วยนะครับ เพราะถ้าพังหรือหาย OMG! สถานเดียว SVN ก็ช่วยไม่ได้

เกี่ยวกับเจ้าของบล๊อก

รูปภาพของฉัน

เป็นโปรแกรมเมอร์ที่ฝันว่าจะได้นอนเกาพุงไปวัน ๆ จนพุงลดกลายเป็นเอว ได้เป็นบุคคลที่มีความสุขที่สุดในโลกจนคนอื่น ๆ อิจฉา