รื้อฟื้นความทรงจำสีจางๆ กับ svn concept

รื้อฟื้นความทรงจำสีจางๆ กับ svn concept

หากคุณคือคนหนึ่งที่เป็น fan เหนียวแน่นของ meewebfree แห่งนี้ อาจจะจำได้ ว่าผมเคยเอาเรื่อง SVN มาพูดรอบนึงแล้ว แต่อนิจจา ยังไม่ทันจะพูด หรือเล่าจนจบ ก็มีอันต้องเลิกใช้ไปก่อน หากอยากรู้ว่าทำไมต้องใช้ SVN , SVN ดียังไง, SVN ช่วยอะไรเราได้บ้าง, SVN มีข้อเสียตรงไหน ทำไมผมถึงเลิกใช้ , แล้วทำไมถึงกลับมาใช้ SVN อีก ต้องอ่านบทความนี้ครับ

SVN คืออะไร SVN มันคือระบบนึงที่เรียกกันว่า Sub Version Control หรืออธิบายให้เข้าใจในภาษาบ้านเกิดเรานั่นก็คือ การควบคุม และจัดการ version ของ source code เพราะว่า source code ต่างๆที่เราทำขึ้น จริงๆเราจะแบ่งให้มันมี version ก็ได้ ไม่ว่าจะเป็นงานเล็กหรือใหญ่ก็ตาม เช่น วันนี้ เขียนเว็บหน้าแรก เสร็จหน้าเดียว ก็อาจจะทำเป็น version 1 ต่อมาพรุ่งนี้ เขียนหน้า about เสร็จก็อาจจะให้เป็น version ที่ 2 ต่อมา เราแก้ไขหน้าแรกพร้อมเพิ่มหน้า กระดานข่าว ก็ทำเป็น version ที่ 3 แต่ปัญหา คือถ้าวันต่อมา เราต้องการกับไปใช้หน้าแรกของ version ที่ 1 หรือ 2 (เพราะเหมือนกัน) เราจะทำอย่างไร ในเมื่อมันกด undo การกระทำล่าสุดไม่ได้แน่นอน เพราะว่าคนละวัน ปิดเครื่องไปแล้วรอบนึง....

นั่นเป็นเพียงจุดเล็กๆ อีกจุดที่เข้ามาแก้ปัญหาได้ก็คือ ถ้ามีงานหนึ่ง ร่วมกันทำสามคน ปรากฏ วันแรก A แก้ไขหน้า 1 และ B แก้ไขหน้า 2    วันต่อมา  B เห็นว่าหน้า 1 ของ A มีปัญหาทำให้หน้า 2 ของ B ใข้งานไม่ได้ เลยมาแก้ให้ หลังจากนั้น A ก็มาแก้ไขหน้า 1 จาก source code ที่มีในเครื่อง A เอง แล้วก็เอา ไปทับจากที่ของ B แก้ไขเอาไว้ ส่งผลให้หน้า 2 ของ B ก็ใช้ไม่ได้อีกเหมือนเดิม เหล่านี้เป็นต้น ยิ่งถ้าหากเป็นงานใหญ่ คนทำเยอะ แล้วเขียน และอัพ ทับกันไปมา รับรอง และแน่นอน

SVN เข้ามาช่วยเราได้อย่างไร เจ้า SVN มันคือระบบ ที่เหมือนเป็นการ track การเปลี่ยนแปลงของแต่ละ version เอาไว้ตลอดเวลา ทำให้เราสามารถตรวจสอบย้อนหลังได้ ว่าแต่ละ version มีความเปลี่ยนแปลงตรงไหนบ้าง แต่ละจุดมีความต่างกันอย่างไรบ้าง รวมไปถึงติดตาม comment ของการเปลี่ยนแปลง version ได้ด้วย ดังนั้นหากเราพัฒนาระบบไปเรื่อยๆแล้วปรากฏว่าสาม version ล่าสุดมันมีปัญหา แล้วเราจะย้อนกลับไปจุดที่มันยังไม่มีปัญหาได้อย่างไร ซึ่ง SVN ทำได้

