Skip to main content

เรียนรู้และใช้งาน Subversion (SVN) เพื่อการจัดการ Source Code

Subversion คืออะไร

Subversion คือ free/open source นะครับโดยชื่อเต็มๆ ของมันก็คือ Version Control System (VCS) ซึ่งตัวมันเองนั่นทำงานโดยการจัดการระบบแบ็คอัพของไฟล์โดยเราสามารถที่จะดู History ย้อนหลังได้โดยการจัดเก็บจะเก็บ Version ตัวโปรแกรมสามารถจะ Recovery ไฟล์ได้ในทุกๆ Version History พอมองภาพออกกันแล้วหรือยังครับว่าถ้าเราใช้งานเจ้่า Subversion Control นี้กับโค็ดของเรา เมื่อเราแบ็คอัพโค็ดของเราเราก็ไม่ต้องเก็บไฟล์ทั้งหมด เราแค่แบ็คอัพไฟล์ที่เราได้มีการเปลี่ยนแปลงเท่านั่นเองครับ แล้วเมื่อเวลาที่ไฟล์ของเรานั่นหายไป หรือเสียหายจากสาเหตุอะไรก็ตามเราก็สามารถใช้เจ้า Subversion นี้ Recovery ไฟล์องเรากลับมาได้โดยเราสามารถเลือกได้ด้วยว่าเราจะ Recovery ไฟล์ใน Version ไหนที่เราได้แบ็คอัพไปก็ได้ครับ เราสามารถแยกข้อดีของ Subversion ได้เป็นข้อๆดังนี้ครับ
  • สามารถ Backup และ Restore ไฟล์ได้
  • Synchronization ไฟล์ทำให้ไฟล์นั่นเป็นเวอร์ชั่นใหม่เสมอไม่ว่าจะมีผู้ใช้งานไฟล์นั่นกี่คนก็ตาม
  • สามารถ Track back history ของแต่ละไฟล์ได้
  • ใน History นั่นสามารถบอกรายละเอียดได้มากกว่าการจัดเก็บแบบธรรมคือสามารถบอกได้ว่าไฟล์นี้ใครเป็นเจ้าของ และใครบ้างที่แก้ไขไฟล์นี้
  • ควบคุมจัดการได้ง่ายเมื่อต้องการควบคุมโค็ดที่พัฒนาโดยโปรแกรมเมอร์หลายคนในทีม

จากรูปผมขอยกตัวอย่างง่ายๆ นะครับเช่นในทีมของเรามี 3 คนที่ต้องทำงานกันอยู่ในโปรเจ็ดเดียวกัน แล้วทั้ง 3 คนนั่นก็ต้องแก้ไขไฟล์เดียวกันที่ชื่อว่า A.java ถ้าสมมุติว่าทั้ง 3 คนนั่นต้องการที่จะแก้ไขไฟล์ A.java ในเวลาเดียวกันเช่น คนแรกเซฟไฟล์ก่อน คนที่สองเซฟตาม คนที่สามตามไปติดๆ แน่นอนครับข้อมูลบางส่วนจะหายไปเพราะสุดท้ายแล้วไฟล์ที่จะเป็นก็คือไฟล์ของคนที่สาม เพราะว่าคนที่สามไม่ได้อัพเดทไฟล์ของคนที่หนึ่งแลพที่สองก่อน เห็นมั้ยครับว่าถ้าเราทำงานโค็ดเดียวกันหลายคนปัญหาแบบนี้เกิดขึ้นแน่นอน แต่ทว่าถ้าเราใช้ Subversion ตัว Subversion เองจะจัดการเรื่องพวกนี้ให้เราอัตโนมัติเลยครับ เพราะว่าถ้าใช้ Subversion แล้วไฟล์สุดท้ายก็จะเป็นไฟล์ที่ได้รับการแก้แล้วของทั้งสามคนครับ

ใช้งาน Subversion ต้องทำไงบ้าง

