== บทเรียน - ทำสำเนา repository == ''(บทนี้เป็นบทที่ 2 จาก 9 บทของ [[ThaiTutorial|บทเรียนการใช้งาน Mercurial]] บทก่อนหน้าคือ [[ThaiTutorialInstall|การติดตั้ง Mercurial]], บทถัดไปคือ [[ThaiTutorialHistory|ดูประวัติการแก้ไขใน repository]])'' คุณได้ทำตามขั้นในในบท [[ThaiTutorialInstall|การติดตั้ง Mercurial]] เพื่อติดตั้งโปรแกรมแล้วใช่มั๊ย? เยี่ยม! หัวใจของ Mercurial คือ [[ThaiRepository|repository]] ไอ้เจ้า repository นี้เก็บไฟล์ที่เราต้องการแก้ไข รวมทั้งประวัติของไฟล์เหล่านั้นด้วย วิธีที่ง่ายที่สุดในการเริ่มใช้งาน Mercurial ก็คือลองทำ[[ThaiClone|สำเนา]]จาก repository ที่มีอยู่ก่อนแล้วโดยใช้คำสั่ง {{{clone}}} คำสั่งนี้จะสร้างสำเนาของ repository ต้นฉบับเป็น repository ส่วนตัวสำหรับไว้ทำงานบนเครื่องตัวเองได้ เราลองมาทำสำเนาของ repository "hello, world" ที่อยู่ที่ selenic.com กันเถอะ: {{{ $ hg clone http://www.selenic.com/repo/hello my-hello }}} ถ้าทุกอย่างเป็นไปด้วยดี คำสั่ง {{{clone}}} จะพิมพ์ผลลัพธ์ดังนี้ (ถ้าใช้ Mercurial 1.0): {{{ requesting all changes adding changesets adding manifests adding file changes added 2 changesets with 2 changes to 2 files updating working directory 2 files updated, 0 files merged, 0 files removed, 0 files unresolved }}} เอาล่ะ ทีนี้เราควรจะเห็นไดเร็คทอรี่ชื่อ {{{my-hello}}} ในไดเร็คทอรี่ปัจจุบัน: {{{ $ ls my-hello }}} ภายในไดเร็คทอรี่ {{{my-hello}}} เราจะเห็นว่ามีไฟล์อยู่สองไฟล์: {{{ $ ls my-hello Makefile hello.c }}} เนื้อหาของไฟล์ 2 ไฟล์นี้เหมือนกันกับไฟล์ใน repository ต้นฉบับเป๊ะ '''หมายเหตุ:''' ใน Mercurial แต่ละ repository จะอยู่แบบเป็นเอกเทศ เวลาเราทำสำเนา repository สำเนานั้นจะเหมือนกับตัวต้นแบบตอนที่คุณทำสำเนาเป๊ะ แต่ว่าการแก้ไขต่างๆที่เกิดขึ้นหลังจากนั้นใน repository หนึ่ง''จะไม่อยู่ใน''อีก repository จนกว่าคุณจะบอก Mercurial ว่าคุณต้องการ[[ThaiPull|ดึงประวัติการแก้ไข]]จากอีก repository หรือให้ repository อื่น[[ThaiPush|ผลักประวัติการแก้ไข]]มาที่ repository ของคุณ โดยปกติคำสั่ง `hg clone` จะ[[Update|อัพเดท]][[ThaiWorkingDirectory|ไดเร็คทอรี่ทำงาน]]ของเราให้เนื้อหาตรงกับเวอร์ชั่น[[Tip|ปลาย]]ของ repository โดยอัตโนมัติ ถ้าเราต้องการดูว่าตอนนี้ใช้ revision ไหนอยู่ก็สามาถทำได้โดยใช้คำสั่ง [[Parent|parents]]: {{{ $ hg parents changeset: 1:82e55d328c8c tag: tip user: mpm@selenic.com date: Fri Aug 26 01:21:28 2005 -0700 summary: Create a makefile }}} เอาล่ะ ตอนนี้เมื่อเรามีสำเนาของ repository ให้เล่นแล้ว เราก็สามารถ [[ThaiTutorialHistory|ดูประวัติการแก้ไขใน repository]] ได้แล้ว ---- CategoryTutorial CategoryThai