เซ็ตของการแก้ไข

(สำหรับคำแนะนำเบื้องต้นเกี่ยวกับหลักการทำงานของ Mercurial ลองดู ทำความเข้าใจ Mercurial)

เซ็ตของการแก้ไข หรือ changeset (บางครั้งถูกย่อเป็น "cset") คือหน่วยของการแก้ไขที่เกิดขึ้นกับไฟล์หนึ่งหรือหลายไฟล์ใน repository เซ็ตของการแก้ไขเก็บประวัติของการเปลี่ยนแปลงทั้งหมดที่เกิดขึ้นกับไฟล์ที่ถูกแก้ไขในไดเร็คทอรี่สำหรับใช้ทำงานและถูกคอมมิทเป็นการแก้ไขครั้งใหม่ใน repository

เราสามารถระบุเซ็ตของการแก้ไขได้โดยใช้รหัสประจำเซ็ตการแก้ไข นอกจากนั้นใน repository ใด repository หนึ่งคุณสามารถระบุเซ็ตของการแก้ไขได้โดยใช้เลขครั้งที่แก้ไขได้เช่นกัน

การสร้างเซ็ตของการแก้ไขใหม่นั้นมีชื่อเรียกว่าการคอมมิท หรือเช็คอิน โดยข้อมูลที่ถูกเก็บโดยเซ็ตของการแก้ไขนั้นรวมไปถึง:

แต่ละเซ็ตการแก้ไขอาจมีบรรพบุรุษได้หนึ่งหรือสองเซ็ตการแก้ไข เซ็ตการแก้ไขที่เกิดขึ้นจากการรวมประวัติการแก้ไขจะมีบรรพบุรุษสองเซ็ต ถ้าเซ็ตการแก้ไขนั้นไม่มีบรรพบุรุษนั่นหมายความว่าเป็นเซ็ตการแก้ไขรากของ repository ในแต่ละ repository ก็อาจจะมีเซ็ตการแก้ไขรากได้หลายเซ็ต (แต่โดยปกติแล้วมักจะมีแค่เซ็ตเดียว) โดยรากแต่ละเซ็ตคือรากของแต่ละกิ่ง

ถ้าเซ็ตการแก้ไขไม่ใช่ส่วนยอดของกิ่ง เซ็ตการแก้ไขนั้นจะมีเซ็ตลูกอย่างน้อยหนึ่งเซ็ต (ซึ่งหมายความว่าเซ็ตการแก้ไขนั้นเป็นบรรพบุรุษของเซ็ตการแก้ไขลูกเหล่านั้นด้วย)

คุณสามารถอัพเดทเนื้อหาของไฟล์ในไดเร็คทอรี่สำหรับใช้ทำงานให้ตรงกับเซ็ตการแก้ไขที่ถูกไปแล้วในอดีตได้ เมื่อคุณทำเช่นนี้เซ็ตการแก้ไขนั้นจะกลายเป็นบรรพบุรุษของไดเร็คทอรี่สำหรับใช้ทำงาน

การ "อัพเดท" ไดเร็คทอรี่สำหรับใช้งานกลับไปที่เซ็ตการแก้ไขที่มีเซ็ตลูกอยู่แล้วและทำการแก้ไขไฟล์และคอมมิท จะทำให้เกิดเซ็ตการแก้ไขลูกใหม่และก็ทำให้เกิดกิ่งใหม่ด้วยเช่นกัน คุณสามารถตั้งชื่อให้กิ่งแต่ละกิ่งได้เช่นกัน

ทุกๆเซ็ตการแก้ไขใน repository จะถูกเก็บในสิ่งที่เรียกว่า changelog

นี่คือตัวอย่างว่า Mercurial เก็บข้อมูลของเซ็ตการแก้ไขยังไง:

$ hg debugdata .hg/00changelog.d 1208
1102691ceab8c8f278edecd80f2e3916090082dd <- เลขที่ nodeid ของมานิเฟสต์
mpm@selenic.com <- คนที่คอมมิท
1126146623 25200 <- วันที่คอมมิท นับเป็นวินาทีตั้งแต่ศักราชใหม่และอิงกับเวลา UTC
mercurial/commands.py <- รายชื่อของไฟล์ที่ถูกแก้ไข ตามมาด้วยคำอธิบาย

Clean up local clone file list 

We now use an explicit list of files to copy during clone so that we
don't copy anything we shouldn't.

หน้าที่เกี่ยวข้อง: ChangeSetComments, Design



CategoryGlossary CategoryThai

ThaiChangeSet (last edited 2009-05-19 19:30:58 by localhost)