หลักๆ ตัว Subversion ทำงานแบบ Client Server ดังนั่นเราจำเป็นที่จะต้องมี Subversion Server ก็นะครับเราก็ทำได้โดยการติดตั้งโปรแกรมแต่ในบทความนี้ผมจะไม่ขอกล่าวถึงการติดตั้ง Subversion Server นะครับแต่ผทจะขอกล่าวถึง Google Code ที่ซึ่งเป็นอีกหนึ่งบริการดีๆ จาก Google โดยตัวเจ้า Google Code เองนั่นสสร้างขึ้นมาเพื่อ Developer ครับตัวมันเองจะทำหน้าที่เหมือน Subversion Server ทุกประการเราไม่จำเป็นที่ต้องติดตั้ง Server เองเลยครับแต่ๆ มีข้อแม้ว่าทุกๆ ดโค็ดที่เก็บอยู่ใน Google Code นั่นจะต้องเป็น Open Project หรือว่าเป็น Open Source Code นั่นเองครับ กล่าวคือใครๆ ก็สามารถดาวโหลดโค็ดของเราไปใช้งานได้ครับ :-)

เตรียมพร้อมกับ Google Code

ก่อนอื่นเราจะต้องมี Google Account ก่อนนะครับถึงจะใช้งาน Google Code ได้เมื่อเรามี Google Account แล้วไฟต่อที่นี้เลยครับ http://code.google.com/ คลิ๊ก Create a new project


เราจะลองสร้างโปรเจ็คขึ้นมาสักตัวนะครับชื่อว่า test-simple-google-code โดยเราจะใช้โปรเจ็คนี้ในการเขียนโปรแกรม HTML ขึ้นมาสักตัวนะครับ



เมื่อเราสร้างเสร็จแล้วจะได้หน้า Project Home ของเราประมาณนี้นะครับ


ให้เราคลิ๊กเลือก Sources Tab นะครับเพื่อเราจะดูว่าโฟรเจ็คของเรานั่นมี URL อยู่ที่ไหนนะครับ


มาถึงขั้นตอนนี้แล้วอีกอย่างเดียวที่เราจ้องการก็คือ Password นะครับเราสามารถดู Password ของเราได้จาก Profile นะครับ


เพียงเท่านี้เราก็สร้างโปรเจ็คชื่่อว่า test-simple-google-code บน Google Code เรียบร้อยแล้วนะครับที่เหลือก็เพียงแต่ Setup SVN Client ที่เครื่องของเราเพื่อที่จะ Checkout Project Directory มาครั้งแรกเท่านั่นครับ อ่านต่อกันเลยครับ

เตรียมพร้อมกับ Subversion Client ด้วย TortoiseSVN

ก่อนอื่นเลยเราต้องไปดาวโหลดตัวโปรแกรม TortoiseSVN มาก่อนครับจากที่นี้ครับ http://tortoisesvn.net/downloads.html ตัวโปรแกรม TotoiseSVN นี้จะทำหน้าที่เป็น Subversion Client ครับเพื่อจะทำหน้าที่ติดต่อกับ Subversion Server เมื่อดาวโหลดมาเรียบร้อยแล้วก็ติดตั้งเลยนะครับ ขึ้นตอนการติดตั้งผมไม่ได้เขียนไว้ในบทความนี้นะครับเพราะว่ามันแค่คลิ๊กๆ เท่านั่นนะครับ เมื่อติดตั้งโปรแกรมเสร็จให้รีสตาร์เครื่องหลังจากติดตั้งเสร็จรอบหนึ่งก่อนนะครับ เพื่อให้ตัวโปรแกรม TotoiseSVN นั่นได้ติดตั้งการทำงานในระบบ Windows ก่อนนะครับ

เมื่อติดตั้งเสร็จเรียบร้อยแล้วถ้าไม่มีปัญหาอะไรเราจะได้เมนูใน Contextual Menu ประมาณนี้นะครับ


