Differences between revisions 1 and 2
Revision 1 as of 2008-11-28 14:57:51
Size: 7666
Comment: Translate ChangeSet page to Thai.
Revision 2 as of 2009-05-19 19:30:58
Size: 7686
Editor: localhost
Comment: converted to 1.6 markup
Deletions are marked like this. Additions are marked like this.
Line 3: Line 3:
''(สำหรับคำแนะนำเบื้องต้นเกี่ยวกับหลักการทำงานของ Mercurial ลองดู [:ThaiUnderstandingMercurial:ทำความเข้าใจ Mercurial])'' ''(สำหรับคำแนะนำเบื้องต้นเกี่ยวกับหลักการทำงานของ Mercurial ลองดู [[ThaiUnderstandingMercurial|ทำความเข้าใจ Mercurial]])''
Line 5: Line 5:
'''เซ็ตของการแก้ไข''' หรือ changeset (บางครั้งถูกย่อเป็น "cset") คือหน่วยของการแก้ไขที่เกิดขึ้นกับไฟล์หนึ่งหรือหลายไฟล์ใน [:Repository:repository] เซ็ตของการแก้ไขเก็บประวัติของการเปลี่ยนแปลงทั้งหมดที่เกิดขึ้นกับ[:ThaiLocalModifications:ไฟล์ที่ถูกแก้ไขในไดเร็คทอรี่สำหรับใช้ทำงาน]และถูก[:ThaiCommit:คอมมิท]เป็น[:Revision:การแก้ไข]ครั้งใหม่ใน repository '''เซ็ตของการแก้ไข''' หรือ changeset (บางครั้งถูกย่อเป็น "cset") คือหน่วยของการแก้ไขที่เกิดขึ้นกับไฟล์หนึ่งหรือหลายไฟล์ใน [[Repository|repository]] เซ็ตของการแก้ไขเก็บประวัติของการเปลี่ยนแปลงทั้งหมดที่เกิดขึ้นกับ[[ThaiLocalModifications|ไฟล์ที่ถูกแก้ไขในไดเร็คทอรี่สำหรับใช้ทำงาน]]และถูก[[ThaiCommit|คอมมิท]]เป็น[[Revision|การแก้ไข]]ครั้งใหม่ใน repository
Line 7: Line 7:
เราสามารถระบุเซ็ตของการแก้ไขได้โดยใช้[:ThaiChangeSetID:รหัสประจำเซ็ตการแก้ไข] นอกจากนั้นใน repository ใด repository หนึ่งคุณสามารถระบุเซ็ตของการแก้ไขได้โดยใช้[:ThaiRevisionNumber:เลขครั้งที่แก้ไข]ได้เช่นกัน เราสามารถระบุเซ็ตของการแก้ไขได้โดยใช้[[ThaiChangeSetID|รหัสประจำเซ็ตการแก้ไข]] นอกจากนั้นใน repository ใด repository หนึ่งคุณสามารถระบุเซ็ตของการแก้ไขได้โดยใช้[[ThaiRevisionNumber|เลขครั้งที่แก้ไข]]ได้เช่นกัน
Line 9: Line 9:
การสร้างเซ็ตของการแก้ไขใหม่นั้นมีชื่อเรียกว่าการ[:ThaiCommit:คอมมิท] หรือเช็คอิน โดยข้อมูลที่ถูกเก็บโดยเซ็ตของการแก้ไขนั้นรวมไปถึง: การสร้างเซ็ตของการแก้ไขใหม่นั้นมีชื่อเรียกว่าการ[[ThaiCommit|คอมมิท]] หรือเช็คอิน โดยข้อมูลที่ถูกเก็บโดยเซ็ตของการแก้ไขนั้นรวมไปถึง:
Line 11: Line 11:
 * [:ThaiNodeid:nodeid] ของ [:ThaiManifest:มานิเฟสต์]  * [[ThaiNodeid|nodeid]] ของ [[ThaiManifest|มานิเฟสต์]]
Line 14: Line 14:
 * ชื่อของ[:Branch:กิ่ง]ที่ถูกทำการแก้ไข (จะใช้ชื่อ "default" ถ้าไม่ได้ระบุกิ่ง)  * ชื่อของ[[Branch|กิ่ง]]ที่ถูกทำการแก้ไข (จะใช้ชื่อ "default" ถ้าไม่ได้ระบุกิ่ง)
