== ไดเร็คทอรี่สำหรับใช้ทำงาน == '''ไดเร็คทอรี่สำหรับใช้ทำงาน'''คือไดเร็คทอรี่ชั้นนอกสุดของ [[ThaiRepository|repository]] ซึ่งมีไฟล์ที่คุณสามารถอ่าน แก้ไข และใช้ทำงานได้ ไฟล์เหล่านี้มักมาจาก[[ThaiTip|ส่วนปลาย]]ของ repository แต่ก็อาจจะมาจาก[[Revision|การแก้ไข]]ครั้งก่อนหน้าได้เช่นกัน และก็อาจจะถูกแก้ไขแล้วแต่ยังไม่ได้ถูกคอมมิทก็ได้ ให้คิดว่าไดเร็คทอรี่สำหรับใช้ทำงานก็คือ"เซ็ตการแก้ไขที่เรากำลังจะคอมมิท"ก็ได้ ถ้าไดเร็คทอรี่สำหรับใช้ทำงานไม่มี[[LocalModifications|เนื้อหาที่ถูกแก้ไข]] เราจะเรียกไดเร็คทอรี่นี้ว่ายัง ''สะอาด'' อยู่ คุณสามารถใช้คำสั่ง {{{hg revert}}} เพื่อยกเลิกการแก้ไขที่ยังไม่ได้ถูกคอมมิททั้งหมด (ดู [[Revert]]) หรือใช้คำสั่ง {{{hg update}}} เพื่อทำให้เนื้อหาในไดเร็คทอรี่สำหรับใช้ทำงานตรงกับเนื้อหาใน[[ChangeSet|เซ็ตการแก้ไข]]ที่คุณต้องการ (ดู [[Update]]) ถ้าคุณต้องการลบไฟล์ที่อยู่ในไดเร็คทอรี่สำหรับทำงาน (ไม่ใช่ลบ repository นะ!) คุณสามารถใช้คำสั่ง {{{ hg update null }}} คุณสามารถตั้ง[[NamedBranches|ชื่อกิ่ง]]สำหรับไดเร็คทอรี่สำหรับใช้ทำงานได้ นอกจากนั้น Mercurial ยังจัดเก็บข้อมูลต่างๆเกี่ยวกับไดเร็คทอรี่สำหรับใช้ทำงานด้วย (ดู DirState) === บรรพบุรุษ === ไดเร็คทอรี่สำหรับใช้ทำงานอาจมี[[Parent|บรรพบุรุษ]]หนึ่งหรือสองเวอร์ชั่น บรรพบุรุษของไดเร็คทอรี่สำหรับใช้ทำงานนี้จะกลายเป็นบรรพบุรุษของการแก้ไขใหม่ (revision) ที่ถูกสร้างจากการคอมมิท คำสั่ง {{{hg update}}} จะเปลี่ยนบรรพบุรุษของไดเร็คทอรี่สำหรับใช้ทำงาน ในขณะที่คำสั่ง {{{hg revert}}} จะแก้ไขเฉพาะเนื้อหาของไดเร็คทอรี่ (แต่จะไม่แก้บรรพบุรุษ) ไดเร็คทอรี่สำหรับใช้ทำงานจะมีบรรพบุรุษสองเวอร์ชั่นได้จากการ[[Merge|รวมประวัติการแก้ไข]]จนกว่าการรวมประวัตินั้นจะถูกคอมมิท ทันทีที่เกิดการคอมมิท (หรือหลังจากใช้คำสั่ง update -C) ไดเร็คทอรี่สำหรับใช้ทำงานจะมีบรรพบุรุษแค่เวอร์ชั่น ''เดียว'' ซึ่งก็คือเซ็ตการแก้ไขที่มาจากการคอมมิท (หรืออัพเดท) นั้น คำสั่ง {{{hg parents}}} (โดยไม่ระบุเลขครั้งที่แก้ไข) จะแสดงรายการบรรพบุรุษของไดเร็คทอรี่สำหรับใช้ทำงาน นี่คือตัวอย่างผลลัพธ์ของคำสั่งสำหรับไดเร็คทอรี่สำหรับใช้ทำงานที่มีบรรพบุรุษแค่เวอร์ชั่นเดียว (ไดเร็คทอรี่ไม่มีการแก้ไขใดๆที่รอการคอมมิท): {{{ $ hg parents changeset: 2:86794f718fb1 tag: tip user: mpm@selenic.com date: Mon May 05 01:20:46 2008 +0200 summary: Express great joy at existence of Mercurial }}} และนี่คือตัวอย่างผลลัพธ์ของคำสั่งสำหรับไดเร็คทอรี่ที่มีบรรพบุรุษสองเวอร์ชั่น (หลังจากการรวมประวัติการแก้ไขแต่ยังไม่ได้คอมมิท): {{{ $ hg parents changeset: 2:c3844fde99f0 user: mpm@selenic.com date: Tue May 06 20:10:35 2008 +0200 summary: Add description of hello.c changeset: 3:86794f718fb1 tag: tip parent: 1:82e55d328c8c user: mpm@selenic.com date: Mon May 05 01:20:46 2008 +0200 summary: Express great joy at existence of Mercurial }}} === เมื่อไรที่ต้องมีการอัพเดทเนื้อหา === มีวิธีสองสามวิธีเพื่อที่จะรู้ว่าเราต้องอัพเดทไดเร็คทอรี่สำหรับใช้ทำงานหรือเปล่า (ลองดู [[http://www.selenic.com/pipermail/mercurial/2006-September/010951.html|เมล์ที่เกี่ยวข้องในกระดานข่าว]]): คุณสามารถเปรียบเทียบเนื้อหาในไดเร็คทอรี่สำหรับใช้ทำงานและเวอร์ชั่นที่อยู่ส่วนปลายของ repository ได้โดยใช้คำสั่ง: {{{ hg diff -r tip }}} ถ้าอยากจะดูว่ามี patch อะไรที่จะถูกนำมาใช้กับไดเร็คทอรี่สำหรับใช้ทำงานเมื่อใช้คำสั่ง update ให้ใช้คำสั่ง: {{{ hg log -r tip:. }}} ถ้าเกิดไดเร็คทอรี่สำหรับใช้ทำงานของคุณอยู่ที่เวอร์ชั่นปลายของ repository แล้ว (ไม่ต้องมีการอัพเดท) คำสั่ง {{{ hg id }}} จะเขียนคำว่า "tip" ต่อท้ายจากรหัสประจำเซ็ตการแก้ไข ---- CategoryGlossary CategoryThai