จากบทความคราวก่อน http://www.select2web.com/svn/manage-php-sourcecode-with-svn.html ผมพูดคร่าวๆเรื่องการบริหารจัดการซอร์สโค้ด PHP ด้วย SVN เพื่อเป็นการปูทางเบื้องต้นตัวที่เป็นพี่ใหญ่คอยบริหาร ควบคุม ซอร์สโค้ดของเราคือตัว SVN Server
ผมเคยสงสัยในคำว่า บริหารจัดการ ของมัน ว่ามันบริหารยังไง จัดการยังไง มันทำแบบอัตโนมัติเหรอ หรือว่ามันจะคอยช่วยเขียนโค้ดบางส่วนให้เรา หรือว่ามันจะคอยอัปเดตโค้ดจากเครื่องของโปรแกรมเมอร์แต่ละเครื่องให้อัตโนมัติ แล้วเมื่อมันบันทึกรายละเอียดไปนานๆ โค้ดไม่บานตะไทเหรอ และอีกหลายอย่าง แต่หลักๆที่สงสัยก็คือ 2-3 ข้อที่กล่าวมานั่นแหละ
เมื่อได้ใช้ SVN ไปเรื่อยๆก็ได้ข้อสรุป จึงนำมาเล่าท่านๆ เพื่อจะได้ทำความเข้าใจ SVN ได้ง่ายขึ้น
คำว่าบริหารจัดการของ SVN มันไม่ได้ทำแบบอัตโนมัติ มันจะทำก็ต่อเมื่อมีการส่งซอร์สโค้ดเข้าไปยังตัวมัน ผ่านทาง SVN Client เราลองมาโฟกัสวิธีการทำงานของมันเป็นข้อๆ กันดู เพื่อความเข้าใจและกระสันต์อยากใช้งาน SVN
– คอยผสานโค้ดจากโปรแกรมเมอร์แต่ละคน
เมื่อมีการส่งซอร์สโค้ดเข้าไปยังตัว SVN Server มันจะตรวจสอบว่ามีบรรทัดไหนเปลี่ยนแปลงไปบ้าง เพิ่มขึ้นมา ถูกลบออกไป หรือถูกแก้ไข โดยเปรียบเทียบจากโค้ดที่มันเก็บไว้ครั้งก่อน มันจะจัดการผสานให้เองอย่างถูกต้อง เราไม่ต้องกังวลใดๆเลย ถ้ามันตัดสินใจไม่ได้ หรือโค้ดมีการชนกัน มันก็จะแจ้งมายังโปรแกรมเมอร์ ผ่านทาง SVN Client เพื่อให้โปรแกรมเมอร์เป็นคนตัดสินใจแทน ว่าจะเอาโค้ดส่วนไหนไว้ เอาโค้ดส่วนไหนออก
-คอยบันทึกการเปลี่ยนแปลงของโค้ด
เมื่อมีการส่งซอร์สโค้ดเข้าไปยังตัว SVN Server มันจะบันทึกการเปลี่ยนแปลงของซอร์สโค้ดไว้อย่างละเอียด ว่าใครเป็นคนแก้บรรทัดนี้ ใครเป็นคนเพิ่มบรรทัดนี้ ทุกๆครั้งทุกๆไฟล์ ที่มีการส่งเข้ามา ทำให้เราสามารถย้อนหลังโค้ดได้ตั้งแต่วันเริ่มต้นพัฒนา มายันปัจจุบัน และดูได้ด้วยว่าใครเป็นคนแก้บรรทัดไหน
การเก็บรายละเอียดของมัน มันจะเก็บแบบอ้างอิง ทำให้ปริมาณของโค้ดไม่เยอะอะไรเลย
-อีกหลายคอยที่ SVN Server มันคอยช่วยให้งานของโปรแกรมเมอร์สะดวก แต่ไม่ต้องไปสนใจละ สองดอกข้างบนนั่นก็ ซาบซึ้งในคุณสมบัติมันจนน้ำตาจะไหลพรากๆ อยู่แล้ว
ทีนี้มาดูข้อสงสัยที่ผมเคยสงสัยกัน
– มันทำให้อัตโนมัติเหรอ
เปล่า มันไม่ได้ทำอัตโนมัติ มันจะทำเมื่อมีซอร์สโค้ดใหม่ถูกส่งเข้าไปในตัวมัน
-มันช่วยเขียนโค้ดให้เราเหรอ
เปล่า เราเขียนของเราเอง SVN Server มันเพียงทำหน้าที่เก็บการเปลี่ยนแปลงต่างๆ และป้องกันไม่ให้เกิดการชนกันของโค้ด เท่านั้น
-มันสามารถรีสโตร์โค้ด ตั้งแต่เริ่มพัฒนายันปัจจุบัน แล้วโค้ดไม่บานเหรอ
ไม่บานครับ กระบวนการๆเก็บของมันฉลาดล้ำลึก มันไม่ได้ก้อปปี้โค้ดเก็บไว้เรื่อยๆ แต่มันจะเก็บการเปลี่ยนแปลงและการอ้างอิง
-มันจะคุ้มกับเวลาที่ลำบากขึ้นเหรอ
หลังจากผมใช้มันเป็นและใช้ไประยะหนึ่ง บอกได้เลยครับว่าโคตรคุ้ม ขนาดว่าเครื่องที่บ้านผม ผมยังใช้ SVN เลย ใช้มันอยู่คนเดียวนั่นแหละ คุ้มๆๆๆๆๆๆๆ ใช้ให้มันติดเป็นนิสัยเถอะ
ขอความรู้จงสถิตในใจท่านผู้อ่านทุกท่าน
Leave a Reply