== บทเรียน - แบ่งปันสิ่งที่คุณแก้กับ repository อื่น == ''(บทนี้เป็นบทที่ 5 จาก 9 บทของ[[ThaiTutorial|บทเรียนการใช้งาน Mercurial]] บทก่อนหน้าคือ [[ThaiTutorialFirstChange|ทำการแก้ไขแรกของคุณ]], บทถัดไปคือ [[ThaiTutorialExport|แบ่งปันสิ่งที่คุณแก้ไขกับบุคคลอื่นๆ]])'' ใน[[ThaiTutorialFirstChange|บทที่แล้ว]]เราได้สร้าง[[ChangeSet|เซ็ตของการแก้ไข]]ใน [[Repository|repository]] `my-hello-new-output` ทีนี้ก็ถึงเวลาที่เราจะส่งสิ่งที่เราแก้ไขไปให้ repository อื่นล่ะ เพื่อทำตามวิธีการใช้งาน Mercurial ที่ดีก่อนอื่นเราต้อง[[Clone|ทำสำเนา]] repository ต้นแบบเสียก่อน {{{ $ cd .. $ hg clone my-hello my-hello-share updating working directory 2 files updated, 0 files merged, 0 files removed, 0 files unresolved }}} เราสามารถใช้คำสั่ง `tip` เพื่อดูว่า[[Tip|ส่วนปลาย]]ของแต่ละ repository อยุ่ที่การแก้ไขไหน (จำไว้ว่าปลายของ repository คือเซ็ตการแก้ไขครั้งล่าสุด) เราสามารถใช้ตัวเลือก `-q` ("be quiet") เพื่อบอกให้ Mercurial พิมพ์ผลลัพธ์แบบย่อแทน {{{ $ cd my-hello-share $ hg -q tip 1:82e55d328c8c $ cd ../my-hello-new-output $ hg -q tip 2:86794f718fb1 }}} เราจะเห็นได้ในตัวอย่างว่าส่วนปลายของทั้งสอง repository แตกต่างกัน เพราะฉะนั้นเราจะลองกลับไปที่ `my-hello-share` และดึงเอาเซ็ตการแก้ไขใหม่เข้ามาโดยใช้คำสั่ง `pull` ซึ่งจะ[[Pull|ดึงประวัติการแก้ไข]]จาก repository อื่นที่ยังไม่มีอยู่ใน repository ปัจจุบันเข้ามา {{{ $ cd ../my-hello-share $ hg pull ../my-hello-new-output pulling from ../my-hello-new-output searching for changes adding changesets adding manifests adding file changes added 1 changesets with 1 changes to 1 files (run 'hg update' to get a working copy) }}} เราจะสังเกตุได้ว่าคำสั่ง `pull` นั้นออกจะคืนผลลัพธ์มากกว่าคำสั่งอื่นๆซักหน่อย แต่ในตัวอย่างนี้คำสั่งนี้ทำงานสำเร็จเรียบร้อยดี บรรทัดสุดท้ายของผลลัพธ์มีความสำคัญมาก โดยปกติแล้ว Mercurial จะไม่แก้ไขไฟล์ใน[[WorkingDirectory|ไดเร็คทอรี่สำหรับใช้ทำงาน]]หลังจากการ ดึงประวัติการแก้ไข ซึ่งก็หมายความว่าถึงแม้ว่า repository จะมีประวัติของเซ็ตการแก้ใหม่ตัวใหม่แล้ว ไฟล์ `hello.c` ในไดเร็คทอรี่สำหรับใช้ทำงานก็ยังมีเนื้อหาเดิมเหมือนก่อนที่จะดึงประวัติการแก้ไขเข้ามาไม่มีผิด เราสามารถ[[Update|อัพเดท]]เนื้อหาของไฟล์นี้ (และไฟล์อื่นๆที่มีถูกแก้ไขจากการดึงประวัติใหม่เข้ามา) โดยทำตามคำแนะนำของ Mercurial (เราจะใช้คำสั่งแบบย่อชื่อ `up`): {{{ $ hg up 1 files updated, 0 files merged, 0 files removed, 0 files unresolved }}} ตอนนี้เราสามารถตรวจสอบได้ว่า `my-hello-share` และ `my-hello-new-output` มีเนื้อหาและประวัติการแก้ไขเหมือนกันไม่มีผิด บทต่อไปจะพูดถึงการ [[ThaiTutorialExport|แบ่งปันสิ่งที่เราแก้ไขกับบุคคลอื่น]] ---- CategoryTutorial CategoryThai