มาถึงตอนนี้เราจะ Checkout Directory Project ของเราจาก Google Code มาไว้ที่เครื่องของเรานะครับโดยผมจะเก็บไว้ใน C:\test นะครับ


จะมีวินโดว์หน้าตาแบบนี้ขึ้นมาเพื่อให้เราใส่ URL ของ Source Code URL นะครับ


ส่วนตัว Source Code URL เราสามารถก็อบปี้ได้จาก


เมื่อเรา Checkout เสร็จเรียบร้อยเราก็จะได้หน้าจอแสดงผลประมาณนี้นะครับ


เมื่อเรามาดูที่ C:\test ก็จะมี Directory .svn ถูกสร้างขึ้นมานะครับ .svn นี้ห้ามลบเด็ดขาดนะครับเพราะว่าตัวโปรแกรม TortoiseSVN ของเรานั่นจะใช้ .svn นี้ในการจัดการเกี่ยวกับไฟล์ Version นะครับ


มาถึงคร่าวนี้เราจะมาสร้าง HTML ไฟล์ง่ายๆ สักไฟล์นะครับเพื่อเราจะลองใช้งาน Subversion ของเรานะครับ โดยผมจะเขียนโค็ดตามด้านล่างแล้วบันทึกไฟล์ไว้ที่ C:\test\test.htm นะครับ


จากนั่นเราก็ทำการ Add ไฟล์ที่เราต้องการจะทำ Subversion โดยการแอดไฟล์นั่นเข้าไปที่ Local SVN (.svn นั่นเละครับ) ก่อนนะครับทำได้โดย


เมื่อทำการ Add เรียบร้อยเราควรจะได้ Icon ประมาณนี้นะครับ


จากนั่นเราก็ทำการ Commit ส่งไฟล์ของเราขึ้นไปยัง Google Code Subversion Server นะครับ


จะมีหน้าจอขึ้นมาเพื่อให้เราใส่ข้อมูลหรือว่า Log ว่าในแต่ละครั้งที่เรา Commit ขึ้นไปนั่นมีรายละเอียดยังไงบ้าง หรือพูดง่ายๆว่าก็คือเตือนความจำเองนั่นเละครับ


เมื่อเรากด OK จะมีหน้าจอขึ้นมาถามเรา Username Password ให้เราใส่ไปนะครับ Username คือ Email ของเรานะครับส่วน Password ก็คือที่เราได้จากหน้า Setting ครับ


เมื่อการ Commit ไม่มีปัญหาอะไรเราก็จะได้ Revision เป็น 2 เพิ่มมาแล้วนะครับ


ที่นี้เราลองแก้ไขไฟล์ test.htm ของเรากันนะครับ เพราะว่าเดี่ยวจะลองดู History ของการแก้ไขไฟล์กันนะครับ ว่าไอ้เจ้า Subversion นี้มันเมพขิงๆ จริงๆ ครับ ลองแก้ไฟล์ตามนี้นะครับ


เมื่อเราแก้ไฟล์แล้วสังเกตุที่ Icon นะครับจะเป็นเครื่องหมายตกใจ นั่นแสดงให้เห็นว่าไฟล์ของเรามีการเปลี่ยนแปลงไงครับ


เหมือนเดิมครับเราก็ Commit กลับขึ้นไปที่ Google Code Subversion Server นะครับ


ในขั้นตอนนี้ถ้าเราต้องการจะดูว่าไฟล์เรานั่นมีการแก้ไขอะไรบ้างนั่นเราก็สามารถดับเบิ้ลคลิ๊กที่ไฟล?ที่เราจะดูได้เลยครับแล้วจะมีหน้าต่างเปิดขึ้นมาแสดงว่าทั้งไฟล์ก่อนการแก้ไข และไฟล์หลังการแก้ไขเป็นยังไงบ้าง


