Differences between revisions 12 and 13
Revision 12 as of 2008-01-16 09:43:54
Size: 3031
Editor: abuehl
Comment: contents of the repository
Revision 13 as of 2008-01-16 10:02:58
Size: 3242
Editor: abuehl
Comment: +subtitles
Deletions are marked like this. Additions are marked like this.
Line 7: Line 7:
[[TableOfContents]]

=== Creation ===
Line 8: Line 12:


=== Tracking Files ===
Line 13: Line 20:
Changesets can be transferred from one repository to another repository with {{{hg pull}}}, {{{hg push}}}, {{{hg export}}} and {{{hg import}}} (see ["Pull"], ["Push"], ["Export"], ["Import"], ["CommunicatingChanges"]). The last transaction in a repository can be undone with {{{hg rollback}}} (see ["Rollback"]).
Line 15: Line 22:
Repositories can be [:Clone:cloned] with {{{hg clone}}}. Checking the internal integrity of a repository (the contents of {{{.hg}}}) can be done with {{{hg verify}}}.
Line 17: Line 23:
The last transaction in a repository can be undone with {{{hg rollback}}} (see ["Rollback"]). === Transferring Changesets and Cloning ===

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"]).

Repositories can be [:Clone:cloned] with {{{hg clone}}}.


=== Checking Integrity ===

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


=== Structure ===
Line 28: Line 46:

=== Backup ===
Line 30: Line 51:
See also: ManPages, RepositoryNaming, PublishingRepositories, RepositoryConversion
===
See also ===

 *
ManPages
 *
RepositoryNaming
 *
PublishingRepositories
 *
RepositoryConversion

Repository

(for a short intro of the basic concepts of Mercurial, see UnderstandingMercurial)

A repository is a directory (the repository directory or "repo" directory) which contains a subdirectory named .hg (dot hg) where Mercurial stores its internal data structures. Everything else (files and other subdirectories) in the repo directory is conceptually part of the [:WorkingDirectory:working directory], which is tracked by Mercurial (some files and subdirectories may be ignored. See [".hgignore"]).

TableOfContents

1. Creation

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

2. 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].

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

3. Transferring Changesets and Cloning

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"]).

Repositories can be [:Clone:cloned] with hg clone.

4. Checking Integrity

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

5. Structure

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

  • The [:Manifest:manifest] — Files .hg/store/00manifest.i and .hg/store/00manifest.d

    • Describes the file contents of the repository at a particular [:ChangeSetID: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].

6. 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"]).

7. See also


CategoryGlossary

Repository (last edited 2013-03-25 18:30:23 by 208)