sapling/hgext
Bryan O'Sullivan e905def78f blackbox: defer opening a log file until needed (issue3869)
Previously, we opened the log file when creating a repo object. This
was inefficient (not all repo creation is going to result in a need to
log something), but more importantly it broke subrepo updates when used
on NFS.

* perform an update in the master repo that triggers a subrepo clone

* empty subrepo already exists, and has an open, empty blackbox.log file
  due to it being opened eagerly/prematurely

* hg decides to blow away the skeletal subrepo (see use of shutil.rmtree
  in subrepo._get)

* we crash, due to NFS treating a delete of an open file as really a
  rename to a hidden ".nfs" file

Now that we open the blackbox log file on demand, no file exists at the
time the empty subrepo is deleted, so the above problem does not occur.
2013-03-26 16:27:51 -07:00
..
convert convert: add closesort algorithm to mercurial sources 2013-03-24 00:06:52 +07:00
highlight check-code: there must also be whitespace between ')' and operator 2012-12-09 23:33:16 +01:00
inotify inotify: on Python < 2.6, socket.error lacks errno 2012-12-20 11:40:04 -08:00
largefiles largefiles: fix _always for match overrides 2013-03-25 14:22:34 -07:00
zeroconf zeroconf: use port from server instead of picking port from config (issue3746) 2012-12-30 19:19:52 +01:00
__init__.py Re-add hgext/__init__.py 2005-09-29 12:49:01 -07:00
acl.py spelling: don't/do not 2012-08-17 13:58:18 -07:00
blackbox.py blackbox: defer opening a log file until needed (issue3869) 2013-03-26 16:27:51 -07:00
bugzilla.py Merge spelling fixes 2012-09-11 08:36:09 -07:00
children.py commands: don't infer repo for commands like update (issue2748) 2012-10-16 11:43:15 -07:00
churn.py churn: sort users with same churn by name 2012-12-12 02:38:14 +01:00
color.py color: drop unnecessary global statement 2013-03-21 18:16:49 +01:00
eol.py eol: don't refer to a random name-captured ui object 2012-11-20 14:21:56 -08:00
extdiff.py commands: don't infer repo for commands like update (issue2748) 2012-10-16 11:43:15 -07:00
factotum.py factotum: fix urllib2 import so it no longer relies on a demandimport bug 2013-02-10 18:26:04 +01:00
fetch.py fetch: lowercase abort message 2012-06-12 14:18:18 +02:00
gpg.py consistency: use REV instead of REVISION 2012-06-20 16:49:04 +02:00
graphlog.py clfilter: enforce hidden changeset globally 2013-01-08 20:37:37 +01:00
hgcia.py fix trivial spelling errors 2012-08-15 22:38:42 +02:00
hgk.py hgk: fix a pyflakes error 2013-03-25 16:57:36 -07:00
histedit.py spelling: fix some minor issues found by spell checker 2013-02-10 18:24:29 +01:00
interhg.py hgext: mark all first-party extensions as such 2012-05-15 14:37:49 -05:00
keyword.py repo: repo isolation, do not pass on repo.ui for creating new repos 2012-10-10 21:55:49 +02:00
mq.py strip: make --keep option not set all dirstate times to 0 2013-03-06 20:13:09 -08:00
notify.py notify: support revset selection for subscriptions 2012-08-13 22:42:10 +02:00
pager.py pager: catch ctrl-c on exit (issue3834) 2013-02-22 15:17:33 -06:00
patchbomb.py patchbomb: -c is not an alias for the --confirm option 2012-10-28 05:44:50 -10:00
progress.py progress: use ui._isatty 2012-05-20 14:37:20 -05:00
purge.py purge: lowercase messages 2012-06-12 14:18:18 +02:00
rebase.py merge with crew-stable 2013-03-12 10:43:59 -07:00
record.py record: remove unused import 2013-01-09 21:13:52 +02:00
relink.py repo: repo isolation, do not pass on repo.ui for creating new repos 2012-10-10 21:55:49 +02:00
schemes.py fix wording and not-completely-trivial spelling errors and bad docstrings 2012-08-15 22:39:18 +02:00
share.py repo: repo isolation, do not pass on repo.ui for creating new repos 2012-10-10 21:55:49 +02:00
transplant.py transplant: replace incancestors uses with ancestors 2012-12-17 15:08:06 -08:00
win32mbcs.py win32mbcs: add reversing wrapper for some unicode-incompatible functions. 2012-10-17 18:09:00 +09:00
win32text.py check-code: there must also be whitespace between ')' and operator 2012-12-09 23:33:16 +01:00