การวางโครงสร้าง Folder สำหรับ SVN ที่เป็นมาตรฐานสากลและได้รับการยอมรับมากที่สุดคือระบบ “Standard Layout” ครับ โครงสร้างนี้ช่วยให้การจัดการ Code, การทำ Branching และการ Release software เป็นไปอย่างมีระเบียบ
นี่คือโครงสร้างหลักที่ควรมีในทุก Repository
โครงสร้างมาตรฐาน
/ProjectName ├── trunk ├── branches └── tags
/trunk: คือส่วนที่เก็บ Source Code หลัก ที่กำลังพัฒนาอยู่ (เปรียบเสมือน Master หรือ Main ใน Git) ทุกคนในทีมจะทำงานหลักที่นี่/branches: ใช้สำหรับเก็บ กิ่งก้านที่แยกออกมา เพื่อพัฒนา Feature ใหม่, แก้ไข Bug เฉพาะหน้า หรือทำโปรเจกต์ทดลอง โดยไม่ให้กระทบกับงานหลักใน trunk/tags: ใช้สำหรับเก็บ Snapshot ของ Code ณ เวลาใดเวลาหนึ่ง (มักเป็น Read-only) เช่น เมื่อปล่อยเวอร์ชันv1.0หรือv2.1เพื่อให้เราสามารถย้อนกลับมาดู Code ของเวอร์ชันนั้น ๆ ได้อย่างแม่นยำ
โครงสร้างสำหรับโปรเจกต์ขนาดใหญ่หรือหลายโมดูล
หากคุณมีหลายโปรเจกต์ภายใต้ Repository เดียวกัน หรือมีส่วนประกอบอื่น ๆ เช่น เอกสารประกอบ (Docs) สามารถขยายโครงสร้างได้ดังนี้ครับ
/Company_Repo ├── Project_A │ ├── trunk │ ├── branches │ └── tags ├── Project_B │ ├── trunk │ ├── branches │ └── tags └── shared_assets (ถ้ามีไฟล์ที่ใช้ร่วมกันทุกโปรเจกต์)
ข้อแนะนำเพิ่มเติม
- อย่าเก็บไฟล์ที่ Generate ได้เอง: เช่น โฟลเดอร์
node_modules,bin,obj, หรือไฟล์.exeควรเก็บเฉพาะ Source Code และไฟล์ Config ที่จำเป็นเท่านั้น - Naming Convention สำหรับ Tags/Branches: ควรตั้งชื่อให้สื่อความหมาย เช่น:
/tags/release-1.0.0/branches/feature-login-page
- Backup ก่อนจัดการระบบ: ตามที่คุณเคยบันทึกไว้ การจัดการกับ Server หรือ Config สำคัญ ๆ อย่าลืมทำ Snapshot หรือ Backup ตัว Repository ไว้ก่อนเสมอเพื่อป้องกันข้อมูลสูญหายครับ
อ่านเพิ่มเติม