Pierre-Yves David <pierre-yves.david@octobus.net> [Mon, 27 Aug 2018 11:27:04 +0200] rev 4022
sqlcache: initialize meta table last
It turns out that pysqlite commit after each table creation. This commit is an
hopeless attemps to make the caches more concurrent friendly.
Pierre-Yves David <pierre-yves.david@octobus.net> [Mon, 27 Aug 2018 10:20:15 +0200] rev 4021
obshashrange: always check in base cachekey against the recorded one
Ignoring the check in the none case is just disaster waiting to happens.
Pierre-Yves David <pierre-yves.david@octobus.net> [Mon, 27 Aug 2018 10:16:12 +0200] rev 4020
stablerangecache: fix output in the drifted case
The node were not hex, and the field had different order in the pair. This is
now fixed.
Pierre-Yves David <pierre-yves.david@octobus.net> [Mon, 27 Aug 2018 00:35:51 +0200] rev 4019
sqlcache: also ignore integrity error
integrity error can happens when multiple client tries to warm similar cache.
Given we leave multiple hole in the cache that can be warmed by anyone, this is
harder to avoid that we would like. We simply catch the error in this case.
Someone will warm the missing entry later.
Pierre-Yves David <pierre-yves.david@octobus.net> [Mon, 27 Aug 2018 00:28:19 +0200] rev 4018
sqlcache: cache OperationError when saving
This is a cache, so we should not crash when trying to operate on it.
OperationError can happens when the database is seen as readonly or locked.
Pierre-Yves David <pierre-yves.david@octobus.net> [Mon, 27 Aug 2018 00:18:06 +0200] rev 4017
sqlcache: passe better connection option
These new options should help with handling transaction consistency and database
access on high load.
Pierre-Yves David <pierre-yves.david@octobus.net> [Sun, 26 Aug 2018 20:55:26 +0200] rev 4016
contrib: introduce a small script to stress tests obsolescence exchange
Tester have been reporting some error that seems to originate from concurrent
access/update to the cache. This script will be useful to reproduce these
situations locally.
Pierre-Yves David <pierre-yves.david@octobus.net> [Tue, 28 Aug 2018 10:24:18 +0200] rev 4015
changelog: mention the database robutness fix in the changelog
Pierre-Yves David <pierre-yves.david@octobus.net> [Mon, 27 Aug 2018 12:40:47 +0200] rev 4014
sqlcache: also catch malformed database error
This is apparently another way for sqlite to fail at concurrency.
Pierre-Yves David <pierre-yves.david@octobus.net> [Mon, 27 Aug 2018 12:40:41 +0200] rev 4013
stablerange: rework saving logic to be clearer and safer
Pierre-Yves David <pierre-yves.david@octobus.net> [Mon, 27 Aug 2018 12:12:49 +0200] rev 4012
obshashrange: rework saving branching to be clearer and safer
Pierre-Yves David <pierre-yves.david@octobus.net> [Mon, 27 Aug 2018 11:40:32 +0200] rev 4011
sqlcache: protect read query too
Some error (like locked database) can even happens when doing readonly
operation. So we protect them too.
At that point, it seems that pysqlite3 is not the right tool for this job.
Pierre-Yves David <pierre-yves.david@octobus.net> [Mon, 27 Aug 2018 11:33:09 +0200] rev 4010
sqlite: fast path when nothing to save
If we have no new data to save, we should try to do anything. Doing something
concurrently is hard enough. If we can avoid doing it at all that would be
great.
Pierre-Yves David <pierre-yves.david@octobus.net> [Mon, 27 Aug 2018 11:27:04 +0200] rev 4009
sqlcache: initialize meta table last
It turns out that pysqlite commit after each table creation. This commit is an
hopeless attemps to make the caches more concurrent friendly.
Pierre-Yves David <pierre-yves.david@octobus.net> [Mon, 27 Aug 2018 10:20:15 +0200] rev 4008
obshashrange: always check in base cachekey against the recorded one
Ignoring the check in the none case is just disaster waiting to happens.
Pierre-Yves David <pierre-yves.david@octobus.net> [Mon, 27 Aug 2018 10:16:12 +0200] rev 4007
stablerangecache: fix output in the drifted case
The node were not hex, and the field had different order in the pair. This is
now fixed.
Pierre-Yves David <pierre-yves.david@octobus.net> [Mon, 27 Aug 2018 00:35:51 +0200] rev 4006
sqlcache: also ignore integrity error
integrity error can happens when multiple client tries to warm similar cache.
Given we leave multiple hole in the cache that can be warmed by anyone, this is
harder to avoid that we would like. We simply catch the error in this case.
Someone will warm the missing entry later.
Pierre-Yves David <pierre-yves.david@octobus.net> [Mon, 27 Aug 2018 00:28:19 +0200] rev 4005
sqlcache: cache OperationError when saving
This is a cache, so we should not crash when trying to operate on it.
OperationError can happens when the database is seen as readonly or locked.
Pierre-Yves David <pierre-yves.david@octobus.net> [Mon, 27 Aug 2018 00:18:06 +0200] rev 4004
sqlcache: passe better connection option
These new options should help with handling transaction consistency and database
access on high load.
Pierre-Yves David <pierre-yves.david@octobus.net> [Sun, 26 Aug 2018 20:55:26 +0200] rev 4003
contrib: introduce a small script to stress tests obsolescence exchange
Tester have been reporting some error that seems to originate from concurrent
access/update to the cache. This script will be useful to reproduce these
situations locally.
Pierre-Yves David <pierre-yves.david@octobus.net> [Tue, 21 Aug 2018 14:09:33 +0200] rev 4002
test-compat: merge mercurial-4.4 into mercurial-4.3
Pierre-Yves David <pierre-yves.david@octobus.net> [Tue, 21 Aug 2018 13:59:27 +0200] rev 4001
test: adjust glob in previous changeset
I forgot to glob the time.
Pierre-Yves David <pierre-yves.david@octobus.net> [Tue, 21 Aug 2018 15:32:02 +0200] rev 4000
branching: merge with stable
Pierre-Yves David <pierre-yves.david@octobus.net> [Tue, 21 Aug 2018 15:30:54 +0200] rev 3999
packaging: mark as development version
This avoid confusion.
Pierre-Yves David <pierre-yves.david@octobus.net> [Tue, 21 Aug 2018 15:29:32 +0200] rev 3998
Added tag 8.1.1 for changeset e7abf863e113
Pierre-Yves David <pierre-yves.david@octobus.net> [Tue, 21 Aug 2018 15:29:13 +0200] rev 3997
packaging: prepare release 8.1.1
Topic is untouched so we keep the previous version number.
Pierre-Yves David <pierre-yves.david@octobus.net> [Tue, 21 Aug 2018 14:23:47 +0200] rev 3996
branching: merge with stable
Pierre-Yves David <pierre-yves.david@octobus.net> [Tue, 21 Aug 2018 13:26:35 +0200] rev 3995
test-compat: merge mercurial-4.5 into mercurial-4.4
Pierre-Yves David <pierre-yves.david@octobus.net> [Tue, 21 Aug 2018 13:25:29 +0200] rev 3994
test-compat: merge mercurial-4.6 into mercurial-4.5
Pierre-Yves David <pierre-yves.david@octobus.net> [Tue, 21 Aug 2018 13:25:28 +0200] rev 3993
test-compat: merge stable into mercurial-4.6
Pierre-Yves David <pierre-yves.david@octobus.net> [Tue, 21 Aug 2018 13:18:52 +0200] rev 3992
changelog: add a line about improved prune documentation
Pierre-Yves David <pierre-yves.david@octobus.net> [Tue, 21 Aug 2018 13:17:27 +0200] rev 3991
changelog: reorder content
Dan Villiom Podlaski Christiansen <dan@magenta.dk> [Tue, 21 Aug 2018 12:13:28 +0200] rev 3990
prune: more human-friendly documentation
The previous help string generally had a highly technical language. I've tried
my best to address that.
Dan Villiom Podlaski Christiansen <dan@magenta.dk> [Tue, 21 Aug 2018 12:14:04 +0200] rev 3989
prune: improve help first line
The previous help string for prune didn't mention successors in the
first line.
Note: Pierre-Yves David changed the original "hidden" to "obsolete" as it is better concept to put forward. (a bit more specific and with more consequence than just "hidden").
We need a good `hg help obsolete/obsolescence` result. We'll try to get this in the next version.
Pierre-Yves David <pierre-yves.david@octobus.net> [Tue, 21 Aug 2018 12:21:05 +0200] rev 3988
prune: try to clarify the "multi" revisions case
I hope this highlight the use case for all three options.
Pierre-Yves David <pierre-yves.david@octobus.net> [Tue, 21 Aug 2018 12:21:59 +0200] rev 3987
prune: move help about biject after the one about split and fold
The --biject flag seems a less common use case.
Pierre-Yves David <pierre-yves.david@octobus.net> [Tue, 21 Aug 2018 12:18:11 +0200] rev 3986
prune: no longer consider dropping --biject
Field testing show it save people one wrong call often enough that it is worth
keeping.
Dan Villiom Podlaski Christiansen <dan@magenta.dk> [Tue, 21 Aug 2018 12:13:01 +0200] rev 3985
prune: more human-friendly documentation for --biject
Dan Villiom Podlaski Christiansen <dan@magenta.dk> [Tue, 21 Aug 2018 11:56:49 +0200] rev 3984
prune: use ``-s/--succ`` in documentation
Extracted by Pierre-Yves David
Pierre-Yves David <pierre-yves.david@octobus.net> [Tue, 21 Aug 2018 04:08:38 +0200] rev 3983
branching: merge with stable
Pierre-Yves David <pierre-yves.david@octobus.net> [Tue, 21 Aug 2018 04:05:12 +0200] rev 3982
compat: import the module dagutil module in evolve
Discovery code is core have been rewritten to no longer depends on dagutil and
the module have been removed.
This break evolve's obsmarker discovery (older version of the discovery use the
same concept).. A quick work around is to import the dagutil module in evolve
and use that for now.
Pulkit Goyal <pulkit@yandex-team.ru> [Mon, 20 Aug 2018 12:21:39 +0300] rev 3981
evolve: delete evolvestate after aborting interrupted `next --evolve`
We didn't use to delete the evolvestate after aborting an interrupted `next
--evolve`. This patch makes sure we do that. The test changes demonstrate the
fix and we add a CHANGELOG entry about the fix.
Pulkit Goyal <pulkit@yandex-team.ru> [Mon, 20 Aug 2018 12:19:05 +0300] rev 3980
tests: check that we delete evolvestate correctly after abort/stop
This patch adds test to check whether we delete the evolvestate correctly after
aborting or stopping an interrupted evolve which is caused because of `next
--evolve`.
Pierre-Yves David <pierre-yves.david@octobus.net> [Mon, 20 Aug 2018 23:04:37 +0200] rev 3979
changelog: update with issue5927 fix
Pulkit Goyal <pulkit@yandex-team.ru> [Sat, 18 Aug 2018 21:03:45 +0530] rev 3978
evolve: set the second parent if we get conflicts while evolving
This patch makes sure we set the second parent correctly if we run into
conflicts while evolving. Also, we need to make sure to reset to one parent
before committing.
Pulkit Goyal <pulkit@yandex-team.ru> [Sat, 18 Aug 2018 21:01:14 +0530] rev 3977
evolvecmd: import mercurial.node module as nodemod
We use node as a variable name at few places and the conflicts with variable
name are not good. Moreover this practice is followed in core mercurial also.
Pulkit Goyal <pulkit@yandex-team.ru> [Sat, 18 Aug 2018 20:24:41 +0530] rev 3976
tests: demonstrate the interrupted evolve does not set p2
This patch adds a test to demonstrate issue5927 which is about evolving not
setting p2 correctly in interruption.
Pierre-Yves David <pierre-yves.david@octobus.net> [Sat, 18 Aug 2018 01:32:52 +0200] rev 3975
cleanup: remove unused import