ห้องลับ

แหล่งความรู้ที่ไม่มีใครเปิดเผย
Twitter
Follow me on Twitter

Creating a Simple Tag vs Creating a Complex Tag

จากคำถามของคุณพิเชฐที่โพสต์ไว้ “สงสัยเรื่องการทำงานของ SVN ระหว่าง Creating a Simple Tag กับ Creating a Complex Tag แตกต่างกันอย่างไร, ใช้งานต่างกันอย่างไร และใช้งานตอนไหนบ้าง” ช่วงนี้ผมมีเวลาว่างมากขึ้น ค้นหาคำตอบให้คุณพิเชฐและบอกเล่าต่อให้เพื่อนๆ ทุกคนครับ :)

ก่อนจะพูดถึงเรื่อง Creating a Simple Tag vs Creating a Complex Tag ขออธิบายโครงสร้าง SVN repository คร่าวๆ ก่อน

โครงสร้างของ SVN repository แบ่งออกเป็น 3 ส่วน ซึ่งเหมาะในการพัฒนาโปรแกรมหรือระบบ

  1. trunk: คือ ลำต้น (main-line) ในการพัฒนาโปรแกรม นั่นหมายความว่า โค้ดส่วนนี้ต้องเสถียร
  2. branches: คือ กิ่งก้านสาขา (side-line) ในการพัฒนาโปรแกรม นั่นหมายความว่า ถ้าเราจะเพิ่มฟีเจอร์ใหม่ให้กับระบบที่เรากำลังพัฒนาอยู่ และไม่อยากให้กระทบกับโค้ดใน trunk
  3. tags: จะใช้ก็ต่อเมื่อโค้ดเราเสถียรมากพอ และพร้อม deploy โค้ดชุดนี้ให้ลูกค้าใช้งาน การเก็บเป็น Release Tags คือการ snapshot โค้ดนั่นเอง ทำให้เราควบคุมเวอร์ชั่น และบั๊กที่เกิดขึ้นจากโปรแกรมได้

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

อ่านต่อ…