บทเรียน - แบ่งปันสิ่งที่คุณแก้กับ repository อื่น

(บทนี้เป็นบทที่ 5 จาก 9 บทของบทเรียนการใช้งาน Mercurial บทก่อนหน้าคือ ทำการแก้ไขแรกของคุณ, บทถัดไปคือ แบ่งปันสิ่งที่คุณแก้ไขกับบุคคลอื่นๆ)

ในบทที่แล้วเราได้สร้างเซ็ตของการแก้ไขใน repository my-hello-new-output ทีนี้ก็ถึงเวลาที่เราจะส่งสิ่งที่เราแก้ไขไปให้ repository อื่นล่ะ

เพื่อทำตามวิธีการใช้งาน Mercurial ที่ดีก่อนอื่นเราต้องทำสำเนา 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 เพื่อดูว่าส่วนปลายของแต่ละ 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 ซึ่งจะดึงประวัติการแก้ไขจาก 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 จะไม่แก้ไขไฟล์ในไดเร็คทอรี่สำหรับใช้ทำงานหลังจากการ ดึงประวัติการแก้ไข ซึ่งก็หมายความว่าถึงแม้ว่า repository จะมีประวัติของเซ็ตการแก้ใหม่ตัวใหม่แล้ว ไฟล์ hello.c ในไดเร็คทอรี่สำหรับใช้ทำงานก็ยังมีเนื้อหาเดิมเหมือนก่อนที่จะดึงประวัติการแก้ไขเข้ามาไม่มีผิด

เราสามารถอัพเดทเนื้อหาของไฟล์นี้ (และไฟล์อื่นๆที่มีถูกแก้ไขจากการดึงประวัติใหม่เข้ามา) โดยทำตามคำแนะนำของ Mercurial (เราจะใช้คำสั่งแบบย่อชื่อ up):

$ hg up
1 files updated, 0 files merged, 0 files removed, 0 files unresolved

ตอนนี้เราสามารถตรวจสอบได้ว่า my-hello-share และ my-hello-new-output มีเนื้อหาและประวัติการแก้ไขเหมือนกันไม่มีผิด

บทต่อไปจะพูดถึงการ แบ่งปันสิ่งที่เราแก้ไขกับบุคคลอื่น


CategoryTutorial CategoryThai

ThaiTutorialShareChange (last edited 2009-05-19 19:30:56 by localhost)