Differences between revisions 4 and 5
Revision 4 as of 2008-11-21 10:17:16
Size: 5154
Comment: Edit contents to make reading easier.
Revision 5 as of 2009-05-19 19:30:56
Size: 5166
Editor: localhost
Comment: converted to 1.6 markup
Deletions are marked like this. Additions are marked like this.
Line 3: Line 3:
''(บทนี้เป็นบทที่ 5 จาก 9 บทของ[:ThaiTutorial:บทเรียนการใช้งาน Mercurial] บทก่อนหน้าคือ [:ThaiTutorialFirstChange:ทำการแก้ไขแรกของคุณ], บทถัดไปคือ [:ThaiTutorialExport:แบ่งปันสิ่งที่คุณแก้ไขกับบุคคลอื่นๆ])'' ''(บทนี้เป็นบทที่ 5 จาก 9 บทของ[[ThaiTutorial|บทเรียนการใช้งาน Mercurial]] บทก่อนหน้าคือ [[ThaiTutorialFirstChange|ทำการแก้ไขแรกของคุณ]], บทถัดไปคือ [[ThaiTutorialExport|แบ่งปันสิ่งที่คุณแก้ไขกับบุคคลอื่นๆ]])''
Line 5: Line 5:
ใน[:ThaiTutorialFirstChange:บทที่แล้ว]เราได้สร้าง[:ChangeSet:เซ็ตของการแก้ไข]ใน [:Repository:repository] `my-hello-new-output` ทีนี้ก็ถึงเวลาที่เราจะส่งสิ่งที่เราแก้ไขไปให้ repository อื่นล่ะ ใน[[ThaiTutorialFirstChange|บทที่แล้ว]]เราได้สร้าง[[ChangeSet|เซ็ตของการแก้ไข]]ใน [[Repository|repository]] `my-hello-new-output` ทีนี้ก็ถึงเวลาที่เราจะส่งสิ่งที่เราแก้ไขไปให้ repository อื่นล่ะ
Line 7: Line 7:
เพื่อทำตามวิธีการใช้งาน Mercurial ที่ดีก่อนอื่นเราต้อง[:Clone:ทำสำเนา] repository ต้นแบบเสียก่อน เพื่อทำตามวิธีการใช้งาน Mercurial ที่ดีก่อนอื่นเราต้อง[[Clone|ทำสำเนา]] repository ต้นแบบเสียก่อน
Line 16: Line 16:
เราสามารถใช้คำสั่ง `tip` เพื่อดูว่า[:Tip:ส่วนปลาย]ของแต่ละ repository อยุ่ที่การแก้ไขไหน (จำไว้ว่าปลายของ repository คือเซ็ตการแก้ไขครั้งล่าสุด) เราสามารถใช้ตัวเลือก `-q` ("be quiet") เพื่อบอกให้ Mercurial พิมพ์ผลลัพธ์แบบย่อแทน เราสามารถใช้คำสั่ง `tip` เพื่อดูว่า[[Tip|ส่วนปลาย]]ของแต่ละ repository อยุ่ที่การแก้ไขไหน (จำไว้ว่าปลายของ repository คือเซ็ตการแก้ไขครั้งล่าสุด) เราสามารถใช้ตัวเลือก `-q` ("be quiet") เพื่อบอกให้ Mercurial พิมพ์ผลลัพธ์แบบย่อแทน
Line 27: Line 27:
เราจะเห็นได้ในตัวอย่างว่าส่วนปลายของทั้งสอง repository แตกต่างกัน เพราะฉะนั้นเราจะลองกลับไปที่ `my-hello-share` และดึงเอาเซ็ตการแก้ไขใหม่เข้ามาโดยใช้คำสั่ง `pull` ซึ่งจะ[:Pull:ดึงประวัติการแก้ไข]จาก repository อื่นที่ยังไม่มีอยู่ใน repository ปัจจุบันเข้ามา เราจะเห็นได้ในตัวอย่างว่าส่วนปลายของทั้งสอง repository แตกต่างกัน เพราะฉะนั้นเราจะลองกลับไปที่ `my-hello-share` และดึงเอาเซ็ตการแก้ไขใหม่เข้ามาโดยใช้คำสั่ง `pull` ซึ่งจะ[[Pull|ดึงประวัติการแก้ไข]]จาก repository อื่นที่ยังไม่มีอยู่ใน repository ปัจจุบันเข้ามา
Line 43: Line 43:
บรรทัดสุดท้ายของผลลัพธ์มีความสำคัญมาก โดยปกติแล้ว Mercurial จะไม่แก้ไขไฟล์ใน[:WorkingDirectory:ไดเร็คทอรี่สำหรับใช้ทำงาน]หลังจากการ ดึงประวัติการแก้ไข ซึ่งก็หมายความว่าถึงแม้ว่า repository จะมีประวัติของเซ็ตการแก้ใหม่ตัวใหม่แล้ว ไฟล์ `hello.c` ในไดเร็คทอรี่สำหรับใช้ทำงานก็ยังมีเนื้อหาเดิมเหมือนก่อนที่จะดึงประวัติการแก้ไขเข้ามาไม่มีผิด บรรทัดสุดท้ายของผลลัพธ์มีความสำคัญมาก โดยปกติแล้ว Mercurial จะไม่แก้ไขไฟล์ใน[[WorkingDirectory|ไดเร็คทอรี่สำหรับใช้ทำงาน]]หลังจากการ ดึงประวัติการแก้ไข ซึ่งก็หมายความว่าถึงแม้ว่า repository จะมีประวัติของเซ็ตการแก้ใหม่ตัวใหม่แล้ว ไฟล์ `hello.c` ในไดเร็คทอรี่สำหรับใช้ทำงานก็ยังมีเนื้อหาเดิมเหมือนก่อนที่จะดึงประวัติการแก้ไขเข้ามาไม่มีผิด
Line 45: Line 45:
เราสามารถ[:Update:อัพเดท]เนื้อหาของไฟล์นี้ (และไฟล์อื่นๆที่มีถูกแก้ไขจากการดึงประวัติใหม่เข้ามา) โดยทำตามคำแนะนำของ Mercurial (เราจะใช้คำสั่งแบบย่อชื่อ `up`): เราสามารถ[[Update|อัพเดท]]เนื้อหาของไฟล์นี้ (และไฟล์อื่นๆที่มีถูกแก้ไขจากการดึงประวัติใหม่เข้ามา) โดยทำตามคำแนะนำของ Mercurial (เราจะใช้คำสั่งแบบย่อชื่อ `up`):
Line 54: Line 54:
บทต่อไปจะพูดถึงการ [:ThaiTutorialExport:แบ่งปันสิ่งที่เราแก้ไขกับบุคคลอื่น] บทต่อไปจะพูดถึงการ [[ThaiTutorialExport|แบ่งปันสิ่งที่เราแก้ไขกับบุคคลอื่น]]

บทเรียน - แบ่งปันสิ่งที่คุณแก้กับ 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)