Line 16: Line 16:
แต่ละเซ็ตการแก้ไขอาจมี[:ThaiParent:บรรพบุรุษ]ได้หนึ่งหรือสองเซ็ตการแก้ไข เซ็ตการแก้ไขที่เกิดขึ้นจากการ[:ThaiMerge:รวมประวัติการแก้ไข]จะมีบรรพบุรุษสองเซ็ต ถ้าเซ็ตการแก้ไขนั้นไม่มีบรรพบุรุษนั่นหมายความว่าเป็นเซ็ตการแก้ไขรากของ repository ในแต่ละ repository ก็อาจจะมีเซ็ตการแก้ไขรากได้หลายเซ็ต (แต่โดยปกติแล้วมักจะมีแค่เซ็ตเดียว) โดยรากแต่ละเซ็ตคือรากของแต่ละกิ่ง แต่ละเซ็ตการแก้ไขอาจมี[[ThaiParent|บรรพบุรุษ]]ได้หนึ่งหรือสองเซ็ตการแก้ไข เซ็ตการแก้ไขที่เกิดขึ้นจากการ[[ThaiMerge|รวมประวัติการแก้ไข]]จะมีบรรพบุรุษสองเซ็ต ถ้าเซ็ตการแก้ไขนั้นไม่มีบรรพบุรุษนั่นหมายความว่าเป็นเซ็ตการแก้ไขรากของ repository ในแต่ละ repository ก็อาจจะมีเซ็ตการแก้ไขรากได้หลายเซ็ต (แต่โดยปกติแล้วมักจะมีแค่เซ็ตเดียว) โดยรากแต่ละเซ็ตคือรากของแต่ละกิ่ง
Line 18: Line 18:
ถ้าเซ็ตการแก้ไขไม่ใช่[:ThaiHead:ส่วนยอด]ของกิ่ง เซ็ตการแก้ไขนั้นจะมีเซ็ตลูกอย่างน้อยหนึ่งเซ็ต (ซึ่งหมายความว่าเซ็ตการแก้ไขนั้นเป็นบรรพบุรุษของเซ็ตการแก้ไขลูกเหล่านั้นด้วย) ถ้าเซ็ตการแก้ไขไม่ใช่[[ThaiHead|ส่วนยอด]]ของกิ่ง เซ็ตการแก้ไขนั้นจะมีเซ็ตลูกอย่างน้อยหนึ่งเซ็ต (ซึ่งหมายความว่าเซ็ตการแก้ไขนั้นเป็นบรรพบุรุษของเซ็ตการแก้ไขลูกเหล่านั้นด้วย)
Line 20: Line 20:
คุณสามารถ[:ThaiUpdate:อัพเดท]เนื้อหาของไฟล์ใน[:ThaiWorkingDirectory:ไดเร็คทอรี่สำหรับใช้ทำงาน]ให้ตรงกับเซ็ตการแก้ไขที่ถูกไปแล้วในอดีตได้ เมื่อคุณทำเช่นนี้เซ็ตการแก้ไขนั้นจะกลายเป็นบรรพบุรุษของไดเร็คทอรี่สำหรับใช้ทำงาน คุณสามารถ[[ThaiUpdate|อัพเดท]]เนื้อหาของไฟล์ใน[[ThaiWorkingDirectory|ไดเร็คทอรี่สำหรับใช้ทำงาน]]ให้ตรงกับเซ็ตการแก้ไขที่ถูกไปแล้วในอดีตได้ เมื่อคุณทำเช่นนี้เซ็ตการแก้ไขนั้นจะกลายเป็นบรรพบุรุษของไดเร็คทอรี่สำหรับใช้ทำงาน
Line 22: Line 22:
การ "อัพเดท" ไดเร็คทอรี่สำหรับใช้งานกลับไปที่เซ็ตการแก้ไขที่มีเซ็ตลูกอยู่แล้วและทำการแก้ไขไฟล์และคอมมิท จะทำให้เกิดเซ็ตการแก้ไขลูกใหม่และก็ทำให้เกิดกิ่งใหม่ด้วยเช่นกัน คุณสามารถ[:ThaiNamedBranches:ตั้งชื่อให้กิ่ง]แต่ละกิ่งได้เช่นกัน การ "อัพเดท" ไดเร็คทอรี่สำหรับใช้งานกลับไปที่เซ็ตการแก้ไขที่มีเซ็ตลูกอยู่แล้วและทำการแก้ไขไฟล์และคอมมิท จะทำให้เกิดเซ็ตการแก้ไขลูกใหม่และก็ทำให้เกิดกิ่งใหม่ด้วยเช่นกัน คุณสามารถ[[ThaiNamedBranches|ตั้งชื่อให้กิ่ง]]แต่ละกิ่งได้เช่นกัน
Line 24: Line 24:
ทุกๆเซ็ตการแก้ไขใน repository จะถูกเก็บในสิ่งที่เรียกว่า [:ThaiChangelog:changelog] ทุกๆเซ็ตการแก้ไขใน repository จะถูกเก็บในสิ่งที่เรียกว่า [[ThaiChangelog|changelog]]
Line 41: Line 41:
หน้าที่เกี่ยวข้อง: ["ChangeSetComments"], ["Design"] หน้าที่เกี่ยวข้อง: [[ChangeSetComments]], [[Design]]
Line 45: Line 45:
   * วิธีการคำนวน hash ของเซ็ตการแก้ไขนั้นบ่งบอกว่าเซ็ตการแก้ไขเหมือนกับสภาพของ repository ณ เวลาใดเวลาหนึ่ง พร้อมๆกับบรรพบุรุษทั้งหมดที่ทำให้เกิดการแก้ไขนั้นๆ (หรือจะเรียกได้ว่าทุกๆเซ็ตการแก้ไขที่นำไปสู่เซ็ตนั้น) ใน Darcs ความหมายนี้เทียบเท่ากับ [http://www.darcs.net/manual/node7.html#SECTION00781000000000000000 tag]    * วิธีการคำนวน hash ของเซ็ตการแก้ไขนั้นบ่งบอกว่าเซ็ตการแก้ไขเหมือนกับสภาพของ repository ณ เวลาใดเวลาหนึ่ง พร้อมๆกับบรรพบุรุษทั้งหมดที่ทำให้เกิดการแก้ไขนั้นๆ (หรือจะเรียกได้ว่าทุกๆเซ็ตการแก้ไขที่นำไปสู่เซ็ตนั้น) ใน Darcs ความหมายนี้เทียบเท่ากับ [[http://www.darcs.net/manual/node7.html#SECTION00781000000000000000|tag]]

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

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

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

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

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

  • nodeid ของ มานิเฟสต์

  • รายชื่อของไฟล์ที่ถูกแก้ไข
  • ข้อมูลเกี่ยวกับคนที่ทำการแก้ไข ("committer") เหตุผลหรือคำอธิบายการแก้ไข และวันที่และเวลาที่ถูกแก้ไข
  • ชื่อของกิ่งที่ถูกทำการแก้ไข (จะใช้ชื่อ "default" ถ้าไม่ได้ระบุกิ่ง)

แต่ละเซ็ตการแก้ไขอาจมีบรรพบุรุษได้หนึ่งหรือสองเซ็ตการแก้ไข เซ็ตการแก้ไขที่เกิดขึ้นจากการรวมประวัติการแก้ไขจะมีบรรพบุรุษสองเซ็ต ถ้าเซ็ตการแก้ไขนั้นไม่มีบรรพบุรุษนั่นหมายความว่าเป็นเซ็ตการแก้ไขรากของ 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


  • คำถาม: เซ็ตของการแก้ไขเทียบเท่ากับสภาพของ repository ณ เวลาใดเวลาหนึ่ง (เหมือนเลขที่การแก้ไขในซับเวอร์ชั่น) หรือว่าเทียบเท่ากับการแก้ไขที่เกิดขึ้นกับไฟล์ (เหมือนกับ Darcs patch)?
    • วิธีการคำนวน hash ของเซ็ตการแก้ไขนั้นบ่งบอกว่าเซ็ตการแก้ไขเหมือนกับสภาพของ repository ณ เวลาใดเวลาหนึ่ง พร้อมๆกับบรรพบุรุษทั้งหมดที่ทำให้เกิดการแก้ไขนั้นๆ (หรือจะเรียกได้ว่าทุกๆเซ็ตการแก้ไขที่นำไปสู่เซ็ตนั้น) ใน Darcs ความหมายนี้เทียบเท่ากับ tag


CategoryGlossary CategoryThai

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