Repository

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

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

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

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

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

Sometimes Mercurial users and developers also use the term "repository" when referring to the repository root. But strictly speaking, the .hg directory is the "real" repository.

TableOfContents

Creation

Repositories can be [:Clone:cloned] with hg clone, which creates a copy of an existing repository.

An existing, already populated but yet untracked directory can be transformed into a repository with hg init, which creates and initializes the .hg subdirectory.

Tracking Files

A file in the working directory that shall be tracked by Mercurial must be added with hg add. [:LocalModifications:Local modifications] to tracked files in the working directory can be [:Commit:committed] with hg commit, which adds a new [:ChangeSet:changeset] to the repository by recording it in the .hg directory.

The working directory can be restored with hg update to any previously committed state by specifying the requested changeset with its [:ChangeSetID:changeset ID]. Use hg parents to see the currently checked out revision (see [:Parent]).

The last commit in a repository can be undone with hg rollback (see [:Rollback]).

Transferring Changesets

Changesets can be transferred from one repository to another with hg pull, hg push, hg export and hg import (see [:Pull], [:Push], [:Export], [:Import], [:CommunicatingChanges]).

Checking Integrity

Checking the internal integrity of a repository (the contents of .hg) can be done with hg verify.

Structure

The .hg directory of a repository contains (incomplete listing):

Note that for small revlogs, the revlog data file (*.d) may be missing, because its content may be interleaved into the corresponding index file (*.i) (see also [:RevlogNG]).

Backup

Backing up a repository can be done by using push/pull/clone to a backup repository. A repository which is not actively written to (by other processes concurrently running on the computer) can be backed-up by backing-up the repo directory using normal directory/file backup procedures (like tar, zip, etc). The .hg directory is [:CaseFolding:case folding] tolerant, which means, it can for example be copied onto a FAT filesystem (see also [:BackUp], [:CaseFoldingPlan]).

See also


CategoryGlossary CategoryThai