Differences between revisions 19 and 20
Revision 19 as of 2012-11-06 09:04:17
Size: 4098
Editor: mpm
Comment: moinfs edit
Revision 20 as of 2012-11-06 09:04:21
Size: 8194
Editor: mpm
Comment: moinfs edit
Deletions are marked like this. Additions are marked like this.
Line 98: Line 98:
n 666 592 2008-08-21 11: n 666 592 2008-08-21 11:29:20 hgext/win32text.py
n 666 4919 2008-08-21 11:29:20 hgmerge
n 666 283 2008-08-21 11:29:20 hgweb.cgi
n 666 892 2008-08-21 11:29:20 hgwebdir.cgi
n 666 0 2008-08-21 11:29:20 mercurial/__init__.py
n 666 5751 2008-08-21 11:29:20 mercurial/appendfile.py
n 666 7767 2008-08-21 11:29:20 mercurial/bdiff.c
n 666 7664 2008-08-21 11:29:20 mercurial/bundlerepo.py
n 666 16601 2008-08-21 11:29:20 mercurial/byterange.py
n 666 1116 2008-08-21 11:29:20 mercurial/changegroup.py
n 666 2075 2008-08-21 11:29:20 mercurial/changelog.py
n 666 119453 2008-08-21 11:29:21 mercurial/commands.py
n 666 4592 2008-08-21 11:29:21 mercurial/demandload.py
n 666 14293 2008-08-21 11:29:21 mercurial/dirstate.py
n 666 847 2008-08-21 11:29:21 mercurial/fancyopts.py
n 666 3378 2008-08-21 11:29:21 mercurial/filelog.py
n 666 1368 2008-08-21 11:29:21 mercurial/hg.py
n 666 38438 2008-08-21 11:29:21 mercurial/hgweb.py
n 666 770 2008-08-21 11:29:21 mercurial/httprangereader.py
n 666 4826 2008-08-21 11:29:21 mercurial/httprepo.py
n 666 444 2008-08-21 11:29:21 mercurial/i18n.py
n 666 71466 2008-08-21 11:29:21 mercurial/localrepo.py
n 666 3210 2008-08-21 11:29:21 mercurial/lock.py
n 666 6626 2008-08-21 11:29:21 mercurial/manifest.py
n 666 6101 2008-08-21 11:29:21 mercurial/mdiff.py
n 666 7620 2008-08-21 11:29:21 mercurial/mpatch.c
n 666 422 2008-08-21 11:29:21 mercurial/node.py
n 666 2860 2008-08-21 11:29:21 mercurial/packagescan.py
n 666 555 2008-08-21 11:29:21 mercurial/remoterepo.py
n 666 274 2008-08-21 11:29:21 mercurial/repo.py
n 666 30641 2008-08-21 11:29:21 mercurial/revlog.py
n 666 3991 2008-08-21 11:29:21 mercurial/sshrepo.py
n 666 1534 2008-08-21 11:29:21 mercurial/statichttprepo.py
n 666 9759 2008-08-21 11:29:21 mercurial/templater.py
n 666 2513 2008-08-21 11:29:21 mercurial/transaction.py
n 666 8662 2008-08-21 11:29:21 mercurial/ui.py
n 666 25290 2008-08-21 11:29:21 mercurial/util.py
n 666 2148 2008-08-21 11:29:21 mercurial/version.py
n 666 6251 2008-08-21 11:29:21 notes.txt
n 666 507 2008-08-21 11:29:21 rewrite-log
n 666 3941 2008-08-21 11:29:21 setup.py
n 666 997 2008-08-21 11:29:21 templates/changelog-gitweb.tmpl
n 666 155 2008-08-21 11:29:21 templates/changelog-rss.tmpl
n 0 -1 unset templates/changelog.tmpl
n 0 -1 unset templates/changelogentry-gitweb.tmpl
n 0 -1 unset templates/changelogentry-rss.tmpl
n 0 -1 unset templates/changelogentry.tmpl
n 0 -1 unset templates/changeset-gitweb.tmpl
n 0 -1 unset templates/changeset-raw.tmpl
n 0 -1 unset templates/changeset.tmpl
n 0 -1 unset templates/error-gitweb.tmpl
n 0 -1 unset templates/error.tmpl
n 0 -1 unset templates/fileannotate-gitweb.tmpl
n 0 -1 unset templates/fileannotate-raw.tmpl
n 0 -1 unset templates/fileannotate.tmpl
n 0 -1 unset templates/filediff-raw.tmpl
n 0 -1 unset templates/filediff.tmpl
n 0 -1 unset templates/filelog-gitweb.tmpl
n 0 -1 unset templates/filelog-rss.tmpl
n 0 -1 unset templates/filelog.tmpl
n 0 -1 unset templates/filelogentry-rss.tmpl
n 0 -1 unset templates/filelogentry.tmpl
n 0 -1 unset templates/filerevision-gitweb.tmpl
n 0 -1 unset templates/filerevision-raw.tmpl
n 0 -1 unset templates/filerevision.tmpl
n 0 -1 unset templates/footer-gitweb.tmpl
n 0 -1 unset templates/footer.tmpl
n 0

Note:

This page is primarily intended for developers of Mercurial.

Dirstate

Internals of the directory state cache.

Contents

  1. Introduction

1. Introduction

Mercurial tracks various information about the working directory (the dirstate):

  • what revision(s) are currently checked out
  • what files have been copied or renamed
  • what files are controlled by Mercurial

For each file that Mercurial controls, we record the following information:

  • its size
  • its mode
  • its modification time
  • its "state"

The states that are tracked are:

  • n - normal
  • a - added
  • r - removed
  • m - 3-way merged

With this information, we can quickly determine what files in the working directory have changed.

Here's a real example of a dirstate of a clone of the Mercurial repository itself:

DirState (last edited 2021-11-04 11:32:34 by RaphaelGomes)