sapling/eden/scm
Jun Wu e41e214a01 remotenames: avoid updating "selectivepullaccessedbookmarks" if unnecessary
Summary:
I encountered a 19s `hg sl` run where 13s were spent on
`remotenames.updateaccessedbookmarks` (8 times).

{F225347899}

The filesystem is unusually slow since the it's nearly full. However, the
updates are not really necessary since I'm not accessing more remote names.
Accessing one bookmark via smartlog rewrites the entire accessed file, which is
O(N^2) and undesirable.

Improve it by skipping writing if nothing has changed. In the future we might
want to optimize it further by:
- Only update (and do ui.log) "accessedbookmarks" at most once per command.
- Potentially drop the "accessedbookmarks" tracking by using "remotenames"
  directly - everything in "remotenames" is accessed.

Reviewed By: markbt

Differential Revision: D19191528

fbshipit-source-id: 46635d4e5c9d0034ace9cdafc1f42a4512aa8774
2019-12-20 16:14:24 -08:00
..
contrib run-tests: make --chg work again 2019-12-09 13:20:24 -08:00
distutils_rust Move fb-mercurial sources into an eden/scm subdirectory. 2019-11-13 16:04:48 -08:00
doc Move fb-mercurial sources into an eden/scm subdirectory. 2019-11-13 16:04:48 -08:00
edenscm remotenames: avoid updating "selectivepullaccessedbookmarks" if unnecessary 2019-12-20 16:14:24 -08:00
edenscmnative dag: rename GroupId to Group 2019-12-20 16:14:21 -08:00
exec scratch: drop dependency on telemetry 2019-12-20 16:14:19 -08:00
i18n Move fb-mercurial sources into an eden/scm subdirectory. 2019-11-13 16:04:48 -08:00
lib dag: rewrite Debug for Dag 2019-12-20 16:14:21 -08:00
newdoc Move fb-mercurial sources into an eden/scm subdirectory. 2019-11-13 16:04:48 -08:00
slides Move fb-mercurial sources into an eden/scm subdirectory. 2019-11-13 16:04:48 -08:00
tests test-fb-hgext-sshaskpass: require linux to run 2019-12-20 16:14:24 -08:00
.editorconfig Move fb-mercurial sources into an eden/scm subdirectory. 2019-11-13 16:04:48 -08:00
.flake8 Move fb-mercurial sources into an eden/scm subdirectory. 2019-11-13 16:04:48 -08:00
.gitignore Move fb-mercurial sources into an eden/scm subdirectory. 2019-11-13 16:04:48 -08:00
COPYING Move fb-mercurial sources into an eden/scm subdirectory. 2019-11-13 16:04:48 -08:00
gen_version.py Move fb-mercurial sources into an eden/scm subdirectory. 2019-11-13 16:04:48 -08:00
hgeditor Move fb-mercurial sources into an eden/scm subdirectory. 2019-11-13 16:04:48 -08:00
Makefile Move fb-mercurial sources into an eden/scm subdirectory. 2019-11-13 16:04:48 -08:00
README.rst Move fb-mercurial sources into an eden/scm subdirectory. 2019-11-13 16:04:48 -08:00
setup.py policy: simplify it 2019-12-09 13:13:27 -08:00

Mercurial
=========

Mercurial is a fast, easy to use, distributed revision control tool
for software developers.

Basic install::

 $ make            # see install targets
 $ make install    # do a system-wide install
 $ hg debuginstall # sanity-check setup
 $ hg              # see help

Running without installing::

 $ make local      # build for inplace usage
 $ ./hg --version  # should show the latest version

See https://mercurial-scm.org/ for detailed installation
instructions, platform-specific notes, and Mercurial user information.