Thu, 18 May 2017 22:53:01 +0200 test: enforce color to be enabled mercurial-4.1
Pierre-Yves David <pierre-yves.david@octobus.net> [Thu, 18 May 2017 22:53:01 +0200] rev 2423
test: enforce color to be enabled 4.2 enable color by default and start to get used in test. So we add this to the test for previous version.
Thu, 18 May 2017 22:12:05 +0200 merge with default stable
Pierre-Yves David <pierre-yves.david@octobus.net> [Thu, 18 May 2017 22:12:05 +0200] rev 2422
merge with default
Thu, 18 May 2017 21:59:10 +0200 tests: add a test about strip with obshashrange enable
Pierre-Yves David <pierre-yves.david@octobus.net> [Thu, 18 May 2017 21:59:10 +0200] rev 2421
tests: add a test about strip with obshashrange enable I've seen some traceback but I cannot reproduce them. This tests seems useful anyway.
Thu, 18 May 2017 18:35:34 +0200 obshistory: add a json test with cycles
Boris Feld <boris.feld@octobus.net> [Thu, 18 May 2017 18:35:34 +0200] rev 2420
obshistory: add a json test with cycles
Thu, 18 May 2017 18:40:20 +0200 tests: glob an absolute path
Pierre-Yves David <pierre-yves.david@octobus.net> [Thu, 18 May 2017 18:40:20 +0200] rev 2419
tests: glob an absolute path The ssh command path was in full and pointing the mercurial checkout of the last one who touched the test.
Thu, 18 May 2017 18:34:26 +0200 olog: document the default value
Pierre-Yves David <pierre-yves.david@octobus.net> [Thu, 18 May 2017 18:34:26 +0200] rev 2418
olog: document the default value We actually display the log for '.' which is useful.
Thu, 18 May 2017 18:29:28 +0200 readme: rearrange changelog content
Pierre-Yves David <pierre-yves.david@octobus.net> [Thu, 18 May 2017 18:29:28 +0200] rev 2417
readme: rearrange changelog content blackbox is more important than the various caches changes.
Thu, 18 May 2017 18:18:01 +0200 obshistory: rename the command to "olog"
Pierre-Yves David <pierre-yves.david@octobus.net> [Thu, 18 May 2017 18:18:01 +0200] rev 2416
obshistory: rename the command to "olog" The command start to look good enough to be handed out to user. We replace the old and useless "olog" alias in favor of the new command.
Thu, 18 May 2017 18:04:47 +0200 obshistory: move the command into the obshistory module
Pierre-Yves David <pierre-yves.david@octobus.net> [Thu, 18 May 2017 18:04:47 +0200] rev 2415
obshistory: move the command into the obshistory module The root module is far too large already.
Thu, 18 May 2017 17:40:07 +0200 obshistory: add docstring to cmddebugobshistory
Boris Feld <boris.feld@octobus.net> [Thu, 18 May 2017 17:40:07 +0200] rev 2414
obshistory: add docstring to cmddebugobshistory Add debugobshistory command documentation based on the log command documentation.
Thu, 18 May 2017 17:47:59 +0200 obshashrangecache: make sure we re-warm the cache after a reset
Pierre-Yves David <pierre-yves.david@octobus.net> [Thu, 18 May 2017 17:47:59 +0200] rev 2413
obshashrangecache: make sure we re-warm the cache after a reset This will "mitigate" the effect of dropping existing entries when new markers affect existing range.
Thu, 18 May 2017 17:35:36 +0200 obshashrangecache: precisely track affected revs when adding new markers
Pierre-Yves David <pierre-yves.david@octobus.net> [Thu, 18 May 2017 17:35:36 +0200] rev 2412
obshashrangecache: precisely track affected revs when adding new markers This will be useful when we start doing finer grained invalidation (instead of dropping all data).
Thu, 18 May 2017 14:58:22 +0200 debugobshistory: handle multiple cycles
Boris Feld <boris.feld@octobus.net> [Thu, 18 May 2017 14:58:22 +0200] rev 2411
debugobshistory: handle multiple cycles We previously handled up to one cycle only. This is now fixed.
Thu, 18 May 2017 14:49:02 +0200 test: clean the debugobshistory cycle test
Boris Feld <boris.feld@octobus.net> [Thu, 18 May 2017 14:49:02 +0200] rev 2410
test: clean the debugobshistory cycle test Use 'desc(...)' instead of revision numbers. Also blank lines between commands in the same test
Thu, 18 May 2017 17:03:11 +0200 obsdiscovery: add more debug output
Pierre-Yves David <pierre-yves.david@octobus.net> [Thu, 18 May 2017 17:03:11 +0200] rev 2409
obsdiscovery: add more debug output we add a summary debug output to help gathering data.
Thu, 18 May 2017 16:59:25 +0200 discovery: log information about obshashrange
Pierre-Yves David <pierre-yves.david@octobus.net> [Thu, 18 May 2017 16:59:25 +0200] rev 2408
discovery: log information about obshashrange We augment the blackbox output to help with data gathering.
Thu, 18 May 2017 11:29:27 +0200 obshistory: add a graph option on the debugobshistory command
Pierre-Yves David <pierre-yves.david@octobus.net> [Thu, 18 May 2017 11:29:27 +0200] rev 2407
obshistory: add a graph option on the debugobshistory command Add a graph option (--graph) to the debugobshistory. The output is like the 'hg log -G' output. The option is activated by default but can be deactivated with '--no-graph' option. There are various issue with the current implementation (multiple cycles handling, N² complexity) but this can be fixed later.
Thu, 18 May 2017 11:29:23 +0200 obshistory: import 'node' as 'nodemod'
Pierre-Yves David <pierre-yves.david@octobus.net> [Thu, 18 May 2017 11:29:23 +0200] rev 2406
obshistory: import 'node' as 'nodemod' This simplify the next changeset.
Thu, 18 May 2017 11:00:06 +0200 label: add a label for the node in the "wc now at" message
Pierre-Yves David <pierre-yves.david@octobus.net> [Thu, 18 May 2017 11:00:06 +0200] rev 2405
label: add a label for the node in the "wc now at" message MOAR COLOR FOR THE COLOR GOAD!
Thu, 18 May 2017 10:56:08 +0200 label: rename 'evolve.short_node' to 'evolve.node'
Pierre-Yves David <pierre-yves.david@octobus.net> [Thu, 18 May 2017 10:56:08 +0200] rev 2404
label: rename 'evolve.short_node' to 'evolve.node' A wider labelk will helps compatibility.
Wed, 17 May 2017 19:20:43 +0200 obshistory: refactor debugobshistory
Boris Feld <boris.feld@octobus.net> [Wed, 17 May 2017 19:20:43 +0200] rev 2403
obshistory: refactor debugobshistory Rename the function and extract the heavy work of the command in a separate module named obshistory.py
Wed, 17 May 2017 18:54:48 +0200 test: adapt to change in cache warming in core
Pierre-Yves David <pierre-yves.david@octobus.net> [Wed, 17 May 2017 18:54:48 +0200] rev 2402
test: adapt to change in cache warming in core Core Mercurial has a more rational cache warming strategy now. 24f55686a63d stopped warming of the cache after every changegroup application (in favor of end of transaction warming). This reflect in the blackbox test output.
Wed, 17 May 2017 18:38:13 +0200 test: adapt to change in cache warming in core
Pierre-Yves David <pierre-yves.david@octobus.net> [Wed, 17 May 2017 18:38:13 +0200] rev 2401
test: adapt to change in cache warming in core Core Mercurial has a more rational cache warming strategy now. 2b6692df1bdf stopped warming of the cache after every commit (in favor of end of transaction warming). This reflect in the blackbox test output.
Wed, 17 May 2017 18:47:22 +0200 stablerangecache: avoid crash when 'cache/' directory is missing
Pierre-Yves David <pierre-yves.david@octobus.net> [Wed, 17 May 2017 18:47:22 +0200] rev 2400
stablerangecache: avoid crash when 'cache/' directory is missing If the directory is missing, we create it.
Wed, 17 May 2017 18:40:48 +0200 obshashrange: avoid crash when 'cache/' directory is missing
Pierre-Yves David <pierre-yves.david@octobus.net> [Wed, 17 May 2017 18:40:48 +0200] rev 2399
obshashrange: avoid crash when 'cache/' directory is missing If the directory is missing, we create it.
Wed, 17 May 2017 17:16:59 +0200 tests: apply output changes from core fix
Pierre-Yves David <pierre-yves.david@octobus.net> [Wed, 17 May 2017 17:16:59 +0200] rev 2398
tests: apply output changes from core fix Mercurial core fixed a bug were the obsolete set (and all depending data) stayed invalid after markers were merged. Fixing this bug is fixing some bad output on the evolve side so we apply the output change.
Wed, 17 May 2017 15:49:21 +0200 packaging: mention 'dev' status in the version number
Pierre-Yves David <pierre-yves.david@octobus.net> [Wed, 17 May 2017 15:49:21 +0200] rev 2397
packaging: mention 'dev' status in the version number
Wed, 17 May 2017 09:28:10 +0200 color: update the shorttemplate to use colors
Boris Feld <boris.feld@octobus.net> [Wed, 17 May 2017 09:28:10 +0200] rev 2396
color: update the shorttemplate to use colors
Wed, 17 May 2017 14:49:02 +0200 merge with stable
Pierre-Yves David <pierre-yves.david@octobus.net> [Wed, 17 May 2017 14:49:02 +0200] rev 2395
merge with stable
Wed, 17 May 2017 14:40:18 +0200 obshashrange: cleanup 'valid' life cycle
Pierre-Yves David <pierre-yves.david@octobus.net> [Wed, 17 May 2017 14:40:18 +0200] rev 2394
obshashrange: cleanup 'valid' life cycle - reset is only called when we detect a strip, the on disk data are invalid, - after a reset, we should not keep using the data base connection, - after a write, the on disk data are valid.
Wed, 17 May 2017 12:27:13 +0200 obsrangecache: raise programming error when using an unwarmed cache
Pierre-Yves David <pierre-yves.david@octobus.net> [Wed, 17 May 2017 12:27:13 +0200] rev 2393
obsrangecache: raise programming error when using an unwarmed cache This will provide a better experience for developer using this the cache.
Wed, 17 May 2017 13:27:29 +0200 obshashrange: stop marking on-disk data as invalid on clear
Pierre-Yves David <pierre-yves.david@octobus.net> [Wed, 17 May 2017 13:27:29 +0200] rev 2392
obshashrange: stop marking on-disk data as invalid on clear This was abusing and prevent proper use of the on disk cache.
Wed, 17 May 2017 13:16:18 +0200 obshashcache: purge the meta line before writing a new one
Pierre-Yves David <pierre-yves.david@octobus.net> [Wed, 17 May 2017 13:16:18 +0200] rev 2391
obshashcache: purge the meta line before writing a new one Otherwise we get multiple lines and this gets messy.
Wed, 17 May 2017 13:14:50 +0200 obshashrange: drop spurious whitespace
Pierre-Yves David <pierre-yves.david@octobus.net> [Wed, 17 May 2017 13:14:50 +0200] rev 2390
obshashrange: drop spurious whitespace
Wed, 17 May 2017 12:25:56 +0200 obshashcache: invalidate affected cache entries on side
Pierre-Yves David <pierre-yves.david@octobus.net> [Wed, 17 May 2017 12:25:56 +0200] rev 2389
obshashcache: invalidate affected cache entries on side Calling reset during upgrade is screwing up the cache key update.
Wed, 17 May 2017 12:26:15 +0200 obshashcache: properly break out of all loops
Pierre-Yves David <pierre-yves.david@octobus.net> [Wed, 17 May 2017 12:26:15 +0200] rev 2388
obshashcache: properly break out of all loops
Wed, 17 May 2017 12:23:10 +0200 dualsourcecache: simplify cachekey.clear
Pierre-Yves David <pierre-yves.david@octobus.net> [Wed, 17 May 2017 12:23:10 +0200] rev 2387
dualsourcecache: simplify cachekey.clear We do not needs the super call anymore and we can make the reset case more explicit. So we do.
Wed, 17 May 2017 11:58:48 +0200 tests: small test update
Pierre-Yves David <pierre-yves.david@octobus.net> [Wed, 17 May 2017 11:58:48 +0200] rev 2386
tests: small test update This is a bit clearer.
Wed, 17 May 2017 11:23:33 +0200 dualsourcecache: fix obskey return by _checkkey
Pierre-Yves David <pierre-yves.david@octobus.net> [Wed, 17 May 2017 11:23:33 +0200] rev 2385
dualsourcecache: fix obskey return by _checkkey The function was returning the old key instead of the new one. This is now fixed.
Wed, 17 May 2017 11:47:14 +0200 test: update test-obsolete.t to use common.sh stable
Boris Feld <boris.feld@octobus.net> [Wed, 17 May 2017 11:47:14 +0200] rev 2384
test: update test-obsolete.t to use common.sh The definition of getid() in the test file was wrong, use the one from common.sh instead
Tue, 16 May 2017 12:23:31 +0200 obshashrange: log reset from new markers
Pierre-Yves David <pierre-yves.david@octobus.net> [Tue, 16 May 2017 12:23:31 +0200] rev 2383
obshashrange: log reset from new markers This will help tracking performance impact from current limitation.
Tue, 16 May 2017 12:18:46 +0200 dualsourcecache: log cache reset
Pierre-Yves David <pierre-yves.david@octobus.net> [Tue, 16 May 2017 12:18:46 +0200] rev 2382
dualsourcecache: log cache reset
Tue, 16 May 2017 17:03:34 +0200 stablerange: log time spent updating the stable range
Pierre-Yves David <pierre-yves.david@octobus.net> [Tue, 16 May 2017 17:03:34 +0200] rev 2381
stablerange: log time spent updating the stable range
Tue, 16 May 2017 16:56:37 +0200 cache: track time spend updating various cache
Pierre-Yves David <pierre-yves.david@octobus.net> [Tue, 16 May 2017 16:56:37 +0200] rev 2380
cache: track time spend updating various cache This produce more useful blackbox log.
Tue, 16 May 2017 15:20:53 +0200 obshashrange: adds blackbox usage in tests
Pierre-Yves David <pierre-yves.david@octobus.net> [Tue, 16 May 2017 15:20:53 +0200] rev 2379
obshashrange: adds blackbox usage in tests This will help track the validation of the cache.
Tue, 16 May 2017 12:45:08 +0200 obshashrange: test behavior in case of rollback
Pierre-Yves David <pierre-yves.david@octobus.net> [Tue, 16 May 2017 12:45:08 +0200] rev 2378
obshashrange: test behavior in case of rollback The cache should be properly invalidated.
Tue, 16 May 2017 12:42:50 +0200 obshashrange: extend tests
Pierre-Yves David <pierre-yves.david@octobus.net> [Tue, 16 May 2017 12:42:50 +0200] rev 2377
obshashrange: extend tests We test more situations.
Tue, 16 May 2017 12:18:30 +0200 dualsourcecache: add a cache name
Pierre-Yves David <pierre-yves.david@octobus.net> [Tue, 16 May 2017 12:18:30 +0200] rev 2376
dualsourcecache: add a cache name This will be used to automatically log message for blackbox
Tue, 16 May 2017 12:17:13 +0200 obscache: stop definition of the empty key
Pierre-Yves David <pierre-yves.david@octobus.net> [Tue, 16 May 2017 12:17:13 +0200] rev 2375
obscache: stop definition of the empty key
Tue, 16 May 2017 11:41:36 +0200 obshashrange: keep value fetched from sql in memory
Pierre-Yves David <pierre-yves.david@octobus.net> [Tue, 16 May 2017 11:41:36 +0200] rev 2374
obshashrange: keep value fetched from sql in memory This will reduce the number of roundtrip to the data base we need.
Tue, 16 May 2017 11:37:45 +0200 obshashrange: stop inheriting from 'dict'
Pierre-Yves David <pierre-yves.david@octobus.net> [Tue, 16 May 2017 11:37:45 +0200] rev 2373
obshashrange: stop inheriting from 'dict' A simple dictionary attribute seems more simpler.
Wed, 17 May 2017 09:52:06 +0200 merge with stable
Pierre-Yves David <pierre-yves.david@octobus.net> [Wed, 17 May 2017 09:52:06 +0200] rev 2372
merge with stable
Wed, 17 May 2017 00:23:19 +0200 obshashrange: to not overwrite the list with the set
Pierre-Yves David <pierre-yves.david@octobus.net> [Wed, 17 May 2017 00:23:19 +0200] rev 2371
obshashrange: to not overwrite the list with the set We reusing the list variable lower in the code.
Wed, 17 May 2017 00:22:24 +0200 obshashrange: properly break out of the two loops
Pierre-Yves David <pierre-yves.david@octobus.net> [Wed, 17 May 2017 00:22:24 +0200] rev 2370
obshashrange: properly break out of the two loops Otherwise we would continue to iterate even after we reseted the cache.
Wed, 17 May 2017 00:21:30 +0200 obshashrange: fix reset conditional
Pierre-Yves David <pierre-yves.david@octobus.net> [Wed, 17 May 2017 00:21:30 +0200] rev 2369
obshashrange: fix reset conditional If the revision is in "revs" we should not reset the cache. The old code was wrong (Thanks goes to new tests for catching this).
Tue, 16 May 2017 11:21:41 +0200 cache: ensure we warm stablerange cache before the obshashrange cache
Pierre-Yves David <pierre-yves.david@octobus.net> [Tue, 16 May 2017 11:21:41 +0200] rev 2368
cache: ensure we warm stablerange cache before the obshashrange cache I've been seeing traceback that seems to be happening because of issues in this area.
Tue, 16 May 2017 23:37:10 -0700 evolve: fixing obscache invalidation stable
Rodrigo Damazio Bovendorp <rdamazio@google.com> [Tue, 16 May 2017 23:37:10 -0700] rev 2367
evolve: fixing obscache invalidation This was missing a call to the parent's destroyed(), such that any transaction after stripping some nodes would result in a crash (by attempting to read nodes which were stripped).
Fri, 12 May 2017 21:21:31 +0200 obshashrange: warm the cache at the end of each transaction
Pierre-Yves David <pierre-yves.david@octobus.net> [Fri, 12 May 2017 21:21:31 +0200] rev 2366
obshashrange: warm the cache at the end of each transaction This will help having warmed cache for read only client. The warming is still imperfect in case of markers that trigger a reset, but we are in a better place than what we used to be.
Fri, 12 May 2017 21:00:39 +0200 obshashrange: warm cache outside of loops
Pierre-Yves David <pierre-yves.david@octobus.net> [Fri, 12 May 2017 21:00:39 +0200] rev 2365
obshashrange: warm cache outside of loops The performance impact will be lower
Fri, 12 May 2017 21:20:02 +0200 obshashrange: "update" the cache on each transaction close
Pierre-Yves David <pierre-yves.david@octobus.net> [Fri, 12 May 2017 21:20:02 +0200] rev 2364
obshashrange: "update" the cache on each transaction close Right now the "update" does not really file the cache, but it will detect invalid situation and clean them.
Fri, 12 May 2017 20:52:19 +0200 obshashrange: properly invalidate the cache on destroyed
Pierre-Yves David <pierre-yves.david@octobus.net> [Fri, 12 May 2017 20:52:19 +0200] rev 2363
obshashrange: properly invalidate the cache on destroyed Copy paste is the scurge of code source.
Fri, 12 May 2017 20:49:27 +0200 obshashrange: properly drop the current connection on clear
Pierre-Yves David <pierre-yves.david@octobus.net> [Fri, 12 May 2017 20:49:27 +0200] rev 2362
obshashrange: properly drop the current connection on clear
Fri, 12 May 2017 20:40:00 +0200 obshashrange: exit early if nothing to write
Pierre-Yves David <pierre-yves.david@octobus.net> [Fri, 12 May 2017 20:40:00 +0200] rev 2361
obshashrange: exit early if nothing to write
Fri, 12 May 2017 20:29:54 +0200 obshashrange: use the dualsourcecache as a base for the cache
Pierre-Yves David <pierre-yves.david@octobus.net> [Fri, 12 May 2017 20:29:54 +0200] rev 2360
obshashrange: use the dualsourcecache as a base for the cache This will easily open the way to incrementally updated obshashrange cache. Small update are needed to the data base schema so be bump the version Currently the update function is not warming the cache (but details case where it is invalidated).
Fri, 12 May 2017 20:28:09 +0200 obscache: makes dualsourcecache compatible with obshashrange cache needs
Pierre-Yves David <pierre-yves.david@octobus.net> [Fri, 12 May 2017 20:28:09 +0200] rev 2359
obscache: makes dualsourcecache compatible with obshashrange cache needs The goal of the abstract method is to be reusable. So we make sure it is reusable.
Fri, 12 May 2017 21:20:40 +0200 readme: add a changelog entry about the more efficient obscache
Pierre-Yves David <pierre-yves.david@octobus.net> [Fri, 12 May 2017 21:20:40 +0200] rev 2358
readme: add a changelog entry about the more efficient obscache
Fri, 12 May 2017 19:18:49 +0200 obscache: extract a data agnostic class
Pierre-Yves David <pierre-yves.david@octobus.net> [Fri, 12 May 2017 19:18:49 +0200] rev 2357
obscache: extract a data agnostic class We now have an independent class that we can reuse for other purpose (eg: obshashrange cache)
Fri, 12 May 2017 19:07:14 +0200 obscache: extract the actual data update in a dedicated function
Pierre-Yves David <pierre-yves.david@octobus.net> [Fri, 12 May 2017 19:07:14 +0200] rev 2356
obscache: extract the actual data update in a dedicated function This will help extract a data agnostic class.
Fri, 12 May 2017 19:05:46 +0200 obscache: move an assert to a lower level
Pierre-Yves David <pierre-yves.david@octobus.net> [Fri, 12 May 2017 19:05:46 +0200] rev 2355
obscache: move an assert to a lower level
Fri, 12 May 2017 19:04:13 +0200 obscache: use 'nullid' as the hash of an empty obsstore
Pierre-Yves David <pierre-yves.david@octobus.net> [Fri, 12 May 2017 19:04:13 +0200] rev 2354
obscache: use 'nullid' as the hash of an empty obsstore This align this result with what we use for 'emptykey'
Fri, 12 May 2017 18:56:56 +0200 obcache: move empty on the class
Pierre-Yves David <pierre-yves.david@octobus.net> [Fri, 12 May 2017 18:56:56 +0200] rev 2353
obcache: move empty on the class We'll extract a smaller data agnostic class but we need to gather all method on it first.
Fri, 12 May 2017 18:56:42 +0200 obcache: move _checkkey on the class
Pierre-Yves David <pierre-yves.david@octobus.net> [Fri, 12 May 2017 18:56:42 +0200] rev 2352
obcache: move _checkkey on the class We'll extract a smaller data agnostic class but we need to gather all method on it first.
Fri, 12 May 2017 18:52:59 +0200 obcache: move updateneeded on the class
Pierre-Yves David <pierre-yves.david@octobus.net> [Fri, 12 May 2017 18:52:59 +0200] rev 2351
obcache: move updateneeded on the class We'll extract a smaller data agnostic class but we need to gather all method on it first.
Fri, 12 May 2017 18:34:37 +0200 obshistory: only display each revision once in debugobshistory
Boris Feld <boris.feld@octobus.net> [Fri, 12 May 2017 18:34:37 +0200] rev 2350
obshistory: only display each revision once in debugobshistory When using a revision range, the same precursor could have been displayed more than once. Use a cache to display each revision only once. It's a fix until we found the nicest way to display obs history.
Fri, 12 May 2017 11:39:41 +0200 obshistory: display a message when one marker node has no change ctx
Boris Feld <boris.feld@octobus.net> [Fri, 12 May 2017 11:39:41 +0200] rev 2349
obshistory: display a message when one marker node has no change ctx When exchanging obs markers, there is some change contexts referencing change contexts that are not available locally. As we cannot display informations about them, instead print a message saying so.
Wed, 10 May 2017 14:46:01 +0200 ui: hg topic now display if current revision is in bad state (issue5533) stable
Boris Feld <boris.feld@octobus.net> [Wed, 10 May 2017 14:46:01 +0200] rev 2348
ui: hg topic now display if current revision is in bad state (issue5533) Previously, hg topic didn't showed the state of the current revision. Now if show both informations.
Thu, 11 May 2017 17:00:55 +0200 obsstore: also guard agains changing object in '_checkkey'
Pierre-Yves David <pierre-yves.david@octobus.net> [Thu, 11 May 2017 17:00:55 +0200] rev 2347
obsstore: also guard agains changing object in '_checkkey' The 'upgradeneeded' function needs to be able to pass the object it fetched once.
Thu, 11 May 2017 16:58:43 +0200 obscache: guard from changing changelog or obsstore object
Pierre-Yves David <pierre-yves.david@octobus.net> [Thu, 11 May 2017 16:58:43 +0200] rev 2346
obscache: guard from changing changelog or obsstore object We access these object once to make sure they will never change through the function (and their content will be fixed).
Thu, 11 May 2017 16:45:13 +0200 obscache: return the new data along-side the upgrade needs (and cache key)
Pierre-Yves David <pierre-yves.david@octobus.net> [Thu, 11 May 2017 16:45:13 +0200] rev 2345
obscache: return the new data along-side the upgrade needs (and cache key) Having one function returning consistent data will help prevent race.
Thu, 11 May 2017 16:06:31 +0200 obscache: use the smaller scope function
Pierre-Yves David <pierre-yves.david@octobus.net> [Thu, 11 May 2017 16:06:31 +0200] rev 2344
obscache: use the smaller scope function This make the function simpler and allow larger update on the 'upgradeneeded' one.
Thu, 11 May 2017 16:05:50 +0200 obscache: extract the cache key validation in its own function
Pierre-Yves David <pierre-yves.david@octobus.net> [Thu, 11 May 2017 16:05:50 +0200] rev 2343
obscache: extract the cache key validation in its own function This help keep the "up to date logic" simpler and prepare a more complex version of the "upgradeneeded" logic that would return the full data needed for the upgrade.
Wed, 10 May 2017 11:52:11 +0200 obshistory: use formatter instead of ui.write in the debugobshistory command
Boris Feld <boris.feld@octobus.net> [Wed, 10 May 2017 11:52:11 +0200] rev 2342
obshistory: use formatter instead of ui.write in the debugobshistory command Replace ui.write with a formater to have template support and json output. Update tests to assert json outputs.
Wed, 10 May 2017 09:55:22 +0200 ui: Fix hg stack json output stable
Boris Feld <boris.feld@octobus.net> [Wed, 10 May 2017 09:55:22 +0200] rev 2341
ui: Fix hg stack json output Previously 'hg stack -Tjson' generated invalid output like: [ { "isentry": true, "topic.stack.desc": "...", "topic.stack.index": 1, "topic.stack.state": "current", "topic.stack.state.symbol": "@" } ] , { "isentry": true, "topic.stack.desc": "...", "topic.stack.index": 1, "topic.stack.state": "current", "topic.stack.state.symbol": "@" }, { "isentry": false, "topic.stack.desc": "...", "topic.stack.state": "base", "topic.stack.state.symbol": "^" } ] I de-indented the fmt.end() to generate this output: [ { "isentry": true, "topic.stack.desc": "...", "topic.stack.index": 1, "topic.stack.state": "current", "topic.stack.state.symbol": "@" }, { "isentry": false, "topic.stack.desc": "...", "topic.stack.state": "base", "topic.stack.state.symbol": "^" } ] I've also added a test case.
Wed, 10 May 2017 13:04:31 +0200 topic: configure some default color for topic
Pierre-Yves David <pierre-yves.david@octobus.net> [Wed, 10 May 2017 13:04:31 +0200] rev 2340
topic: configure some default color for topic This makes thg usable
Wed, 10 May 2017 13:03:05 +0200 topic: automatically configure thg to display topic
Pierre-Yves David <pierre-yves.david@octobus.net> [Wed, 10 May 2017 13:03:05 +0200] rev 2339
topic: automatically configure thg to display topic If no other config is set, we configure Tortoise-hg to display topic. This should helps usability.
Wed, 10 May 2017 13:08:45 +0200 readme: update readme to mention 'debugobshistory'
Pierre-Yves David <pierre-yves.david@octobus.net> [Wed, 10 May 2017 13:08:45 +0200] rev 2338
readme: update readme to mention 'debugobshistory'
Tue, 09 May 2017 17:43:39 +0200 obshistory: add some color
Boris Feld <boris.feld@octobus.net> [Tue, 09 May 2017 17:43:39 +0200] rev 2337
obshistory: add some color
Wed, 10 May 2017 12:26:33 +0200 obshistory: add a debugobshistory command to show obs history of a revs
Boris Feld <boris.feld@octobus.net> [Wed, 10 May 2017 12:26:33 +0200] rev 2336
obshistory: add a debugobshistory command to show obs history of a revs Add the debugobshistory command that accept a revision range and display the obsolescence containing each revision in the range. For the moment, it only displays the predecessors.
Wed, 10 May 2017 12:16:01 +0200 tests: add the commit style checker from Mercurial
Pierre-Yves David <pierre-yves.david@octobus.net> [Wed, 10 May 2017 12:16:01 +0200] rev 2335
tests: add the commit style checker from Mercurial
Tue, 09 May 2017 19:13:12 +0200 obscache: update the cache key in place
Pierre-Yves David <pierre-yves.david@octobus.net> [Tue, 09 May 2017 19:13:12 +0200] rev 2334
obscache: update the cache key in place Instead of computing the key in place, we update the existing one using the data used for the incremental update of the content. This will help reaching purely incremental cache eventually. The 'getcachekey' function is dropped as it is no longer used.
Tue, 09 May 2017 19:02:04 +0200 obscache: distinct 'clear' and 'reset'
Pierre-Yves David <pierre-yves.david@octobus.net> [Tue, 09 May 2017 19:02:04 +0200] rev 2333
obscache: distinct 'clear' and 'reset' We make a difference between basic invalidatiton (or lack of loading) and 'reset' (current cache data are invalid). We can now ensure a non-None key when we start the update. This will allow us to "update" the existing key instead of recomputing one from scratch. This is more efficient and less racy.
Thu, 04 May 2017 21:24:02 +0200 merge with stable
Pierre-Yves David <pierre-yves.david@octobus.net> [Thu, 04 May 2017 21:24:02 +0200] rev 2332
merge with stable
Thu, 04 May 2017 21:21:59 +0200 serveronly: also enable the obscache for server only setting stable
Pierre-Yves David <pierre-yves.david@octobus.net> [Thu, 04 May 2017 21:21:59 +0200] rev 2331
serveronly: also enable the obscache for server only setting The obscache is useful and speeds things up. So we also enable for server only setting.
Thu, 04 May 2017 14:02:30 +0200 obscache: document a possible way forward to skipping obsstore parsing
Pierre-Yves David <pierre-yves.david@octobus.net> [Thu, 04 May 2017 14:02:30 +0200] rev 2330
obscache: document a possible way forward to skipping obsstore parsing We document a possibly viable idea for updating the cache on new revs without having to fully parse the obsstore.
Wed, 03 May 2017 23:07:01 +0200 obscache: update some documentation
Pierre-Yves David <pierre-yves.david@octobus.net> [Wed, 03 May 2017 23:07:01 +0200] rev 2329
obscache: update some documentation Update some data and do some proof reading.
Wed, 03 May 2017 21:47:06 +0200 obscache: Only access the new obsmarkers for marker update
Pierre-Yves David <pierre-yves.david@octobus.net> [Wed, 03 May 2017 21:47:06 +0200] rev 2328
obscache: Only access the new obsmarkers for marker update Since we know what what is the part of the file with "new" markers we can just access these. If the cache was up to date before the transaction, we'll re-parse data we just wrote. See the inline comment for details. This is good enough for now.
Wed, 03 May 2017 20:56:26 +0200 obscache: extract _updatemarkers code into its own function
Pierre-Yves David <pierre-yves.david@octobus.net> [Wed, 03 May 2017 20:56:26 +0200] rev 2327
obscache: extract _updatemarkers code into its own function This split the update logic from the bit retrieving markers. That cannot be bad.
Wed, 03 May 2017 18:46:48 +0200 obscache: extract code to update from new revision
Pierre-Yves David <pierre-yves.david@octobus.net> [Wed, 03 May 2017 18:46:48 +0200] rev 2326
obscache: extract code to update from new revision Code cleanup and prepare upstreaming. The make the code more likely to work with the key validation returning an iterator of revs to update the cache with.
Wed, 03 May 2017 18:33:53 +0200 obscache: move assert earlier in the code
Pierre-Yves David <pierre-yves.david@octobus.net> [Wed, 03 May 2017 18:33:53 +0200] rev 2325
obscache: move assert earlier in the code If we are to crash, let us crash earlier.
Wed, 03 May 2017 13:58:32 +0200 merge back with stable
Pierre-Yves David <pierre-yves.david@octobus.net> [Wed, 03 May 2017 13:58:32 +0200] rev 2324
merge back with stable
Wed, 03 May 2017 13:58:06 +0200 Added tag 6.1.0 for changeset 8510d3fd7c3b stable
Pierre-Yves David <pierre-yves.david@octobus.net> [Wed, 03 May 2017 13:58:06 +0200] rev 2323
Added tag 6.1.0 for changeset 8510d3fd7c3b
Wed, 03 May 2017 13:57:55 +0200 packaging: prepare version 6.1.0 stable 6.1.0
Pierre-Yves David <pierre-yves.david@octobus.net> [Wed, 03 May 2017 13:57:55 +0200] rev 2322
packaging: prepare version 6.1.0
Wed, 03 May 2017 13:54:12 +0200 meta: update tested version to 4.1.2 stable
Pierre-Yves David <pierre-yves.david@octobus.net> [Wed, 03 May 2017 13:54:12 +0200] rev 2321
meta: update tested version to 4.1.2 We tested against the latest 4.1 too.
Wed, 03 May 2017 13:52:19 +0200 merge with future 6.1.0 mercurial-3.8
Pierre-Yves David <pierre-yves.david@octobus.net> [Wed, 03 May 2017 13:52:19 +0200] rev 2320
merge with future 6.1.0 No extra adjustment needed from hg-3.9 result
Wed, 03 May 2017 13:23:36 +0200 merge with future 6.1.0 mercurial-3.9
Pierre-Yves David <pierre-yves.david@ens-lyon.org> [Wed, 03 May 2017 13:23:36 +0200] rev 2319
merge with future 6.1.0 No extra adjustment needed from hg-4.0 result
Wed, 03 May 2017 13:18:08 +0200 merge with future 6.1.0 mercurial-4.0
Pierre-Yves David <pierre-yves.david@ens-lyon.org> [Wed, 03 May 2017 13:18:08 +0200] rev 2318
merge with future 6.1.0 In addition to the output reverted for 4.1, we also drop the "troubles:" entry from the standard log.
Wed, 03 May 2017 13:12:39 +0200 merge with future 6.1.0 mercurial-4.1
Pierre-Yves David <pierre-yves.david@ens-lyon.org> [Wed, 03 May 2017 13:12:39 +0200] rev 2317
merge with future 6.1.0 test pass fine except for the removal of the extra data when accessing hidden revision. The better message are 4.2+ only.
Wed, 03 May 2017 13:27:26 +0200 compat: drop the context manager used to write the cache file stable
Pierre-Yves David <pierre-yves.david@ens-lyon.org> [Wed, 03 May 2017 13:27:26 +0200] rev 2316
compat: drop the context manager used to write the cache file Mercurial 3.8 does not supports context manager on atomic temporary file.
Wed, 03 May 2017 12:54:11 +0200 compat: make obscache code compatible with Mercurial version prior to 4.2 stable
Pierre-Yves David <pierre-yves.david@ens-lyon.org> [Wed, 03 May 2017 12:54:11 +0200] rev 2315
compat: make obscache code compatible with Mercurial version prior to 4.2 the phasecache.getrevset method is new in 4.2.
Wed, 03 May 2017 12:41:54 +0200 evolve: record testing with 4.2 stable
Pierre-Yves David <pierre-yves.david@ens-lyon.org> [Wed, 03 May 2017 12:41:54 +0200] rev 2314
evolve: record testing with 4.2 4.2 is now a things and tests pass fine.
Wed, 03 May 2017 12:31:40 +0200 merge with default for 6.1.0 stable
Pierre-Yves David <pierre-yves.david@ens-lyon.org> [Wed, 03 May 2017 12:31:40 +0200] rev 2313
merge with default for 6.1.0
Wed, 03 May 2017 12:31:11 +0200 packaging first step toward 6.1.0
Pierre-Yves David <pierre-yves.david@ens-lyon.org> [Wed, 03 May 2017 12:31:11 +0200] rev 2312
packaging first step toward 6.1.0
Wed, 03 May 2017 12:25:53 +0200 auto-push: move config help in the extension help
Pierre-Yves David <pierre-yves.david@ens-lyon.org> [Wed, 03 May 2017 12:25:53 +0200] rev 2311
auto-push: move config help in the extension help That is a better spot than the extension itself.
Mon, 01 May 2017 06:17:44 +0200 opening mercurial 4.1 compat branch mercurial-4.1
Pierre-Yves David <pierre-yves.david@ens-lyon.org> [Mon, 01 May 2017 06:17:44 +0200] rev 2310
opening mercurial 4.1 compat branch This branch will receive test update implied by the 4.2 → 4.1 changes.
Tue, 02 May 2017 17:43:34 +0200 obscache: skip writing to disk if the data did not changed
Pierre-Yves David <pierre-yves.david@ens-lyon.org> [Tue, 02 May 2017 17:43:34 +0200] rev 2309
obscache: skip writing to disk if the data did not changed This will avoid rewriting the cache for every single transaction.
Tue, 02 May 2017 16:19:05 +0200 obscache: skip writing if the cache is empty
Pierre-Yves David <pierre-yves.david@ens-lyon.org> [Tue, 02 May 2017 16:19:05 +0200] rev 2308
obscache: skip writing if the cache is empty if the cache is empty, we can just skip writing to disk.
Tue, 02 May 2017 16:17:03 +0200 obscache: set a valid "empty" cache key if the cache is missing
Pierre-Yves David <pierre-yves.david@ens-lyon.org> [Tue, 02 May 2017 16:17:03 +0200] rev 2307
obscache: set a valid "empty" cache key if the cache is missing This avoid detecting bad cache when it just happens to be no cache.
Tue, 02 May 2017 16:10:14 +0200 obscache: have the obsstore fix empty file cachekey
Pierre-Yves David <pierre-yves.david@ens-lyon.org> [Tue, 02 May 2017 16:10:14 +0200] rev 2306
obscache: have the obsstore fix empty file cachekey Before this change, the missing file and empty file returned different value.
Tue, 02 May 2017 17:44:12 +0200 obscache: log case where the cache is not up to date
Pierre-Yves David <pierre-yves.david@ens-lyon.org> [Tue, 02 May 2017 17:44:12 +0200] rev 2305
obscache: log case where the cache is not up to date This will help track performance issue
Tue, 02 May 2017 16:13:04 +0200 obscache: still update and use the cache during transaction
Pierre-Yves David <pierre-yves.david@ens-lyon.org> [Tue, 02 May 2017 16:13:04 +0200] rev 2304
obscache: still update and use the cache during transaction Other code might access the obsolete set in the middle of a transaction. It is better to use the case in that case since the update will eventually be written when the transaction is committed.
Tue, 02 May 2017 16:15:01 +0200 obscache: warm the cache in all cases
Pierre-Yves David <pierre-yves.david@ens-lyon.org> [Tue, 02 May 2017 16:15:01 +0200] rev 2303
obscache: warm the cache in all cases There are case when the obsstore have been invalidated, but we still need to update the cache.
Tue, 02 May 2017 16:11:43 +0200 obscache: update the format to allow negative tiprev
Pierre-Yves David <pierre-yves.david@ens-lyon.org> [Tue, 02 May 2017 16:11:43 +0200] rev 2302
obscache: update the format to allow negative tiprev If the changelog is empty (but the obsstore is not) the 'tiprev' will be -1.
Tue, 02 May 2017 16:09:03 +0200 obscache: load the disk data before checking is the cache is up to date
Pierre-Yves David <pierre-yves.david@ens-lyon.org> [Tue, 02 May 2017 16:09:03 +0200] rev 2301
obscache: load the disk data before checking is the cache is up to date This is actually required since non-loaded cache will never be up to date...
Tue, 02 May 2017 02:13:33 +0200 obscache: skip the cache entirely if not up to date
Pierre-Yves David <pierre-yves.david@ens-lyon.org> [Tue, 02 May 2017 02:13:33 +0200] rev 2300
obscache: skip the cache entirely if not up to date The current update code has some race condition windows around updating. But we also ensure the cache are up to date with every transaction. So outdated cache mean another client have been mudding the repository but things will get back in place at the next transaction. So we just skip using the cache when not up to date. This is not the best we could do. But this is good enough for now.
Mon, 01 May 2017 15:49:36 +0200 readme: mention that some improvement are enabled for 4.2 only
Pierre-Yves David <pierre-yves.david@ens-lyon.org> [Mon, 01 May 2017 15:49:36 +0200] rev 2299
readme: mention that some improvement are enabled for 4.2 only
Mon, 01 May 2017 08:12:26 +0200 perf: use the cache to compute the obsolete set.
Pierre-Yves David <pierre-yves.david@ens-lyon.org> [Mon, 01 May 2017 08:12:26 +0200] rev 2298
perf: use the cache to compute the obsolete set. The official "obsolete" computation is switch to using the cache. This provide noticable speed for operation that does not need to actually access the obs markers. The part relating to obsolete changeset computation disappear from the execution profile when it is used.
Mon, 01 May 2017 08:14:00 +0200 perf: warm the cache after all transactions
Pierre-Yves David <pierre-yves.david@ens-lyon.org> [Mon, 01 May 2017 08:14:00 +0200] rev 2297
perf: warm the cache after all transactions This is the simplest way to ensure the data are up to date.
Mon, 01 May 2017 08:13:24 +0200 perf: adds a cache to know if obsmarkers might affect a revision
Pierre-Yves David <pierre-yves.david@ens-lyon.org> [Mon, 01 May 2017 08:13:24 +0200] rev 2296
perf: adds a cache to know if obsmarkers might affect a revision Phase information still needs to be thrown in the mix to compute the final information, but skipping reading the obsstore for most operation is a large win. Usage of this cache arrives in the next changeset.
(0) -1000 -128 +128 +1000 tip