Size: 6569
Comment: Translate a few sections into Thai.
|
← Revision 6 as of 2009-05-19 19:30:56 ⇥
Size: 10095
Comment: converted to 1.6 markup
|
Deletions are marked like this. | Additions are marked like this. |
Line 4: | Line 4: |
''(สำหรับคำแนะนำสั้นๆเกี่ยวกับหลักการทำงานของ Mercurial ลองอ่าน [:ThaiUnderstandingMercurial:ทำความเข้าใจ Mercurial])'' | ''(สำหรับคำแนะนำสั้นๆเกี่ยวกับหลักการทำงานของ Mercurial ลองอ่าน [[ThaiUnderstandingMercurial|ทำความเข้าใจ Mercurial]])'' |
Line 8: | Line 8: |
เราเรียกไฟล์และไดเร็คทอรี่ทั้งหมดที่อยู่ในไดเร็คทอรี่เดียวกับ `.hg` ว่าอยู่ใน[:WorkingDirectory:ไดเร็คทอรี่สำหรับใช้ทำงาน] | เราเรียกไฟล์และไดเร็คทอรี่ทั้งหมดที่อยู่ในไดเร็คทอรี่เดียวกับ `.hg` ว่าอยู่ใน[[ThaiWorkingDirectory|ไดเร็คทอรี่สำหรับใช้ทำงาน]] |
Line 16: | Line 16: |
[[TableOfContents]] | <<TableOfContents>> |
Line 21: | Line 21: |
การทำ[:Clone:สำเนา]ของ repository ด้วยคำสั่ง {{{hg clone}}} เป็นวิธีนึงในการสร้าง repository ใหม่จาก repository ที่มีอยู่ | การทำ[[ThaiClone|สำเนา]]ของ repository ด้วยคำสั่ง {{{hg clone}}} เป็นวิธีนึงในการสร้าง repository ใหม่จาก repository ที่มีอยู่ |
Line 28: | Line 28: |
ถ้าคุณต้องการเริ่มเก็บประวัติของไฟล์ที่อยู่ในไดเร็คทอรี่สำหรับใช้ทำงาน คุณจะต้องเพิ่มไฟล์เหล่านั้นเข้าไปใน Mercurial โดยใช้คำสั่ง {{{hg add}}} จากนั้นคุณสามารถ[:Commit:คอมมิท][:LocalModifications:การแก้ไขบนเครื่อง]ที่เกิดขึ้นกับไฟล์ที่ถูกเก็บประวัติโดยใช้คำสั่ง {{{hg commit}}} ซึ่งจะทำการสร้าง[:ChangeSet:เซ็ตการแก้ไข]ใน repository ในไดเร็คทอรี่ {{{.hg}}} | ถ้าคุณต้องการเริ่มเก็บประวัติของไฟล์ที่อยู่ในไดเร็คทอรี่สำหรับใช้ทำงาน คุณจะต้องเพิ่มไฟล์เหล่านั้นเข้าไปใน Mercurial โดยใช้คำสั่ง {{{hg add}}} จากนั้นคุณสามารถ[[ThaiCommit|คอมมิท]][[ThaiLocalModifications|การแก้ไขบนเครื่อง]]ที่เกิดขึ้นกับไฟล์ที่ถูกเก็บประวัติโดยใช้คำสั่ง {{{hg commit}}} ซึ่งจะทำการสร้าง[[ThaiChangeSet|เซ็ตการแก้ไข]]ใน repository ในไดเร็คทอรี่ {{{.hg}}} |
Line 30: | Line 30: |
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]). |
คุณสามารถย้อนเนื้อหาในไดเร็คทอรี่สำหรับใช้ทำงานกลับไปเป็นเซ็ตการแก้ไขที่ถูกคอมมิทไปแล้วเวอร์ชั่นใดก็ได้โดยใช้คำสั่ง {{{hg update}}} พร้อมกับระบุ [[ThaiChangeSetID|รหัสประจำเซ็ตการแก้ไข]] ใช้คำสั่ง {{{hg parents}}} เพื่อดูเวอร์ชั่นของไฟล์ที่อยู่ในไดเร็คทอรี่สำหรับใช้งาน (ดู [[ThaiParent|บรรพบุรุษ]]) |
Line 33: | Line 32: |
The last commit in a repository can be undone with {{{hg rollback}}} (see [:Rollback]). | คุณสามารถยกเลิกคอมมิทครั้งสุดท้ายใน repository ได้ด้วยคำสั่ง {{{hg rollback}}} (ดู [[ThaiRollback]]) |
Line 36: | Line 35: |
=== Transferring Changesets === | === การถ่ายโอนประวัติการแก้ไข === |
Line 38: | Line 37: |
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]). | คุณสามารถถ่ายโอนเซ็ตการแก้ไขจาก repository หนึ่งไปสู่อีก repository ได้โดยใช้คำสั่ง {{{hg pull}}}, {{{hg push}}}, {{{hg export}}} และ {{{hg import}}} (ดู [[ThaiPull|การดึงประวัติการแก้ไข]], [[ThaiPush|การผลักประวัติการแก้ไข]], [[ThaiExport|การส่งออกประวัติการแก้ไข]], [[ThaiImport|การนำเข้าประวัติการแก้ไข]], [[ThaiCommunicatingChanges]]) |
Line 41: | Line 40: |
=== Checking Integrity === | === การตรวจสอบความสมบูรณ์ === |
Line 43: | Line 42: |
Checking the internal integrity of a repository (the contents of {{{.hg}}}) can be done with {{{hg verify}}}. | คุณสามารถตรวจสอบสภาพของ repository ว่าเนื้อหาของไดเร็คทอรี่ {{{.hg}}} มีความสมบูรณ์ถูกต้องหรือไม่โดยใช้คำสั่ง {{{hg verify}}} |
Line 46: | Line 45: |
=== Structure === | === โครงสร้าง === |
Line 48: | Line 47: |
The {{{.hg}}} directory of a repository contains (incomplete listing): | ไดเร็คทอรี่ {{{.hg}}} ประกอบไปด้วย (ในที่นี่ระบุรายละเอียดเพียงบางส่วนเท่านั้น): |
Line 50: | Line 49: |
* The [:Manifest:manifest] — Files {{{.hg/store/00manifest.i}}} and {{{.hg/store/00manifest.d}}} Describes the file contents of the repository at a particular changeset ID. Stored in [:Revlog:revlog] format. * The [:Changelog:changelog] — Files {{{.hg/store/00changelog.i}}} and {{{.hg/store/00changelog.d}}} Contains all changesets. Stored in revlog format. * A revlog per tracked file — Files {{{.hg/store/data/<encoded path>.i}}} and {{{.hg/store/data/<encoded path>.d}}} {{{<encoded path>}}} is the path of the tracked file in the working directory, encoded according to [:CaseFoldingPlan]. * The [:DirState:dirstate] — File {{{.hg/dirstate}}} Tracks various information about the working directory. |
* [[ThaiManifest|มานิเฟสต์]] — ประกอบไปด้วยไฟล์ {{{.hg/store/00manifest.i}}} และ {{{.hg/store/00manifest.d}}} ซึ่งทำหน้าที่ระบุเนื้อหาของไฟล์ใน repository ในแต่ละเซ็ตการแก้ไขว่าประกอบไปด้วยอะไรบ้าง ไฟล์มานิเฟสต์ถูกเก็บในรูปแบบ [[ThaiRevlog|revlog]] * [[ThaiChangelog|บันทึกการแก้ไข]] — ประกอบไปด้วยไฟล์ {{{.hg/store/00changelog.i}}} และ {{{.hg/store/00changelog.d}}} ซึ่งเก็บเซ็ตการแก้ไขทั้งหมด บันทึกการแก้ไขถูกเก็บในรูปแบบ revlog เช่นกัน * หนึ่ง revlog ต่อไฟล์ที่ถูกเก็บประวัติ — สำหรับแต่ละไฟล์ที่ถูกเก็บประวัติจะประกอบไปด้วยไฟล์ {{{.hg/store/data/<encoded path>.i}}} และ {{{.hg/store/data/<encoded path>.d}}} {{{<encoded path>}}} คือ path ของไฟล์ที่ถูกเก็บประวัติในไดเร็คทอรี่สำหรับใช้ทำงาน ซึ่งถูกเข้ารหัสตาม [[ThaiCaseFoldingPlan]] * ไฟล์ [[ThaiDirState|dirstate]] — ประกอบไปด้วยไฟล์ {{{.hg/dirstate}}} มีหน้าที่เก็บข้อมูลต่างๆเกี่ยวกับไดเร็คทอรี่สำหรับใช้ทำงาน |
Line 59: | Line 58: |
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]). | สำหรับ revlog ที่มีขนาดเล็กไฟล์ข้อมูลของ revlog (revlog data file) ซึ่งมีนามสกุล ({{{*.d}}}) อาจจะไม่มีอยู่ เพราะว่าเนื้อหาทั้งหมดของไฟล์อาจแทรกอยู่ในไฟล์ดัชนี้ (index file) ซึ่งมีนามสกุล ({{{*.i}}}) อยู่แล้ว (ลองดู [[RevlogNG]]) |
Line 62: | Line 61: |
=== Backup === | === การทำสำรอง === |
Line 64: | Line 63: |
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]). | การทำสำรอง repository นั้นสามารถทำได้โดยการผลัก/ดึง/ทำสำเนา repository ต้นฉบับ สำหรับ repository ที่ไม่ค่อยถูกแก้ไขบ่อยๆ (โดยโปรเซสอื่นๆที่ทำงานอยู่บนเครื่องเดียวกัน) คุณสามารถทำสำรองได้โดยใช้วิธีทำสำรองไดเร็คทอรี่/ไฟล์ปกติ (เช่น tar, zip, ฯลฯ) ไดเร็คทอรี่ {{{.hg}}} นั้นมีคุณสมบัติทนต่อ [[ThaiCaseFolding|case folding]] ซึ่งหมายความว่าคุณสามารถคัดลอกไดเร็คทอรี่นี้ไปที่ระบบไฟล์แบบ FAT ได้ (ลองดู [[ThaiBackUp]], [[ThaiCaseFoldingPlan]]) |
Line 67: | Line 66: |
=== See also === | === ข้อมูลเพิ่มเติม === |
Line 69: | Line 68: |
* [:ManPages] * [:RepositoryNaming] * [:PublishingRepositories] * [:RepositoryConversion] * [:DeveloperRepos] * [:RepoSamples] * [:SharedRepository] |
* [[ManPages]] * [[RepositoryNaming]] * [[PublishingRepositories]] * [[RepositoryConversion]] * [[DeveloperRepos]] * [[RepoSamples]] * [[SharedRepository]] |
Repository
(สำหรับคำแนะนำสั้นๆเกี่ยวกับหลักการทำงานของ Mercurial ลองอ่าน ทำความเข้าใจ Mercurial)
ถ้าจะพูดกันให้ถูกแล้วคำว่า repository นั้นหมายถึงไดเร็คทอรี่ชื่อ .hg (จุด hg) ในไดเร็คทอรี่รากของ repository มากกว่า ไดเร็คทอรี่รากก็คือไดเร็คทอรี่ที่เป็นบรรพบุรุษของไดเร็คทอรี่ .hg Mercurial เก็บโครงสร้างข้อมูลต่างๆ – หรือที่เรียกว่าเมตาดาต้า – ภายในไดเร็คทอรี่ .hg นี้
เราเรียกไฟล์และไดเร็คทอรี่ทั้งหมดที่อยู่ในไดเร็คทอรี่เดียวกับ .hg ว่าอยู่ในไดเร็คทอรี่สำหรับใช้ทำงาน
วิธีง่ายๆสำหรับจำก็คือ ให้จำว่า repository คือที่ๆเก็บประวัติของโปรเจค ส่วนไดเร็คทอรี่สำหรับใช้ทำงานคือเนื้อหา ณ เวลาใดเวลาหนึ่งในประวัติของโปรเจค
คุณสามารถระบุที่อยู่ repository ในเครื่องของคุณโดยใช้ path ของไดเร็คทอรี่รากของ repository (ใช้กับตัวเลือก -R ในคำสั่งต่างๆ)
บางครั้งผู้ใช้และผู้พัฒนา Mercurial ใช้คำว่า "repository" เวลาพูดถึงไดเร็คทอรี่ราก แต่จริงๆแล้วไดเร็คทอรี่ .hg ต่างหากที่เป็น repository "ตัวจริง"
Contents
การสร้าง 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 ประกอบไปด้วย (ในที่นี่ระบุรายละเอียดเพียงบางส่วนเท่านั้น):
มานิเฟสต์ — ประกอบไปด้วยไฟล์ .hg/store/00manifest.i และ .hg/store/00manifest.d
ซึ่งทำหน้าที่ระบุเนื้อหาของไฟล์ใน repository ในแต่ละเซ็ตการแก้ไขว่าประกอบไปด้วยอะไรบ้าง ไฟล์มานิเฟสต์ถูกเก็บในรูปแบบ revlog
บันทึกการแก้ไข — ประกอบไปด้วยไฟล์ .hg/store/00changelog.i และ .hg/store/00changelog.d
- ซึ่งเก็บเซ็ตการแก้ไขทั้งหมด บันทึกการแก้ไขถูกเก็บในรูปแบบ revlog เช่นกัน
หนึ่ง revlog ต่อไฟล์ที่ถูกเก็บประวัติ — สำหรับแต่ละไฟล์ที่ถูกเก็บประวัติจะประกอบไปด้วยไฟล์ .hg/store/data/<encoded path>.i และ .hg/store/data/<encoded path>.d
<encoded path> คือ path ของไฟล์ที่ถูกเก็บประวัติในไดเร็คทอรี่สำหรับใช้ทำงาน ซึ่งถูกเข้ารหัสตาม ThaiCaseFoldingPlan
ไฟล์ dirstate — ประกอบไปด้วยไฟล์ .hg/dirstate
- มีหน้าที่เก็บข้อมูลต่างๆเกี่ยวกับไดเร็คทอรี่สำหรับใช้ทำงาน
สำหรับ revlog ที่มีขนาดเล็กไฟล์ข้อมูลของ revlog (revlog data file) ซึ่งมีนามสกุล (*.d) อาจจะไม่มีอยู่ เพราะว่าเนื้อหาทั้งหมดของไฟล์อาจแทรกอยู่ในไฟล์ดัชนี้ (index file) ซึ่งมีนามสกุล (*.i) อยู่แล้ว (ลองดู RevlogNG)
การทำสำรอง
การทำสำรอง repository นั้นสามารถทำได้โดยการผลัก/ดึง/ทำสำเนา repository ต้นฉบับ สำหรับ repository ที่ไม่ค่อยถูกแก้ไขบ่อยๆ (โดยโปรเซสอื่นๆที่ทำงานอยู่บนเครื่องเดียวกัน) คุณสามารถทำสำรองได้โดยใช้วิธีทำสำรองไดเร็คทอรี่/ไฟล์ปกติ (เช่น tar, zip, ฯลฯ) ไดเร็คทอรี่ .hg นั้นมีคุณสมบัติทนต่อ case folding ซึ่งหมายความว่าคุณสามารถคัดลอกไดเร็คทอรี่นี้ไปที่ระบบไฟล์แบบ FAT ได้ (ลองดู ThaiBackUp, ThaiCaseFoldingPlan)