คราวที่แล้วเขียนเกี่ยวกับการใช้ Subversion (svn) เบื่องต้น ได้แก่ การสร้าง Repository, เพิ่มไฟล์เข้าสู่ index ใน working copies (add), และส่งเข้าสู่ Repository (commit) ส่วนตอนนี้ก็จะขอพูดส่วนเกี่ยวกับคำสั่งต่างๆ ที่เอาไว้ติดตามความเคลื่อนไหว และการเปลี่ยนแปลงของ Repository ครับ
ข้อมูลประจำรุ่น (log)
เป็นข้อมูลประจำสำหรับรุ่นนั่น เช่น Revision ผู้ commit วันเวลา จำนวนบรรทัดที่เปลี่ยนแปลง และบันทึกประจำรุ่น มีรูปแบบตามนี้ครับ
REVISION_NO | USER_NAME | DATE_TIME | LINE_CHANGED
MESSAGE_LOG
ตัวอย่างเช่น
$ svn log file:///Users/sitdh/Repository/helloSVNServer
------------------------------------------------------------------------
r2 | sitdh | 2009-09-10 00:40:52 +0700 (Thu, 10 Sep 2009) | 1 line
Create Project
------------------------------------------------------------------------
r1 | sitdh | 2009-09-09 21:56:38 +0700 (Wed, 09 Sep 2009) | 1 line
test
------------------------------------------------------------------------
คำอธิบาย:
- บรรทัดที่ 03 และ 07 คือ ข้อมูลประจำรุ่น
- บรรทัดที่ 05 และ 09 คือ คำอธิบายการเปลี่ยนแปลงที่ผู้ commit เขียนอธิบายไว้
หมายเหตุ: ข้อมูลดังกล่าวเป็นข้อมูลที่ได้จาก Repository เนื่องจากเราระบุพาธไว้ด้านหลัง หากให้คำสั่ง svn log จะเอา log ที่อยู่ใน Working Copies มาแสดงแทน ซึ่งข้อมูลที่ได้อาจไม่ตรงกับ Repository วิธีแก้คือใช้คำสั่ง update เพื่อปรับปรุงข้อมูลให้ตรงกัน (Synchonize – sync) ระหว่าง Working Copies และ Repository
$ svn update file:///User/sitdh/Repository/helloSVNServer
At revision 3.
คำอธิบาย:
- บรรทัดที่ 01 ใช้คำสั่งเพื่อ sync ข้อมูล หามีข้อมูลที่ไม่ตรงกับ Repository จะแสดงรายการเปลี่ยนแปลงด้านล้าง
- บรรทัดที่ 02 เป็นบรรทัดที่บอก Revision ล่าสุดที่อยู่ใน Repository (HEAD Revision)
หาความแตกต่างระหว่างเวอร์ชั่น (diff)
ก่อนอื่นต้องทบทวนก่อนว่าในตัวอย่างของ blog ที่แล้วได้สร้างข้อมูลตัวอย่างและส่งเข้า Repository เรียบร้อยแล้ว (Revision 3 หรือ r3) จากนั้นได้แก้ไขข้อมูลในไฟล์ ‘index.php’ เล็กน้อย และ commit เข้าไปยัง Repository เรียบร้อยแล้ว (Revision 4 หรือ r4) ดังนั้นถ้าอยากรู้ว่าระหว่าง r3 และ r4 มีความแตกต่างตรงไหนบ้าง คำสั่งที่ช่วยได้ก็คือ diff ดังนี้
$ svn diff -r 3:4
Index: index.php
===================================================================
--- index.php (revision 3)
+++ index.php (revision 4)
@@ -1,3 +1,4 @@
-hello, world
\n";
+ echo "
hope you like it
";
?>
คำอธิบาย:
- บรรทัดที่ 02
Index จะบอกว่าตอนนี้เปรียบเทียบไฟล์ไหนอยู่
- บรรทัดที่ 04 – 05 กำหนดเครื่องหมายสำหรับ
r3 แทนด้วย ‘-’ และ r4 แทนด้วย ‘+’ โดย ใช้บอกว่าบรรทัดไหนหายไปจาก r4 (-) และเพิ่มเข้ามาใน r4 (+) ถ้าบรรทัดไหนไม่เปลี่ยนแปลงก็จะไม่มีเครื่องหมายนำหน้า
- บรรทัดที่ 07 – 08 คือ บรรทัดที่มีอยู่ใน
r3 แต่หายไปจาก r4 (เครื่องหมาย - นำหน้า)
- บรรทัดที่ 09 – 11 คือ บรรทัดที่เพิ่มเข้ามาใน
r4
- บรรทัดที่ 12 เป็นบรรทัดที่ไม่เปลี่ยนแปลง