เมื่อเรา Commit เสร็จสังเกตุนะครับว่า Revision จะเป็น 3 แล้วนะครับ นั่นไงครับ Version Control ที่เราพูดถึงเราสามารถมาดู History ได้อีกทีในภายหลังครับ


ถ้าเราต้องการที่จะดูว่า History ของไฟล์นั่นเป็นไงบ้างเราสามารถดูได้โดย


จะมีหน้าต่างแสดงรายละเอียด Commit ทั้งหมดที่เรา Commit ไปนะครับเราสามารถดูรายละเอียดได้โดยดับคลิ๊กไฟล์ที่เราต้องการดูเลยนะครับ


เครดิต :: pstudiodev

Comments

Popular posts from this blog

วิธีการใช้ Subversion (SVN) – Branch และ Merge ใน Subversion

มาต่อจากตอนที่แล้วด้วยเรื่องของ Branch และ Merge ครับ เรื่องนี้เป็นหัวใจของระบบ Version Control เลยนะเนี่ย การจัด Repository มาพูดถึงการจัด Repository ก่อนครับ โดยปกติแล้วเค้าจะจัดกันแบบนี้ RepoRoot --- ProjectA --- ---  trunk --- ---  branches  --- --- --- branchA --- --- --- branchB --- ---  tags --- ---  --- 1.0.0 --- ---  --- 1.1.5 --- ProjectB  ถ้าใช้ TortoiseSVN อยู่ คำว่า “จัด” ที่ผมใช้นีหมายถึงให้เปิด  Repo Browser  ขึ้นมาแล้วสร้าง Structure ตามตัวหนาด้านบนนะครับ ส่วนที่สำคัญคือ trunk, branches, และ tagsซึ่งจริงๆแล้วชื่อพวกนี้ไม่ได้เป็นข้อบังคับหรือว่าอะไรเลยไม่ได้มีความหมายพิเศษต่อการทำงานของ SVN ด้วยแต่ว่าเป็นอะไรที่คนส่วนใหญ่เค้าทำกัน แต่ SVN ก็จะมองเป็นโฟลเดอร์ธรรมดาๆดังนั้นเราจึงควรทำอะไรตามคนส่วนใหญ่ จะได้สื่อสารกันได้ง่ายๆ :) คำว่า trunk และ branches มาจากส่วนประกอบของต้นไม้ คือ ลำต้น และ กิ่ง โดยลำต้น หรือ  trunk ก็จะหมายถึงสายการพัฒนากลางหรือสายพัฒนาหลักและเวอร์ชันล่าสุดของโปรเจกก็มักจะอยู่ที่นี่ถ้าอยากได้ซอ...

ARDUINO UNO – PROGRAMMING WITH A SERIAL PORT (เบิร์นโปรแกรม arduino ผ่านทาง serial port)

ARDUINO UNO – PROGRAMMING WITH A SERIAL PORT เบิร์นโปรแกรม arduino ผ่านทาง serial port 1. ขาที่ใช้ในการต่อสายจะมีทั้งหมด 4 ขาคือ 2,3,4 และ 5 ของ port DB9 โดยขา 2 , 3  จะเป็นขา Data TX,RX ขาที่ 4 จะเป็น DTR ซึ่งจะต้องไปต่อขา reset ของ arduino และขาที่ 5 เป็น Ground 2. เอา C5 และ RN4 ออกจากบร์อด โดยการบัดกรี (ตามรูป) 3. ต่อ RS232 (ตามรูป) ในที่นี้ใช้ IC MAX232 ต่อระหว่าง DB9 และ arduino TX,RX และ Ground ที่ขา DTR ระหว่าง IC MAX232 กับขา Reset ของ arduino ต้องเพิ่ม capacitor 0.1uF เข้าไป 1 ตัว http://blog.solutions-cubed.com/programming-the-arduino-uno-with-a-serial-port

การ Convert Server Linux ไปยัง VMware

VMWare Converting Physical Linux Machine to Virtual