e7aa113b14f77959ad4039d873b57100a4d56b31: global: use pycompat.xrange()
Gregory Szorc <gregory.szorc@gmail.com> - Wed, 01 Aug 2018 13:00:45 -0700 - rev 47112
Push 837 by gszorc@mozilla.com at Fri, 03 Aug 2018 01:30:56 +0000
global: use pycompat.xrange() On Python 3, our module importer automatically rewrites xrange() to pycompat.xrange(). We want to move away from the custom importer on Python 3. This commit converts all instances of xrange() to use pycompat.xrange(). Differential Revision: https://phab.mercurial-scm.org/D4032
7eba8f83129bc0642d19ee72ae335d0d1846803e: pycompat: add xrange alias for Python 2
Gregory Szorc <gregory.szorc@gmail.com> - Wed, 01 Aug 2018 12:57:15 -0700 - rev 47111
Push 837 by gszorc@mozilla.com at Fri, 03 Aug 2018 01:30:56 +0000
pycompat: add xrange alias for Python 2 We assign xrange on Python 3 but not Python 2. Adding the missing symbol on Python 2 allows us to use `pycompat.xrange` to get a generator range function. Differential Revision: https://phab.mercurial-scm.org/D4031
0a57945aaf7f80438086e1c414ff3b9ec06266d8: manifest: persist the manifestfulltext cache
Martijn Pieters <mj@zopatista.com> - Tue, 31 Jul 2018 19:37:54 +0200 - rev 47110
Push 837 by gszorc@mozilla.com at Fri, 03 Aug 2018 01:30:56 +0000
manifest: persist the manifestfulltext cache Reconstructing the manifest from the revlog takes time, so much so that there already is a LRU cache to avoid having to load a manifest multiple times. This patch persists that LRU cache in the .hg/cache directory, so we can re-use this cache across hg commands. Commit benchmark (run on Macos 10.13 on a 2017-model Macbook Pro with Core i7 2.9GHz and flash drive), testing without and with patch run 5 times, baseline is r2a227782e754: * committing to an existing file, against the mozilla-central repository. Baseline real time average 1.9692, with patch 1.3786. A new debugcommand "hg debugmanifestfulltextcache" lets you inspect the cache, clear it, or add specific manifest nodeids to it. When calling repo.updatecaches(), the manifest(s) for the working copy parents are added to the cache. The hg perfmanifest command has an additional --clear-disk switch to clear this cache when testing manifest loading performance. Using this command to test performance on the firefox repository for revision f947d902ed91, whose manifest has a delta chain length of 60540, we see: $ hg perfmanifest f947d902ed91 --clear-disk ! wall 0.972253 comb 0.970000 user 0.850000 sys 0.120000 (best of 10) $ hg debugmanifestfulltextcache -a `hg log --debug -r f947d902ed91 | grep manifest | cut -d: -f3` Cache contains 1 manifest entries, in order of most to least recent: id: 0294517df4aad07c70701db43bc7ff24c3ce7dbc, size 25.6 MB Total cache data size 25.6 MB, on-disk 0 bytes $ hg perfmanifest f947d902ed91 ! wall 0.036748 comb 0.040000 user 0.020000 sys 0.020000 (best of 100) Worst-case scenario: a manifest text loaded from a single delta; in the firefox repository manifest node 9a1246ff762e is the chain base for the manifest attached to revision f947d902ed91. Loading this from a full cache file is just as fast as without the cache; the extra node ids ensure a big full cache: $ for node in 9a1246ff762e 1a1922c14a3e 54a31d11a36a 0294517df4aa; do > hgd debugmanifestfulltextcache -a $node > /dev/null > done $ hgd perfmanifest -m 9a1246ff762e ! wall 0.077513 comb 0.080000 user 0.030000 sys 0.050000 (best of 100) $ hgd perfmanifest -m 9a1246ff762e --clear-disk ! wall 0.078547 comb 0.080000 user 0.070000 sys 0.010000 (best of 100)
ddb15a83ae0b73beb724f2c538a04f4bb5850f34: debug: allow specifying a manifest node rather than a revision
Martijn Pieters <mj@zopatista.com> - Tue, 31 Jul 2018 19:37:48 +0200 - rev 47109
Push 837 by gszorc@mozilla.com at Fri, 03 Aug 2018 01:30:56 +0000
debug: allow specifying a manifest node rather than a revision
a4d847cea6f8e0a99c8b17c192669792026f633b: perfmoonwalk: make work with filtered repo
Martin von Zweigbergk <martinvonz@google.com> - Fri, 20 Jul 2018 11:37:31 -0700 - rev 47108
Push 837 by gszorc@mozilla.com at Fri, 03 Aug 2018 01:30:56 +0000
perfmoonwalk: make work with filtered repo This also fixes the out-of-range "len(repo)" that weirdly works (and gets the nullid). I suspect it wasn't intentional to include the timing of reading the null revision. Differential Revision: https://phab.mercurial-scm.org/D4017
83a505b5cf85ab172e30dedf4d940070f027f1eb: revlog: don't include trailing nullrev in revlog.revs(stop=len(revlog))
Martin von Zweigbergk <martinvonz@google.com> - Fri, 20 Jul 2018 11:17:33 -0700 - rev 47107
Push 837 by gszorc@mozilla.com at Fri, 03 Aug 2018 01:30:56 +0000
revlog: don't include trailing nullrev in revlog.revs(stop=len(revlog)) This was an odd side effect of the nullid entry that's in the index. The existing callers (mostly repair.py) seem to have handled it fine. It doesn't seem intentional, and it's pretty surprising, so let's remove that surprise. Differential Revision: https://phab.mercurial-scm.org/D4015
65ed2fcb9032ae3822fbaf5aac50d8feb0f35cbf: patchbomb: ensure all headers and values given to email mod are native strings
Augie Fackler <augie@google.com> - Mon, 16 Jul 2018 14:15:29 -0400 - rev 47106
Push 837 by gszorc@mozilla.com at Fri, 03 Aug 2018 01:30:56 +0000
patchbomb: ensure all headers and values given to email mod are native strings This lets test-patch-bookmark.t only fail with some harmless header output changes on Python 3, so I think patchbomb might be basically useful on Python 3 now. Differential Revision: https://phab.mercurial-scm.org/D3952
e971d6eb47708bc16f67c3c9a71f434797d2ba9a: context: delete an obsolete comment
Martin von Zweigbergk <martinvonz@google.com> - Mon, 30 Jul 2018 14:37:36 -0700 - rev 47105
Push 837 by gszorc@mozilla.com at Fri, 03 Aug 2018 01:30:56 +0000
context: delete an obsolete comment Obsolete since 91618801d5c3 (context: raise ProgrammingError on repo['my-tag'], 2018-07-06). Differential Revision: https://phab.mercurial-scm.org/D4002
87a581d1391c7f9ebb90f51563b3ef900b4515db: templatekw: use ctx1.status(ctx2) instead of repo.status(ctx1, ctx2)
Martin von Zweigbergk <martinvonz@google.com> - Fri, 27 Jul 2018 14:48:58 -0700 - rev 47104
Push 837 by gszorc@mozilla.com at Fri, 03 Aug 2018 01:30:56 +0000
templatekw: use ctx1.status(ctx2) instead of repo.status(ctx1, ctx2) Differential Revision: https://phab.mercurial-scm.org/D4001
59af0c7d103f50e29d099d4e0b0b3508435cfd79: patch: use ctx1.status(ctx2) instead of repo.status(ctx1, ctx2)
Martin von Zweigbergk <martinvonz@google.com> - Fri, 27 Jul 2018 14:48:34 -0700 - rev 47103
Push 837 by gszorc@mozilla.com at Fri, 03 Aug 2018 01:30:56 +0000
patch: use ctx1.status(ctx2) instead of repo.status(ctx1, ctx2) Differential Revision: https://phab.mercurial-scm.org/D4000
af5c0c933af804a07c8eae9635be4089abfa67e4: fileset: use ctx1.status(ctx2) instead of repo.status(ctx1, ctx2)
Martin von Zweigbergk <martinvonz@google.com> - Fri, 27 Jul 2018 14:48:06 -0700 - rev 47102
Push 837 by gszorc@mozilla.com at Fri, 03 Aug 2018 01:30:56 +0000
fileset: use ctx1.status(ctx2) instead of repo.status(ctx1, ctx2) Differential Revision: https://phab.mercurial-scm.org/D3999
3bd22c4d37112c835e1e8ef4d9fcec89db3c6351: uncommit: use ctx1.status(ctx2) instead of repo.status(ctx1, ctx2)
Martin von Zweigbergk <martinvonz@google.com> - Fri, 27 Jul 2018 14:47:38 -0700 - rev 47101
Push 837 by gszorc@mozilla.com at Fri, 03 Aug 2018 01:30:56 +0000
uncommit: use ctx1.status(ctx2) instead of repo.status(ctx1, ctx2) Differential Revision: https://phab.mercurial-scm.org/D3998
260c17eaf3f7ef46aea5e6f4bd300d51aee86423: fix: use ctx1.status(ctx2) instead of repo.status(ctx1, ctx2)
Martin von Zweigbergk <martinvonz@google.com> - Fri, 27 Jul 2018 14:46:59 -0700 - rev 47100
Push 837 by gszorc@mozilla.com at Fri, 03 Aug 2018 01:30:56 +0000
fix: use ctx1.status(ctx2) instead of repo.status(ctx1, ctx2) Differential Revision: https://phab.mercurial-scm.org/D3997
e252f136b9488e0d31f478e3975dfb5a959db1a0: amend: use ctx1.status(ctx2) instead of repo.status(ctx1, ctx2)
Martin von Zweigbergk <martinvonz@google.com> - Fri, 27 Jul 2018 14:49:45 -0700 - rev 47099
Push 837 by gszorc@mozilla.com at Fri, 03 Aug 2018 01:30:56 +0000
amend: use ctx1.status(ctx2) instead of repo.status(ctx1, ctx2) Differential Revision: https://phab.mercurial-scm.org/D3996
afc4ad706f9ccb89c2130d3f6de5dd79430541a8: dispatch: making all hg abortions be output with a specific label
Rodrigo Damazio Bovendorp <rdamazio@google.com> - Thu, 19 Jul 2018 23:22:05 -0700 - rev 47098
Push 837 by gszorc@mozilla.com at Fri, 03 Aug 2018 01:30:56 +0000
dispatch: making all hg abortions be output with a specific label This allows abortions to be highlighted specially and separately from warnings - for instance, red is a reasonable color for when hg aborts, but is overly dramatic for most warnings produced elsewhere. Differential Revision: https://phab.mercurial-scm.org/D3967
824636b08400c3f1265fe1eb6d8971384560ec60: packaging: always execute builddeb from source root stable
Gregory Szorc <gregory.szorc@gmail.com> - Wed, 01 Aug 2018 12:24:52 -0700 - rev 47097
Push 837 by gszorc@mozilla.com at Fri, 03 Aug 2018 01:30:56 +0000
packaging: always execute builddeb from source root Without this, dockerdeb and the make targets that invoke it may fail depending on the pwd at the time of invocation.
eb2945f0a4a1bb5561a0d773ce46695b68e48dda: ui: fix implicit unicode-to-bytes conversion introduced in 9df29b7c62cf
Augie Fackler <augie@google.com> - Thu, 19 Jul 2018 15:21:28 -0400 - rev 47085
Push 836 by gszorc@mozilla.com at Wed, 01 Aug 2018 17:04:10 +0000
ui: fix implicit unicode-to-bytes conversion introduced in 9df29b7c62cf This is harmless, unless you try and run hg with HGUNICODEPEDANTRY enabled. It's technically wrong, so let's go ahead and fix it. Differential Revision: https://phab.mercurial-scm.org/D3989
813e726e5343689d4f94e3deecf2d68bfc22dc7c: merge with stable
Augie Fackler <augie@google.com> - Wed, 01 Aug 2018 10:23:57 -0400 - rev 47084
Push 836 by gszorc@mozilla.com at Wed, 01 Aug 2018 17:04:10 +0000
merge with stable
cc8657f6fd3ed222cc92c6994ab3a561da5ad3d3: Added signature for changeset 33ac6a72308a stable
Augie Fackler <raf@durin42.com> - Wed, 01 Aug 2018 10:20:19 -0400 - rev 47083
Push 836 by gszorc@mozilla.com at Wed, 01 Aug 2018 17:04:10 +0000
Added signature for changeset 33ac6a72308a
d55e53702ef90cbf65ca1478d37feb9c40fb4173: Added tag 4.7 for changeset 33ac6a72308a stable
Augie Fackler <raf@durin42.com> - Wed, 01 Aug 2018 10:20:18 -0400 - rev 47082
Push 836 by gszorc@mozilla.com at Wed, 01 Aug 2018 17:04:10 +0000
Added tag 4.7 for changeset 33ac6a72308a
(0) -30000 -10000 -100 tip