Size: 1742
Comment: extracted from page Working directory
|
Size: 8194
Comment: moinfs edit
|
Deletions are marked like this. | Additions are marked like this. |
Line 1: | Line 1: |
=== Working Directory State === | #pragma section-numbers 2 |
Line 3: | Line 3: |
Mercurial tracks various information about the [:WorkingDirectory:working directory] (the '''dirstate'''): | <<Include(A:dev)>> = Dirstate = Internals of the directory state cache. <<TableOfContents>> == Introduction == Mercurial tracks various information about the [[WorkingDirectory|working directory]] (the '''dirstate'''): |
Line 25: | Line 35: |
Here's an example of the dirstate: | Here's a real example of a dirstate of a clone of the Mercurial repository itself: |
Line 28: | Line 38: |
$ hg parents -q 1224:cc61d366bc3b $ hg debugstate n 644 168 08/19/05 17:42:17 .hgignore n 644 412 08/20/05 01:46:57 .hgtags n 644 1328 08/26/05 23:22:20 CONTRIBUTORS n 644 17992 06/30/05 10:19:51 COPYING n 644 459 08/24/05 00:38:20 MANIFEST.in n 644 512 08/24/05 00:35:02 Makefile n 644 232 06/30/05 10:19:51 PKG-INFO n 644 2736 08/20/05 00:48:33 README n 644 1676 06/30/05 10:19:51 comparison.txt n 644 3711 12/31/69 15:59:59 contrib/bash_completion n 711 1305 07/01/05 15:04:52 contrib/buildrpm n 755 8300 08/16/05 16:03:59 contrib/convert-repo n 644 69 06/30/05 10:19:51 contrib/git-viz/git-cat-file n 644 69 06/30/05 10:19:51 contrib/git-viz/git-diff-tree n 644 69 06/30/05 10:19:51 contrib/git-viz/git-rev-list n 644 69 06/30/05 10:19:51 contrib/git-viz/git-rev-tree n 644 457 06/30/05 10:19:51 contrib/git-viz/hg-viz n 755 8039 08/16/05 16:03:59 contrib/hgit n 755 40043 06/30/05 10:19:51 contrib/hgk ... }}} |
> hg up -q -C null > hg up -C -r 2000 286 files updated, 0 files merged, 0 files removed, 0 files unresolved > hg debugstate n 666 204 2008-08-21 11:29:20 .hgignore n 666 502 2008-08-21 11:29:20 .hgtags n 666 1508 2008-08-21 11:29:20 CONTRIBUTORS n 666 17992 2008-08-21 11:29:20 COPYING n 666 486 2008-08-21 11:29:20 MANIFEST.in n 666 555 2008-08-21 11:29:20 Makefile n 666 2733 2008-08-21 11:29:20 README n 666 1669 2008-08-21 11:29:20 comparison.txt n 666 3229 2008-08-21 11:29:20 contrib/bash_completion n 666 1305 2008-08-21 11:29:20 contrib/buildrpm n 666 8721 2008-08-21 11:29:20 contrib/convert-repo n 666 2058 2008-08-21 11:29:20 contrib/favicon.ico n 666 69 2008-08-21 11:29:20 contrib/git-viz/git-cat-file n 666 69 2008-08-21 11:29:20 contrib/git-viz/git-diff-tree n 666 69 2008-08-21 11:29:20 contrib/git-viz/git-rev-list n 666 69 2008-08-21 11:29:20 contrib/git-viz/git-rev-tree n 666 457 2008-08-21 11:29:20 contrib/git-viz/hg-viz n 666 3534 2008-08-21 11:29:20 contrib/hg-menu.vim n 666 1681 2008-08-21 11:29:20 contrib/hg-ssh n 666 3048 2008-08-21 11:29:20 contrib/hgdiff n 666 97510 2008-08-21 11:29:20 contrib/hgk n 666 11664 2008-08-21 11:29:20 contrib/hgk.py n 666 1987 2008-08-21 11:29:20 contrib/macosx/Readme.html n 666 668 2008-08-21 11:29:20 contrib/macosx/Welcome.html n 666 266 2008-08-21 11:29:20 contrib/macosx/macosx-build.txt n 666 37273 2008-08-21 11:29:20 contrib/mercurial.el n 666 1004 2008-08-21 11:29:20 contrib/mercurial.spec n 666 1227 2008-08-21 11:29:20 contrib/tcsh_completion n 666 1902 2008-08-21 11:29:20 contrib/tcsh_completion_build.sh n 666 4288 2008-08-21 11:29:20 contrib/win32/ReadMe.html n 666 1264 2008-08-21 11:29:20 contrib/win32/mercurial.ini n 666 2390 2008-08-21 11:29:20 contrib/win32/mercurial.iss n 666 1920 2008-08-21 11:29:20 contrib/win32/postinstall.txt n 666 1194 2008-08-21 11:29:20 contrib/win32/win32-build.txt n 666 16852 2008-08-21 11:29:20 contrib/zsh_completion n 666 457 2008-08-21 11:29:20 doc/Makefile n 666 529 2008-08-21 11:29:20 doc/README n 666 2727 2008-08-21 11:29:20 doc/gendoc.py n 666 6928 2008-08-21 11:29:20 doc/hg.1.txt n 666 827 2008-08-21 11:29:20 doc/hgmerge.1.txt n 666 11992 2008-08-21 11:29:20 doc/hgrc.5.txt n 666 350 2008-08-21 11:29:20 doc/ja/Makefile n 666 13642 2008-08-21 11:29:20 doc/ja/docbook.ja.conf n 666 734 2008-08-21 11:29:20 doc/ja/docbook.ja.xsl n 666 40128 2008-08-21 11:29:20 doc/ja/hg.1.ja.txt n 666 1090 2008-08-21 11:29:20 doc/ja/hgmerge.1.ja.txt n 666 8097 2008-08-21 11:29:20 doc/ja/hgrc.5.ja.txt n 666 307 2008-08-21 11:29:20 hg n 666 1138 2008-08-21 11:29:20 hgeditor n 666 14 2008-08-21 11:29:20 hgext/__init__.py n 666 8552 2008-08-21 11:29:20 hgext/gpg.py n 666 10097 2008-08-21 11:29:20 hgext/hbisect.py n 666 45715 2008-08-21 11:29:20 hgext/mq.py n 666 10124 2008-08-21 11:29:20 hgext/patchbomb.py 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
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: