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

วิธีการติดตั้ง เราต้องกำหนด SVN Repository กันก่อน อาจเก็บไว้ที่ /home/svn แล้วเราจะมีโปรเจคย่อยๆ ในนั้น เช่น myproject เป็นต้น ให้คุณสร้างไดเรคทอรีสำหรับ SVN Repository ดังนี้

   $ sudo mkdir /home/svn
   $ cd /home/svn
   $ sudo mkdir myproject
   $ sudo chown -R www-data myproject
   $ sudo chgrp -R subversion myproject
   $ sudo chmod -R g+rws myproject

จากนั้นสร้าง project config file โดยใช้คำสั่งดังนี้

  $ sudo svnadmin create /home/svn/myproject

วิธีการ access SVN มีหลายวิธีใน how-to นี้เราใช้ svn protocal (svn://hostname/project-name) ครับ สั่งเริ่มต้นการทำงานของ SVN Server โดยใช้คำสั่ง

  $ svnserve -d –foreground -r /home/svn

เปิด terminal มาอีกหน้านึงครับแล้วลอง checkout ไฟล์ดูโดยใช้คำสั่ง

  $ svn co svn://hostname/myproject myproject

เราจะได้ไดเรคทอรี myproject ที่ checkout มา เป็นเวอร์ชั่น 0 ให้คุณเพิ่มเติมไฟล์ลงในไดเรคทอรีนี้แล้วสั่ง add และ commit ดังนี้

  $ cd myproject
  $ echo "readme" > readme.txt
  $ svn add * –force
  $ svn commit

เท่านี้เองครับ เราก้อสามารถ commit ไฟล์ไปที่ repository ได้แล้ว ถ้าอยากทราบคำสั่งใน SVN ก้อใช้

  $ svn help

สำหรับ SVN Client ที่ใช้ง่ายๆ โดยที่ไม่ต้องพิมพ์บน command line ก้อมี RapidSVN, TortoiseSVN เป็นต้น

จากครั้งก่อนยังมีติดค้างเรื่องการใช้งาน svnx บน OS X ครับ ก็เลย มาต่อกันให้จบครับ จะได้มี svn ไว้ใช้กัน ครั้งแรกที่เปิด svnx ขึ้นมาโปรแกรมจะบอกว่าไม่เจอ Binary ของ svn ครับ เข้าใจว่าเป็นเพราะเราติดจาก Fink ตัว Binary เลยไม่อยู่ใน Path ปกติ ให้แก้ค่าของ Path สำหรับ svn Binary เป็น /sw/bin/ ครับ

Picture 3
แล้วก็ เราจะพบกับหน้าต่างสองอันตามภาพครับ ตอนแรกก็ยังงงๆอยู่ ว่ามันจะมีสองอันทำไม หน้าต่างที่เป็น Working Copies จะเป็นการตั้งค่า Folder ในฝั่งของเครื่องเราครับ ส่วนหน้าต่าง Repository จะเป็นการตั้งค่าของฝั่ง Server

Picture 4
ที่หน้าต่าง Repository ให้เราคลิกที่ปุ่ม + ครับ โปรแกรมจะให้เรากรอกค่า ก็กรอกค่า SVN Server ที่ต้องการลงไปครับ

กรอกค่าเสร็จแล้ว จะมีบรรทัดที่เรากรอกข้อมูลลงไป โผล่ขึ้นมาในหน้าต่าง Repository ให้ดับเบิ้ลคลิกที่บรรทัดที่เพิ่มขึ้นมาครับ

Picture 5
จะปรากฏหน้าต่างแบบนี้ขึ้นมา ให้เราคลิกที่ Checkout (เปิดขึ้นมาแล้วไม่มีรายการไฟล์แบบในภาพไม่ต้องตกใจครับ คือผมสั่ง Checkout ไปก่อนแล้ว)

Picture 6
โปรแกรมจะถามว่า เราจะเซฟไฟล์ที่ไหน ก็เลือกโฟลเดอร์ตามต้องการครับ

Picture 7
หน้าต่าง Working Copies จะเปิดขึ้นมา ให้เราตั้งค่าครับ ก็ป้อนข้อมูลลงไป แล้วดับเบิ้ลคลิก ทำเหมือนกับหน้าต่าง Repository เลยครับ

Picture 10
เสร็จครับ รอมัน Checkout ครับ เรียบร้อยแล้ว

การใช้งานครั้งถัดๆไป ถ้าเราจะอัพเดท Repo ก็ดับเบิ้ลคลิกที่หน้าต่าง Working Copies ที่ต้องการครับ แล้วกดปุ่ม Update แต่ถ้าอยากจะ Browse SVN เฉยๆ ก็ให้เรียกผ่านหน้าต่าง Repository ครับ