Pierre-Yves David <pierre-yves.david@fb.com> [Thu, 24 Sep 2015 01:58:33 -0700] rev 26324
addremove: remove a mutable default argument
Mutable default arguments are know to the state of California to cause bugs.
Pierre-Yves David <pierre-yves.david@fb.com> [Thu, 24 Sep 2015 00:56:30 -0700] rev 26323
tag: remove a mutable default argument
Mutable default arguments are know to the state of California to cause bugs. We
just added support of None for the underlying function, so nothing else the
required.
Pierre-Yves David <pierre-yves.david@fb.com> [Thu, 24 Sep 2015 00:56:18 -0700] rev 26322
commit: remove a mutable default argument
Mutable default arguments are know to the state of California to cause bugs.
Siddharth Agarwal <sid0@fb.com> [Tue, 22 Sep 2015 14:09:42 -0700] rev 26321
lock: move acquirefn call to inside the lock
We're going to need to call it again as part of reinitialization after a
subprocess inherits the lock.
Siddharth Agarwal <sid0@fb.com> [Tue, 22 Sep 2015 13:25:41 -0700] rev 26320
localrepo: call lock.lock with releasefn as a keyword arg
We'll be adding an acquirefn argument soon, and this makes that clearer.
Matt Mackall <mpm@selenic.com> [Wed, 19 Aug 2015 15:11:17 -0500] rev 26319
copies: move debug statement to appropriate place
Matt Mackall <mpm@selenic.com> [Wed, 19 Aug 2015 14:05:42 -0500] rev 26318
bidmerge: choose shortest list of diverge and rename/delete warnings
Slightly less arbitrary than choosing the first set.
Matt Mackall <mpm@selenic.com> [Wed, 19 Aug 2015 14:04:54 -0500] rev 26317
copies: rename diverge2 to divergeset for clarity
Matt Mackall <mpm@selenic.com> [Wed, 19 Aug 2015 13:40:18 -0500] rev 26316
copies: begin separating mergecopies sides
Matt Mackall <mpm@selenic.com> [Wed, 19 Aug 2015 13:09:54 -0500] rev 26315
copies: rename ctx() to getfctx() for clarity
Anton Shestakov <av6@dwimlabs.net> [Wed, 23 Sep 2015 16:02:35 +0800] rev 26314
monoblue: port code selection without line numbers from gitweb
This is adapted from
2239626369f5.
It also fixes
issue4790 in monoblue; tab characters now have meaningful width on
the modified pages (file view, file diff, changeset).
Kevin Bullock <kbullock@ringworld.org> [Tue, 22 Sep 2015 15:10:24 -0500] rev 26313
help: copy-edit description of ui.supportcontact
Siddharth Agarwal <sid0@fb.com> [Tue, 22 Sep 2015 16:56:34 -0700] rev 26312
ui: avoid mutable default arguments
I almost introduced a bug around this code by accidentally mutating a default
argument. There's no reason for these to exist.
It is OK to not assign {} to environ in ui.system because util.system knows how
to deal with that.
Siddharth Agarwal <sid0@fb.com> [Tue, 22 Sep 2015 16:55:18 -0700] rev 26311
util: avoid mutable default arguments
I almost introduced a bug around this code by accidentally mutating a default
argument. There's no reason for these to exist.
Yuya Nishihara <yuya@tcha.org> [Sun, 13 Sep 2015 18:01:01 +0900] rev 26310
obsstore: fast path to check if obsstore is empty
Yuya Nishihara <yuya@tcha.org> [Sun, 13 Sep 2015 17:52:37 +0900] rev 26309
obsstore: delay loading markers from obsstore file
This will allow us to use cached revisions without parsing obsstore.
Because _version isn't determined at __init__, the debugobsconvert command no
longer works correctly. I'll fix it by a separate patch for the evolve
extension.
Yuya Nishihara <yuya@tcha.org> [Sun, 13 Sep 2015 17:47:18 +0900] rev 26308
obsstore: initialize _all markers without using _addmarkers()
The next patch will make _all variable propertycached to avoid costly parsing
of obsstore. This means we can't call _addmarkers() to initialize _all.
Because all cached markers depend on _all, it isn't necessary to update these
caches when _all is initially loaded.
Pierre-Yves David <pierre-yves.david@fb.com> [Wed, 23 Sep 2015 00:41:07 -0700] rev 26307
revset: avoid implicit None testing in revset
Implicit None testing is a very good way to get in trouble. We explicitly test
for None.
Durham Goode <durham@fb.com> [Sun, 20 Sep 2015 16:53:42 -0700] rev 26306
revset: speed up existence checks for ordered filtered sets
Previously, calling 'if foo:' on a ordered filtered set would start iterating in
whatever the current direction was and return if a value was available. If the
current direction was ascending, but the set had a fastdesc available, this
meant we did a lot more work than necessary.
If this was applied without my previous max/min fixes, it would improve max()
performance (this was my first attempt at fixing the issue). Since those
previous fixes went in though, this doesn't have a visible benefit in the
benchmarks, but it does seem clearly better than it was before so I think it
should still go in.
Durham Goode <durham@fb.com> [Sun, 20 Sep 2015 19:27:53 -0700] rev 26305
revset: remove existence check from min() and max()
min() and max() would first do an existence check. Unfortunately existence
checks can be slow in certain situations (like if the smartset is a list, and
quickly iterable in both ascending and descending directions, then doing an
existence check will start from the bottom, even if you want to check the
max()).
The fix is to not do the check, and just handle the error if it happens. In a
large repo, this speeds up:
hg log -r 'max(parents(. + .^) - (. + .^) & ::master)'
from 3.5s to 0.85s. That revset is contrived and just for testing. In our
real case we used 'bundle()' in place of '. + .^'
Interesting perf numbers for the revset benchmarks:
max(draft() and ::tip) => 0.027s to 0.0005s
max(author(lmoscovicz)) => 2.48s to 0.57s
min doesn't show any perf changes, but changing it as well will prevent a perf
regression in my next patch.
Result from revset benchmark
revset #0: draft() and ::tip
min max
0) 0.001971 0.001991
1) 0.001965 0.000428 21%
revset #1: ::tip and draft()
min max
0) 0.002017 0.001912
1) 0.001896 94% 0.000421 22%
revset #2: author(lmoscovicz)
min max
0) 1.049033 1.358913
1) 1.042508 0.319824 23%
revset #3: author(lmoscovicz) or author(mpm)
min max
0) 1.042512 1.367432
1) 1.019750 0.327750 23%
revset #4: author(mpm) or author(lmoscovicz)
min max
0) 1.050135 0.324924
1) 1.070698 0.319913
revset #5: roots((tip~100::) - (tip~100::tip))
min max
0) 0.000671 0.001018
1) 0.000605 90% 0.000946 92%
revset #6: roots((0::) - (0::tip))
min max
0) 0.149714 0.152369
1) 0.098677 65% 0.100374 65%
revset #7: (20000::) - (20000)
min max
0) 0.051019 0.042747
1) 0.035586 69% 0.016267 38%
Pierre-Yves David <pierre-yves.david@fb.com> [Fri, 18 Sep 2015 17:23:10 -0700] rev 26304
update: move default destination into a revset
This is another step toward having "default" destination more clear and unified.
Not all the logic is there because some bookmark related computation happened
elsewhere. It will be moved later.
The function is private because as for the other ones, cleanup is needed before
we can proceed.
Pierre-Yves David <pierre-yves.david@fb.com> [Thu, 17 Sep 2015 14:03:15 -0700] rev 26303
merge: move default destination computation in a revset
This is another step toward having "default" destination more clear and unified.
Pierre-Yves David <pierre-yves.david@fb.com> [Thu, 17 Sep 2015 12:44:52 -0700] rev 26302
mergecmd: simplify conditional
The previous if tested the same thing with 'if repo._activebookmark'. We make the
if/else logic clearer before a bigger refactoring.
Pierre-Yves David <pierre-yves.david@fb.com> [Thu, 17 Sep 2015 10:59:52 -0700] rev 26301
rebase: move destination computation in a revset
This is the first step toward making the "default destination" logic more clear
and unified. The revset is private because I'm happy to delay the bikeshedding until
after the clean up happened.
Augie Fackler <augie@google.com> [Tue, 22 Sep 2015 14:47:18 -0400] rev 26300
debian: include bash completions in mercurial-common
Augie Fackler <augie@google.com> [Tue, 22 Sep 2015 14:32:17 -0400] rev 26299
debian: install hgk as part of mercurial-common (
issue4829)
Leaving the hgk binary in /usr/bin causes some lintian warnings, and
downstream packages poke it in /usr/share/mercurial, so we'll just
stash it in there. Rather than patch hgk.py as part of the Mercurial
install, just drop a config file in /etc/mercurial/hgrc.d that points
to the installed hgk.
Augie Fackler <augie@google.com> [Tue, 22 Sep 2015 14:14:05 -0400] rev 26298
debian: install config files as part of mercurial-common
Future patches will start putting config files in /etc/mercurial/,
this just installs them.
Augie Fackler <augie@google.com> [Tue, 22 Sep 2015 14:31:17 -0400] rev 26297
debian: configuration so that cacerts is properly loaded
This will be included in the mercurial-common package in a followup
patch.
Augie Fackler <augie@google.com> [Tue, 22 Sep 2015 14:13:07 -0400] rev 26296
debian: install hg-ssh to /usr/bin just like downstream
Yuya Nishihara <yuya@tcha.org> [Sun, 20 Sep 2015 20:13:27 +0900] rev 26295
highlight: remove temporary hack to overwrite repo.getcwd
Now hgweb does it globally.