บทเรียน - ทำสำเนา repository
(บทนี้เป็นบทที่ 2 จาก 9 บทของ บทเรียนการใช้งาน Mercurial บทก่อนหน้าคือ การติดตั้ง Mercurial, บทถัดไปคือ ดูประวัติการแก้ไขใน repository)
คุณได้ทำตามขั้นในในบท การติดตั้ง Mercurial เพื่อติดตั้งโปรแกรมแล้วใช่มั๊ย? เยี่ยม!
หัวใจของ Mercurial คือ repository ไอ้เจ้า repository นี้เก็บไฟล์ที่เราต้องการแก้ไข รวมทั้งประวัติของไฟล์เหล่านั้นด้วย
วิธีที่ง่ายที่สุดในการเริ่มใช้งาน Mercurial ก็คือลองทำสำเนาจาก 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 ว่าคุณต้องการดึงประวัติการแก้ไขจากอีก repository หรือให้ repository อื่นผลักประวัติการแก้ไขมาที่ repository ของคุณ
โดยปกติคำสั่ง hg clone จะอัพเดทไดเร็คทอรี่ทำงานของเราให้เนื้อหาตรงกับเวอร์ชั่นปลายของ repository โดยอัตโนมัติ ถ้าเราต้องการดูว่าตอนนี้ใช้ revision ไหนอยู่ก็สามาถทำได้โดยใช้คำสั่ง 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 ให้เล่นแล้ว เราก็สามารถ ดูประวัติการแก้ไขใน repository ได้แล้ว