Repository

(สำหรับคำแนะนำสั้นๆเกี่ยวกับหลักการทำงานของ Mercurial ลองอ่าน ทำความเข้าใจ Mercurial)

ถ้าจะพูดกันให้ถูกแล้วคำว่า repository นั้นหมายถึงไดเร็คทอรี่ชื่อ .hg (จุด hg) ในไดเร็คทอรี่รากของ repository มากกว่า ไดเร็คทอรี่รากก็คือไดเร็คทอรี่ที่เป็นบรรพบุรุษของไดเร็คทอรี่ .hg Mercurial เก็บโครงสร้างข้อมูลต่างๆ – หรือที่เรียกว่าเมตาดาต้า – ภายในไดเร็คทอรี่ .hg นี้

เราเรียกไฟล์และไดเร็คทอรี่ทั้งหมดที่อยู่ในไดเร็คทอรี่เดียวกับ .hg ว่าอยู่ในไดเร็คทอรี่สำหรับใช้ทำงาน

วิธีง่ายๆสำหรับจำก็คือ ให้จำว่า repository คือที่ๆเก็บประวัติของโปรเจค ส่วนไดเร็คทอรี่สำหรับใช้ทำงานคือเนื้อหา ณ เวลาใดเวลาหนึ่งในประวัติของโปรเจค

คุณสามารถระบุที่อยู่ repository ในเครื่องของคุณโดยใช้ path ของไดเร็คทอรี่รากของ repository (ใช้กับตัวเลือก -R ในคำสั่งต่างๆ)

บางครั้งผู้ใช้และผู้พัฒนา Mercurial ใช้คำว่า "repository" เวลาพูดถึงไดเร็คทอรี่ราก แต่จริงๆแล้วไดเร็คทอรี่ .hg ต่างหากที่เป็น repository "ตัวจริง"

การสร้าง repository

การทำสำเนาของ repository ด้วยคำสั่ง hg clone เป็นวิธีนึงในการสร้าง repository ใหม่จาก repository ที่มีอยู่

นอกจากนั้นคุณยังสามารถแปลงไดเร็คทอรี่ที่มีอยู่แล้วแต่ไม่ถูกเก็บประวัติเป็น repository ด้วยคำสั่ง hg init ซึ่งจะสร้างไดเร็คทอรี่ย่อย .hg ให้พร้อมใช้งาน

การเริ่มเก็บประวัติไฟล์

ถ้าคุณต้องการเริ่มเก็บประวัติของไฟล์ที่อยู่ในไดเร็คทอรี่สำหรับใช้ทำงาน คุณจะต้องเพิ่มไฟล์เหล่านั้นเข้าไปใน Mercurial โดยใช้คำสั่ง hg add จากนั้นคุณสามารถคอมมิทการแก้ไขบนเครื่องที่เกิดขึ้นกับไฟล์ที่ถูกเก็บประวัติโดยใช้คำสั่ง hg commit ซึ่งจะทำการสร้างเซ็ตการแก้ไขใน repository ในไดเร็คทอรี่ .hg

คุณสามารถย้อนเนื้อหาในไดเร็คทอรี่สำหรับใช้ทำงานกลับไปเป็นเซ็ตการแก้ไขที่ถูกคอมมิทไปแล้วเวอร์ชั่นใดก็ได้โดยใช้คำสั่ง hg update พร้อมกับระบุ รหัสประจำเซ็ตการแก้ไข ใช้คำสั่ง hg parents เพื่อดูเวอร์ชั่นของไฟล์ที่อยู่ในไดเร็คทอรี่สำหรับใช้งาน (ดู บรรพบุรุษ)

คุณสามารถยกเลิกคอมมิทครั้งสุดท้ายใน repository ได้ด้วยคำสั่ง hg rollback (ดู ThaiRollback)

การถ่ายโอนประวัติการแก้ไข

คุณสามารถถ่ายโอนเซ็ตการแก้ไขจาก repository หนึ่งไปสู่อีก repository ได้โดยใช้คำสั่ง hg pull, hg push, hg export และ hg import (ดู การดึงประวัติการแก้ไข, การผลักประวัติการแก้ไข, การส่งออกประวัติการแก้ไข, การนำเข้าประวัติการแก้ไข, ThaiCommunicatingChanges)

การตรวจสอบความสมบูรณ์

คุณสามารถตรวจสอบสภาพของ repository ว่าเนื้อหาของไดเร็คทอรี่ .hg มีความสมบูรณ์ถูกต้องหรือไม่โดยใช้คำสั่ง hg verify

โครงสร้าง

ไดเร็คทอรี่ .hg ประกอบไปด้วย (ในที่นี่ระบุรายละเอียดเพียงบางส่วนเท่านั้น):

สำหรับ revlog ที่มีขนาดเล็กไฟล์ข้อมูลของ revlog (revlog data file) ซึ่งมีนามสกุล (*.d) อาจจะไม่มีอยู่ เพราะว่าเนื้อหาทั้งหมดของไฟล์อาจแทรกอยู่ในไฟล์ดัชนี้ (index file) ซึ่งมีนามสกุล (*.i) อยู่แล้ว (ลองดู RevlogNG)

การทำสำรอง

การทำสำรอง repository นั้นสามารถทำได้โดยการผลัก/ดึง/ทำสำเนา repository ต้นฉบับ สำหรับ repository ที่ไม่ค่อยถูกแก้ไขบ่อยๆ (โดยโปรเซสอื่นๆที่ทำงานอยู่บนเครื่องเดียวกัน) คุณสามารถทำสำรองได้โดยใช้วิธีทำสำรองไดเร็คทอรี่/ไฟล์ปกติ (เช่น tar, zip, ฯลฯ) ไดเร็คทอรี่ .hg นั้นมีคุณสมบัติทนต่อ case folding ซึ่งหมายความว่าคุณสามารถคัดลอกไดเร็คทอรี่นี้ไปที่ระบบไฟล์แบบ FAT ได้ (ลองดู ThaiBackUp, ThaiCaseFoldingPlan)

ข้อมูลเพิ่มเติม


CategoryGlossary CategoryThai

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