ห้องลับ

แหล่งความรู้ที่ไม่มีใครเปิดเผย
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 จะพบว่าโค้ดถูกอัพเดตไปเป็นเวอร์ชั่นใหม่หมดแล้ว

อ่านต่อ…

Optimize TortoiseSVN Cache

สำหรับคนที่ใช้งาน Subversion ผ่านโปรแกรม TortoiseSVN จะมี process ที่ชื่อว่า TSVNCache.exe (ลองเปิด Task Manager ดูได้) โดย Process นี้จะคอยดูว่าเรามีการเปิดใช้งาน folder ใน Windows explorer แล้วทำการ check การเปลี่ยนแปลง folder นั้นๆ เพื่อแสดง icon ที่ถูกต้อง เช่น เครื่องหมายถูกสีเขียวสำหรับ folder ที่ไม่มีการเปลี่ยนแปลง ซึ่งมันจะ scan ทุกๆ folder ที่เราเข้าไปใช้งาน สิ่งที่ตามมาคือ เวลาที่เรา delete/copy ไฟล์หรือโฟล์เดอร์ในปริมาณเยอะๆ จะทำให้เครื่องช้าลงอย่างเห็นได้ชัด อ่านต่อ…