แต่ถึงอย่างนั้นก็ตาม หากพิจารณาดีๆจะเห็นว่า SVN จะมีประโยชน์มากๆ สาหรับการพัฒนางานมากกว่า 1 คน แต่หากพัฒนาคนเดียวก็ยังมีประโยชน์อย่างที่เล่ามาอยู่เหมือนกัน แต่ที่ผมเคยใช้แล้วเลิกใช้ไป เป็นเพราะว่าตอนนั้น ใช้การทำ SVN ในเครื่องตัวเอง (เอาเครื่องตัวเองมาเป็น server svn ด้วยเลย) ซึ่งมันก็ทำงานได้ดีไม่มีปัญหา แต่ปรากฏว่า ด้วยความที่นั่งทำและนั่งใช้อยู่คนเดียว และอาจจะเป็นช่วงมือใหม่หัดขับด้วย ไม่รู้จังหวะการ commit เลยทำให้เริ่มรู้สึกมันไม่มีประโยชน์ จนท้ายที่สุดตัดใจเลิกเด็ดขาดเพราะว่าแฟ้ม .svn ของมันที่แอบซ่อนอยู่นั่นเอง ทำให้การ FTP งานช้ามากๆ จนเลิกใช้ไป และอีกประเด็นก็คือ ตัว server svn ที่สร้างขึ้นมา หากผมไป format เครื่อง แล้วจะกู้ repository กลับมายังไง... (ทำไม่เป็นว่างั้นเถอะ) สุดท้าย ท้ายสุด เลิกใช้อย่างไม่ใยดี

แต่แล้วเมื่อเวลาผ่านไป.... น่าจะสองปีได้ จากวันนั้น จนวันนี้ พอดีผมมีโอกาส ได้เข้าฟังเรื่องการทำ SVN จากวิทยากรที่มาเล่าแบบแชร์ประสบการณ์ ก็จุดประกายการใช้งาน SVN ของผมกลับมาอีกครั้งหนึ่ง

เพราะว่าจากวันนั้น จนวันนี้ ผมได้ผ่านอะไรมาเยอะทำให้ปัจจุบันผมพยายามทำงานอย่างมีระบบ มากขึ้น ลดการทำงานแบบสะเปะสะปะ จัดการได้ยากๆ แบบนี้ไม่เอา เพราะว่าประสบการณ์มันจะสอนเรื่องการจัดการพวกนี้เองครับ ผมก็เลยมองว่า SVN มันเริ่มมีประโยชน์แล้ว เพราะว่าอย่างน้อย ก็เอาไว้เป็นตัว backup ได้อย่างดีเลย แล้วอีกอย่างก็คือปัจจุบันผมมีที่สิงสถิตเพื่อทำงานหลายที่ด้วยกัน ทั้งที่บ้าน ที่ทำงาน บนรถประจำทาง หอพัก จึงต้องพยายามหาทางจัดการไฟล์ให้ออกมาเป็นไปในทางเดียวกันให้หมด ไม่ให้เกิดการลืมไฟล์ หรือไฟล์ใหม่ทับเก่า เก่าทับใหม่แบบเดิมอีก

ปัจจุบันผมแก้ไขเรื่องการสะเปะสะปะด้วยการหากรู้ว่าตัวเอง จะย้ายจากที่นึงไปทำงานอีกที่หนึ่ง ก็จะเอางาน backup ใส่ flash drive ทั้งหมดและไปแตกใส่ปลายทาง โดยทำให้มีหน้าตาเหมือนกันเพื่อทำต่อได้เลย แต่นั่นก็ยังไม่ทำให้ได้ประโยชน์พอ ผมอยากมีที่ backup online อีกสักที่ เผื่อว่าวันไหนลืมเอางานไปก็ check out เอาตัวล่าสุดจาก server มาได้เลย ง่าย และเร็วดี บวกกับไปเจอที่ให้ใช้ฟรีพอดี ตอนนี้ก็เลยกลับมาใช้งานอีกครั้งหนึ่ง 

ส่วนปัญหาที่เคยเจอก็คือเรื่อง .svn นั้นตอนนี้ไม่เจอแล้ว เพราะว่าใช้ svn ร่วมกับ IDE มันเลยไม่สนใจพวกนี้อยู่แล้ว ทำให้ทุกอย่างลงตัวมากขึ้นกว่าเมื่อก่อนมาก หรือว่า โปรแกรม FTP เอง ก็สามารถตั้ง filter ไม่ให้ upload .svn ได้แล้ว มันจะมองข้ามไปเลย ถ้ามีโอกาสก็จะมาเล่าให้ฟังอีกทีครับ

Create: Modify : 2010-07-29 09:51:20 Read : 4334 URL :