##// END OF EJS Templates
localrepo: decorate dirstate() with filecache...
localrepo: decorate dirstate() with filecache We refresh the stat info when releasing repo.wlock(), right after writing it. Also, invalidate the dirstate by deleting its attribute. This will force a stat by the decorator that actually checks if anything changed, rather than reading it again every time. Note that prior to this, there was a single dirstate instance created for a localrepo. It was invalidated by calling dirstate.invalidated(), clearing its internal attributes. As a consequence, the following construct is no longer safe: ds = repo.dirstate # keep a reference to the repo's dirstate wlock = repo.wlock() try: ds.setparents(...) finally: wlock.release() # dirstate should be written here Since it's possible that the dirstate was modified between lines #1 and #2, therefore changes to the old dirstate won't get written when the lock releases, because a new instance was created by the decorator.

File last commit:

r13839:8d960240 stable
r14930:372d9d8b default
Show More
hgweb.txt
47 lines | 1.8 KiB | text/plain | TextLexer
Matt Mackall
help: add some help for hgweb.config files
r10999 Mercurial's internal web server, hgweb, can serve either a single
repository, or a collection of them. In the latter case, a special
configuration file can be used to specify the repository paths to use
and global web configuration options.
Martin Geisler
patchbomb, help/hgweb: do not refer to config files as hgrc files
r13838 This file uses the same syntax as other Mercurial configuration files,
but only the following sections are recognized:
Matt Mackall
help: add some help for hgweb.config files
r10999
- web
- paths
- collections
The ``web`` section can specify all the settings described in the web
Martin Geisler
help/hgweb: add pointer to hgrc(5) location
r13839 section of the hgrc(5) documentation. See :hg:`help config` for
information on where to find the manual page.
Matt Mackall
help: add some help for hgweb.config files
r10999
The ``paths`` section provides mappings of physical repository
paths to virtual ones. For instance::
[paths]
projects/a = /foo/bar
projects/b = /baz/quux
web/root = /real/root/*
/ = /real/root2/*
virtual/root2 = /real/root2/**
- The first two entries make two repositories in different directories
appear under the same directory in the web interface
- The third entry maps every Mercurial repository found in '/real/root'
into 'web/root'. This format is preferred over the [collections] one,
since using absolute paths as configuration keys is not supported on every
platform (especially on Windows).
- The fourth entry is a special case mapping all repositories in
'/real/root2' in the root of the virtual directory.
- The fifth entry recursively finds all repositories under the real
root, and maps their relative paths under the virtual root.
The ``collections`` section provides mappings of trees of physical
repositories paths to virtual ones, though the paths syntax is generally
preferred. For instance::
[collections]
/foo = /foo
Here, the left side will be stripped off all repositories found in the
right side. Thus ``/foo/bar`` and ``foo/quux/baz`` will be listed as
``bar`` and ``quux/baz`` respectively.