บทเรียน - ดูประวัติการแก้ไขใน repository

(หน้านี้เป็นหน้าที่ 2 จาก 9 ของ[:Tutorial:บทเรียน]การใช้งาน Mercurial หน้าก่อนหน้าคือ [:ThaiTutorialClone], หน้าถัดไปคือ [:ThaiTutorialFirstChange])

หลังจากที่เราได้ทำตามขั้นตอนใน ThaiTutorialClone เราก็จะมีสำเนาส่วนตัวของ repository ในเครื่องตัวเองชื่อ my-hello

ลองมาดูกันว่า [:Repository:repository] นี้มีประวัติการแก้ไขอะไรบ้าง เราสามารถดูประวัติได้โดยใช้คำสั่ง log ซึ่งจะพิมพ์สรุปการแก้ไขทุกๆอันที่เกิดขึ้นใน repository โดยเริ่มแสดงจากการแก้ไขล่าสุดไปจนถึงการแก้ไขแรก

$ cd my-hello
$ hg log
changeset:   1:82e55d328c8c
tag:         tip
user:        mpm@selenic.com
date:        Fri Aug 26 01:21:28 2005 -0700
summary:     Create a makefile

changeset:   0:0a04b987be5a
user:        mpm@selenic.com
date:        Fri Aug 26 01:20:50 2005 -0700
summary:     Create a standard "hello, world" program

เราลองมาทำความเข้าใจแต่ละบรรทัดของผลลัพธ์กัน

เราสามารถดูรายละเอียดเพิ่มเติมได้โดยขอให้ Mercurial พิมพ์ผลลัพธ์มากหน่อยผ่านตัวเลือก -v หรือจะใช้ตัวเลือก --debug ที่มีผลในระดับ global กับทุกๆคำสั่งก็ได้:

$ hg log -v
changeset:   1:82e55d328c8c
tag:         tip
user:        mpm@selenic.com
date:        Fri Aug 26 01:21:28 2005 -0700
files:       Makefile
description:
Create a makefile

(...)

$ hg log --debug
changeset:   1:82e55d328c8ca4ee16520036c0aaace03a5beb65
tag:         tip
parent:      0:0a04b987be5ae354b710cefeba0e2d9de7ad41a9
parent:      -1:0000000000000000000000000000000000000000
manifest:    1:0c7c1d435e6703e03ac6634a7c32da3a082d1600
user:        mpm@selenic.com
date:        Fri Aug 26 01:21:28 2005 -0700
files+:      Makefile
extra:       branch=default
description:
Create a makefile

(...)

ผลลัพธ์แบบละเอียดนี้มีฟิลด์เพิ่มขึ้นมาอีกสองสามอัน

ผลลัพธ์จากตัวเลือก --debug เพิ่มฟิลด์เหล่านี้ (ลองดู [:DebuggingFeatures]):

คำสั่ง log มาพร้อมกับตัวเลือก -r เพื่อดูรายละเอียดสำหรับ changeset โดยเจาะจง

$ hg log -r1
changeset:   1:82e55d328c8c
tag:         tip
user:        mpm@selenic.com
date:        Fri Aug 26 01:21:28 2005 -0700
summary:     Create a makefile

<!> ตัวเลือก -r สนับสนุน syntax มากมายในการเลือกช่วงของ changesets แต่เนื่องจากเรามีจำนวน changeset ในตัวอย่างค่อนข้างจำกัด เราจึงไม่สามารถแสดงวิธีการใช้ตัวเลือกต่างๆได้ ลองอ่าน [http://www.selenic.com/mercurial/hg.1.html#log manpage] เพิ่มเติมดู

นอกจากนั้นก็ยังมีตัวเลือก -p ที่มาพร้อมกับคำสั่ง log เพื่อแสดง patch ต่างที่เกี่ยวข้องกับ changeset:

$ hg log -r1 -p
changeset:   1:82e55d328c8c
tag:         tip
user:        mpm@selenic.com
date:        Fri Aug 26 01:21:28 2005 -0700
summary:     Create a makefile

diff -r 0a04b987be5a -r 82e55d328c8c Makefile
--- /dev/null   Fri Aug 26 01:20:50 2005 -0700
+++ b/Makefile  Fri Aug 26 01:21:28 2005 -0700
@@ -0,0 +1,1 @@
+all: hello

เรายังสามารถใช้คำสั่ง tip เพื่อแสดงรายละเอียดของส่วนปลายหรือ changeset ล่าสุดของ ของ repository คิดซะว่าคำสั่ง tip เป็นทางลัดสำหรับคำสั่ง log -r tip

$ hg tip
changeset:   1:82e55d328c8c
tag:         tip
user:        mpm@selenic.com
date:        Fri Aug 26 01:21:28 2005 -0700
summary:     Create a makefile

$ hg log -r tip
changeset:   1:82e55d328c8c
tag:         tip
user:        mpm@selenic.com
date:        Fri Aug 26 01:21:28 2005 -0700
summary:     Create a makefile

ถึงตรงนี้เราพอจะมีไอเดียบ้างแล้วว่าเกิดอะไรขึ้นใน repository ถึงเวลาที่จะแก้ไขไฟล์แล้ว! ลุยต่อที่ [:ThaiTutorialFirstChange]!


CategoryTutorial