Subversion in Actions II
คราวที่แล้วเขียนเกี่ยวกับการใช้ 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 เป็นบรรทัดที่ไม่เปลี่ยนแปลง

Leave a Reply