หลักสูตรเร่งรัดใช้งาน Mercurial

(ลองดูหน้าที่เกี่ยวข้องที่ ทำความเข้าใจ Mercurial และ เรียนรู้การใช้งาน Mercurial และ QuickStart2)

1. ตั้งชื่อผู้ใช้

โดยปกติ Mercurial จะใช้ชื่อผู้ใช้ในรูปแบบ 'user@localhost' สำหรับการคอมมิท แต่รูปแบบนี้ไม่ค่อยมีความหมายเท่าไร คุณควรจะใช้อีเมล์ของคุณแทนในไฟล์ ~/.hgrc (หรือถ้าใช้วินโดวส์ก็ไฟล์ %USERPROFILE%\Mercurial.ini) โดยเพิ่มบรรทัดดังนี้:

[ui]
username = John Doe <john@example.com>

2. การทำงานกับโปรเจค Mercurial ที่มีอยู่แล้ว

ถ้าคุณมี URL สำหรับ repository ที่มีอยู่แล้ว (เช่น http://selenic.com/hg) คุณสามารถทำสำเนาของ repository ได้เลย ดังตัวอย่างนี้:

$ hg clone http://selenic.com/hg mercurial-repo
real URL is http://www.selenic.com/hg/
requesting all changes
adding changesets
adding manifests
adding file changes
added 6908 changesets with 13429 changes to 976 files
updating working directory
861 files updated, 0 files merged, 0 files removed, 0 files unresolved

คำสั่งนี้จะสร้างไดเร็คทอรี่ใหม่ชื่อ mercurial-repo จากนั้นจะดึงเอาประวัติทั้งหมดของโปรเจคและ สร้างไฟล์จาก changeset เวอร์ชั่นปลายของ repository (ดูคำสั่ง Clone)

คุณสามารถดูว่าไฟล์ในไดเร็คทอรี่สำหรับใช้ทำงานมาจากเวอร์ชั่นไหนของประวัติได้โดยใช้คำสั่ง:

$ cd mercurial-repo
$ hg parents
changeset:   6907:6dcbe191a9b5
tag:         tip
user:        Matt Mackall <mpm@selenic.com>
date:        Mon Aug 18 16:50:36 2008 -0500
summary:     Fix up tests

3. สร้างโปรเจค Mercurial ใหม่

ถ้าคุณต้องการสร้าง repository ใหม่:

$ cd project/
$ hg init           # creates .hg

Mercurial จะค้นหาไฟล์ชื่อ .hgignore ในไดเร็คทอรี่รากของ repository ซึ่งมีแพทเทิร์นของไฟล์ที่ Mercurial จะไม่สนใจ นี่คือตัวอย่างของไฟล์ .hgignore:

syntax: glob
*.orig
*.rej
*~
*.o
tests/*.err

syntax: regexp
.*\#.*\#$

คุณสามารถทดสอบไฟล์ .hgignore ด้วย:

$ hg status         # แสดงเฉพาะไฟล์ที่ Mercurial สนใจ

คำสั่งนี้จะแสดงไฟล์ทั้งหมดที่ Mercurial ไม่เพิกเฉยโดยมีเครื่องหมาย '?' หน้าชื่อไฟล์ (ซึ่งหมายความว่าไฟล์นี้ยังไม่ถูกเก็บประวัติ) แก้ไฟล์ .hgignore จนกว่าคุณเห็นเฉพาะรายชื่อไฟล์ที่คุณต้องการเก็บประวัติ อย่าลืมว่าคุณต้องการเก็บประวัติของไฟล์ .hgignore ด้วย! แต่คุณคงไม่ต้องเก็บประวัติของไฟล์ที่มาจากการ build โค้ดของคุณ หลังจากนั้นให้เพิ่มไฟล์ที่คุณต้องการเก็บประวัติกับ Mercurial และ คอมมิท:

$ hg add            # เพิ่มไฟล์ 'ที่ยังไม่รู้สถานะ' เข้าไปใน Mercurial
$ hg commit         # คอมมิทการแก้ไข เพิ่ม changelog ใหม่
$ hg parents        # ดูเวอร์ชั่นที่อยู่ในไดเร็คทอรี่สำหรับใช้ทำงาน

4. ทำสำเนา คอมมิท และรวมประวัติการแก้ไข

$ hg clone project project-work    # ทำสำเนา repository
$ cd project-work
$ <make changes>
$ hg commit
$ cd ../project
$ <make other changes>
$ hg commit
$ hg pull ../project-work   # ดึง changesets มาจาก project-work
$ hg merge                  # รวมส่วนปลายของ repository project-work เข้ามาในไดเร็คทอรี่สำหรับใช้ทำงานของเรา
$ hg parents                # ดูเวอร์ชั่นการแก้ไขที่ถูกรวมในไดเร็คทอรี่สำหรับใช้ทำงาน
$ hg commit                 # คอมมิทผลของการรวม

หน้าที่เกี่ยวข้อง: ทำสำเนา repository, Commit, Pull, Merge, Parent

5. การส่งออกแพ๊ทช์

(ทำการแก้ไข)
$ hg commit
$ hg export tip    # ส่งออกคอมมิทล่าสุด

หน้าที่เกี่ยวข้อง: Export

6. การสนับสนุนคำสั่งผ่านเครือข่าย

# ทำสำเนาจาก repo Mercurial
foo$ hg clone http://selenic.com/hg/
foo$ cd hg

# ดึงประวัติใหม่จาก repo ที่มีอยู่
foo$ hg pull http://selenic.com/hg/

# ส่งออกประวัติการแก้ไขใน repo ของคุณผ่าน HTTP พร้อมอินเทอร์เฟซแสดงผล
foo$ hg serve -n "My repo" -p 80

# ผลักประวัติการแก้ไขไปที่ repo อื่นด้วย SSH
foo$ hg push ssh://user@example.com/hg/

หน้าที่เกี่ยวข้อง: Serve, Push, Pull


คำแปล: ภาษาเยอรมัน ภาษาโปรตุเกสบราซิล ภาษาญี่ปุ่น

CategoryThai

ThaiQuickStart (last edited 2009-05-19 19:31:01 by localhost)