Pulkit Goyal <7895pulkit@gmail.com> [Thu, 18 Jan 2018 16:57:19 +0530] rev 3460
evolve: remove not required calls to phases.retractboundary()
To make sure phases are preserved during evolve, we started using the
phases.new-commit config option. Now we don't need to call
phases.retractboundary(). Let's remove the redundant code.
Pulkit Goyal <7895pulkit@gmail.com> [Tue, 16 Jan 2018 17:14:32 +0530] rev 3459
evolve: store the replacements occurred during `hg evolve` at top level
This patch starts storing the replacements made during the `hg evolve` command.
The current dictionary is not used anywhere but will be used in future as we
want to introduce abort functionality, so we want to delay writing of
obsmarkers, storing these exchanges in statefile etc.
Pulkit Goyal <7895pulkit@gmail.com> [Sat, 27 Jan 2018 16:13:19 +0530] rev 3458
evolve: make the _solve* functions return a tuple
This patch makes _solve* functions return a tuple which will contain information
about whether we were able to solve the instability and if yes, then what was
the newnode. For more details about tuple, look the fn docs added.
There was some refactoring required in next command because of change in return
values. This also leds to omitting the wdir update message in case of dry-run
which is good.
Pulkit Goyal <7895pulkit@gmail.com> [Wed, 17 Jan 2018 19:12:32 +0530] rev 3457
evolvestate: rename the file to state.py and class name to cmdstate
The evolvestate.py and the evolvestate class in it were introduced to help `hg
evolve` grow continue and abort options. But the class and it's API can be
easily used to store state information for other state files like we stored the
information for grab state in the previous commit. Let's rename the the file and
class.
Pierre-Yves David <pierre-yves.david@octobus.net> [Fri, 26 Jan 2018 17:55:16 +0100] rev 3456
branching: merge with stable
Martin von Zweigbergk <martinvonz@google.com> [Wed, 24 Jan 2018 09:55:12 -0800] rev 3455
update: show "use 'hg evolve' to..." hint iff evolve command enabled
Before this patch, one had to enable *all* commands (by including
"allnewcommands" in the experimental.evolution config) for the hint to
be shown.
Martin von Zweigbergk <martinvonz@google.com> [Thu, 25 Jan 2018 17:29:21 -0800] rev 3454
obslog: drop period from summary line in accordance with convention
Pulkit Goyal <7895pulkit@gmail.com> [Thu, 11 Jan 2018 20:03:20 +0530] rev 3453
grab: add a command to grab a commit and update to it
This patch adds anew command `hg grab` which will pick a commit and put it on
the top of the working directory parent and updates to it.
Earlier grab was an alias for `hg rebase -r <rev> -d .` which is now deleted to
make sure `hg grab` resolves to the grab command and that alias.
Continuing interrupted grab functionality is also there using the evolvestate
class.
Tests are also added for the new introduced command.
Pulkit Goyal <7895pulkit@gmail.com> [Mon, 22 Jan 2018 14:10:59 +0530] rev 3452
amend: query the wdir parent after taking lock (issue5266)
If we query wdir parent without taking a lock, that can lead to bugs because the
wdir parent can change is another process has changed the wdir parent.
One such example of this was issue 5266. When a user is running amend and that
amend is waiting for commit message, the user runs another amend which waits for
lock. The second amend is waiting for lock, but has already read the description
from the parent of working directory to use. Once the first amend completes the
wdir parent changes but we still have the description from an old wdir parent.
This patch fixes the bug by querying the description after taking lock.
Attempts were made to add test for this but the results were unstable because
they depend on time in which lock is released.
Pulkit Goyal <7895pulkit@gmail.com> [Mon, 22 Jan 2018 13:44:32 +0530] rev 3451
fold: make sure we move bookmarks after folding (issue5772)
The rewriteutil.rewrite() API currently only handles moving bookmark from a old
node to new node. In case on fold, we have multiple old nodes, from where a
bookmark move is possible. The rewriteutil.rewrite() API is used by another
commands also and it's not good to plug in some logic there. This patch handles
bookmark movement from all the old nodes to the new node.
Pulkit Goyal <7895pulkit@gmail.com> [Mon, 22 Jan 2018 13:33:58 +0530] rev 3450
tests: add a test showing bookmark not moving in-case of `hg fold`
This patch adds a test showing that bookmark is not moved when doing `hg fold`.
This test represents issue 5772.
Pierre-Yves David <pierre-yves.david@octobus.net> [Wed, 24 Jan 2018 15:20:29 +0100] rev 3449
branching: merge stable back into default
Pierre-Yves David <pierre-yves.david@octobus.net> [Wed, 24 Jan 2018 15:19:17 +0100] rev 3448
test: update test output ot reply caps size change
CORE-TEST-OUTPUT-UPDATE: 2e703ed1c713
Pierre-Yves David <pierre-yves.david@octobus.net> [Wed, 24 Jan 2018 15:11:20 +0100] rev 3447
branching: merge default test output into stable
Mercurial 4.5 has been merged, we update the expected test output.
Pierre-Yves David <pierre-yves.david@octobus.net> [Wed, 24 Jan 2018 15:08:09 +0100] rev 3446
branching: open Mercurial 4.4 compatibility branch
Pierre-Yves David <pierre-yves.david@octobus.net> [Sat, 20 Jan 2018 12:55:23 +0100] rev 3445
branching: merge release 7.2.1 into default
Pierre-Yves David <pierre-yves.david@octobus.net> [Sat, 20 Jan 2018 12:48:26 +0100] rev 3444
packaging: mark source as development version
This help avoiding consusion
Pierre-Yves David <pierre-yves.david@octobus.net> [Sat, 20 Jan 2018 12:53:25 +0100] rev 3443
Added tag 7.2.1 for changeset 6c772398eb4e
Pierre-Yves David <pierre-yves.david@octobus.net> [Sat, 20 Jan 2018 12:38:11 +0100] rev 3442
test-compat: merge mercurial-4.2 into mercurial-4.1
Pierre-Yves David <pierre-yves.david@octobus.net> [Sat, 20 Jan 2018 12:38:10 +0100] rev 3441
test-compat: merge mercurial-4.3 into mercurial-4.2
Pierre-Yves David <pierre-yves.david@octobus.net> [Sat, 20 Jan 2018 12:38:09 +0100] rev 3440
test-compat: merge stable into mercurial-4.3
Pierre-Yves David <pierre-yves.david@octobus.net> [Sat, 20 Jan 2018 12:28:32 +0100] rev 3439
packaging: prepare version 7.2.1
Pierre-Yves David <pierre-yves.david@octobus.net> [Sat, 20 Jan 2018 12:44:02 +0100] rev 3438
branching: merge with tutorial output update
Pierre-Yves David <pierre-yves.david@octobus.net> [Sat, 20 Jan 2018 12:28:53 +0100] rev 3437
test-compat: merge mercurial-4.2 into mercurial-4.1
Pierre-Yves David <pierre-yves.david@octobus.net> [Sat, 20 Jan 2018 12:28:52 +0100] rev 3436
test-compat: merge mercurial-4.3 into mercurial-4.2
Pierre-Yves David <pierre-yves.david@octobus.net> [Sat, 20 Jan 2018 12:28:40 +0100] rev 3435
test-compat: merge stable into mercurial-4.3
Boris Feld <boris.feld@octobus.net> [Sat, 20 Jan 2018 12:26:39 +0100] rev 3434
tutorial: docgraph output seems to have been dedented
Update the outputs following latest version of docgrpah and its dependencies.
Pierre-Yves David <pierre-yves.david@octobus.net> [Sat, 20 Jan 2018 12:17:06 +0100] rev 3433
test: update output for more verbose blackbox
CORE-TEST-OUTPUT-UPDATE: 853bf7d90804
Pierre-Yves David <pierre-yves.david@octobus.net> [Sat, 20 Jan 2018 11:59:36 +0100] rev 3432
test: update with new 'update' hint about obsfate
CORE-TEST-OUTPUT-UPDATE: 35a0f6f31eef
Martin von Zweigbergk <martinvonz@google.com> [Sat, 13 Jan 2018 14:35:49 -0800] rev 3431
evolve: update output for wider reporting of troubled changesets
CORE-TEST-OUTPUT-UPDATE: 1a09dad8b85a
Boris Feld <boris.feld@octobus.net> [Fri, 19 Jan 2018 19:18:05 +0100] rev 3430
test: update output for new `merge --abort` message
Core have updated its command to cancel a failed merge, update the test output
to match it.
CORE-TEST-OUTPUT-UPDATE: 41ef02ba329b
Pierre-Yves David <pierre-yves.david@octobus.net> [Sat, 20 Jan 2018 11:13:21 +0100] rev 3429
branching: merge with stable
Pierre-Yves David <pierre-yves.david@octobus.net> [Sat, 20 Jan 2018 11:11:48 +0100] rev 3428
changelog: mention 4.5 compatibility
Martin von Zweigbergk <martinvonz@google.com> [Sat, 20 Jan 2018 11:07:18 +0100] rev 3427
trouble-reports: yield to in code reporting of new troubles
Mercurial 4.5 has the feature in core, let core do the reporting in this case.
Pierre-Yves David <pierre-yves.david@octobus.net> [Fri, 19 Jan 2018 20:41:58 +0100] rev 3426
caches: fix automatic warming trigger
The caches were supposed to get warmed when we receive a push. However the
transaction created when we -issue- a push use a similar name and was confusing
the detection.
We now properly detect the case.
Pierre-Yves David <pierre-yves.david@octobus.net> [Sat, 20 Jan 2018 11:02:44 +0100] rev 3425
changelog: mention the packaging bugfix
Pierre-Yves David <pierre-yves.david@octobus.net> [Wed, 17 Jan 2018 20:16:26 +0100] rev 3424
packaging: properly install the evolve.thirdparty module
It is properly added to the Manifest.in but that is not enough. We need to find
another tool capable of catching things.
Pierre-Yves David <pierre-yves.david@octobus.net> [Tue, 16 Jan 2018 04:53:09 +0100] rev 3423
branching: merge release tags into default
Pierre-Yves David <pierre-yves.david@octobus.net> [Tue, 16 Jan 2018 04:50:38 +0100] rev 3422
packaging: mark source as development version
This help avoiding consusion
Pierre-Yves David <pierre-yves.david@octobus.net> [Tue, 16 Jan 2018 04:48:57 +0100] rev 3421
Added tag 7.2.0 for changeset bf6b859807ba
Pierre-Yves David <pierre-yves.david@octobus.net> [Tue, 16 Jan 2018 04:41:48 +0100] rev 3420
test-compat: merge mercurial-4.2 into mercurial-4.1
Pierre-Yves David <pierre-yves.david@octobus.net> [Tue, 16 Jan 2018 04:38:04 +0100] rev 3419
test-compat: merge mercurial-4.3 into mercurial-4.2
Pierre-Yves David <pierre-yves.david@octobus.net> [Tue, 16 Jan 2018 04:35:34 +0100] rev 3418
test-compat: merge stable into mercurial-4.3
Pierre-Yves David <pierre-yves.david@octobus.net> [Tue, 16 Jan 2018 04:32:43 +0100] rev 3417
branching: merge stable back into default
The test change has to be reverted.
Pierre-Yves David <pierre-yves.david@octobus.net> [Tue, 16 Jan 2018 03:35:24 +0100] rev 3416
branching: merge further compat change into stable
Pierre-Yves David <pierre-yves.david@octobus.net> [Tue, 16 Jan 2018 02:23:35 +0100] rev 3415
branching: merge further compat change into stable
Pierre-Yves David <pierre-yves.david@octobus.net> [Tue, 16 Jan 2018 01:18:05 +0100] rev 3414
branching: merge more compatibility fix into stable
Pierre-Yves David <pierre-yves.david@octobus.net> [Mon, 15 Jan 2018 21:47:40 +0100] rev 3413
packaging: merge 7.2.0 into stable
Pierre-Yves David <pierre-yves.david@octobus.net> [Mon, 15 Jan 2018 20:45:13 +0100] rev 3412
tests: update test output to match 4.4
The stable branch is sitll 4.4.
Pierre-Yves David <pierre-yves.david@octobus.net> [Mon, 15 Jan 2018 19:52:00 +0100] rev 3411
branching: backed out test output changes from core-1905aac253f0
This backs out evolve-ae6fddf39933
Pierre-Yves David <pierre-yves.david@octobus.net> [Mon, 15 Jan 2018 19:42:44 +0100] rev 3410
branching: backed out test output changes from core-02fdb8c018aa
This backs out evolve-1905aac253f0.
Pierre-Yves David <pierre-yves.david@octobus.net> [Tue, 16 Jan 2018 03:34:31 +0100] rev 3409
compat: fix argument check for marker reading
The previous check was broken for 4.2
Pierre-Yves David <pierre-yves.david@octobus.net> [Tue, 16 Jan 2018 02:21:44 +0100] rev 3408
cachevfs: use a compatibility later for all access
Pierre-Yves David <pierre-yves.david@octobus.net> [Tue, 16 Jan 2018 01:11:47 +0100] rev 3407
diff: drop default argument value
This argument use the default value for an argument not available in earlier
version. So we just stop passing the argument.
Pierre-Yves David <pierre-yves.david@octobus.net> [Tue, 16 Jan 2018 00:58:02 +0100] rev 3406
test: use hash in test-evolve-topic.t
This helps testing compat with older version.
Pierre-Yves David <pierre-yves.david@octobus.net> [Mon, 15 Jan 2018 21:45:46 +0100] rev 3405
packaging: prepare version 7.2.0
Pierre-Yves David <pierre-yves.david@octobus.net> [Mon, 15 Jan 2018 21:44:22 +0100] rev 3404
changelog: prepare for coming release
Pierre-Yves David <pierre-yves.david@octobus.net> [Mon, 15 Jan 2018 20:51:22 +0100] rev 3403
stablerange: add missing licence and copyright header
Pulkit Goyal <7895pulkit@gmail.com> [Thu, 11 Jan 2018 18:07:09 +0530] rev 3402
obshistory: pass the csets description in getmarkerdescriptionpatch
Previous patches removed any use of ctx in the function and we now just need the
cset description in the function. Let's pass that only. This will save couple
of calls of repo[node].
Pulkit Goyal <7895pulkit@gmail.com> [Thu, 11 Jan 2018 17:54:34 +0530] rev 3401
obshistory: remove the unused function
The function is not used anymore.
Pulkit Goyal <7895pulkit@gmail.com> [Thu, 11 Jan 2018 17:11:10 +0530] rev 3400
obslog: add header to the changeset description diff
This patch adds `diff -r <hash> -r <hash> <filename>` header to the output of
the changeset description diff which is shown using the --patch flag of obslog
command.
This fixes the label/color issue for description diff also.
Pulkit Goyal <7895pulkit@gmail.com> [Thu, 11 Jan 2018 16:30:46 +0530] rev 3399
obslog: colorize the description diff shown in obslog -p
This patch colorizes the description diff shown in `hg obslog -p`. The labels
for the header are different from that of the patch as the main header which
says `diff -r <somehash> -r <somehash> <filename>`. Next patch will hack to add
that.
Pulkit Goyal <7895pulkit@gmail.com> [Wed, 10 Jan 2018 19:47:43 +0530] rev 3398
obslog: colorize the patch shown using `hg obslog -p`
This patch adds color support to the patch shown in obslog command.
Pulkit Goyal <7895pulkit@gmail.com> [Wed, 27 Dec 2017 04:09:50 +0530] rev 3397
topic: suggest using topic when user creates a new head on branch
This patch adds a message to use topics when user creates a new head on a
branch.
Pierre-Yves David <pierre-yves.david@octobus.net> [Mon, 15 Jan 2018 18:41:29 +0100] rev 3396
changelog: update changelog with some of the benefit from the new format
Pulkit Goyal <7895pulkit@gmail.com> [Thu, 11 Jan 2018 18:36:05 +0530] rev 3395
evolve: use better words in conflict markers of `hg evolve`
Though we call merge.graft internally, we still have the functionality to pass
the words we want to show up in conflict markers. So let's use better words
here.
Pulkit Goyal <7895pulkit@gmail.com> [Thu, 11 Jan 2018 18:38:09 +0530] rev 3394
tests: add a test demonstrating we still use graft in conflict markers
This patch adds a test which shows that we still use the word graft in the
conflict markers. Next patch will start using evolve instead of graft.
Pulkit Goyal <7895pulkit@gmail.com> [Wed, 10 Jan 2018 15:59:35 +0530] rev 3393
evolve: remove the old functions for writing evolvestate
Previous patch made all the users of these functions to use the evolvestate
class and now they are not required. Let's remove them.
Pulkit Goyal <7895pulkit@gmail.com> [Wed, 10 Jan 2018 15:57:43 +0530] rev 3392
evolve: use the new evolvestate class in place of old methods
Earlier we had three methods, which used to handle all the storage around the
evolvestate but in previous patch we have introduced an evolvestate class
wrapper which can serve for all our needs. This patch replaces the existing
usage of the evolvestate with the new class introduced.
Upcoming patches will start using the class at more places.
Pulkit Goyal <7895pulkit@gmail.com> [Wed, 10 Jan 2018 14:53:01 +0530] rev 3391
evolvestate: add a class to wrap the state of `hg evolve` command
This patch adds a new file which contains a class which will act as a wrapper
for the data to be stored or used during the `hg evolve` command. This patch
just introduces the file and does not use it at the moment. The upcoming patches
will start using it.
Pulkit Goyal <7895pulkit@gmail.com> [Fri, 12 Jan 2018 19:23:29 +0530] rev 3390
evolve: start vendoring third party package cbor
This patch adds a third party package named cbor. cbor is a data serialization
format and this library provides API to convert Python Objects into cbor
formatted data. To know more about cbor, hop onto cbor.io
The files are copied from it's official bitbucket repository which is at
https://bitbucket.org/bodhisnarkva/cbor/src/113f42203c941470c98f7174065ba9b384cff727/
cbor.py can be found at
https://bitbucket.org/bodhisnarkva/cbor/src/113f42203c941470c98f7174065ba9b384cff727/py/cbor/cbor.py
# no-check-commit as we are importing a third party package
Modified test-check-flake8.t to not lint on thirdparty packages.
Pulkit Goyal <7895pulkit@gmail.com> [Tue, 09 Jan 2018 20:01:50 +0530] rev 3389
uncommit: add a new flag `--revert` to discard wdir changes after uncommit
This patch adds a new flag to `hg uncommit` using which one can discard the wdir
changes which are left after the operation. Both the changes, the ones which
were before the uncommit and the ones which were added to wdir as a result of
uncommit as cleared out.
Pulkit Goyal <7895pulkit@gmail.com> [Tue, 09 Jan 2018 15:39:47 +0530] rev 3388
evolve: use phases.new-commit config to retain phase information (issue5720)
Since the previous patches replaced the use of graftstate with evolvestate and
we don't graft anymore on evolve --continue, we have now the capability to fix
underlying bugs. This patch makes sure we use the phases.new-commit config to
make a new commit of the same phase as that of the predecessor.
Tests added in the previous patch shows the bug being fixed.
Pulkit Goyal <7895pulkit@gmail.com> [Tue, 09 Jan 2018 15:33:57 +0530] rev 3387
tests: add a test demonstarting lose of phase in `hg evolve`
This patch adds a new test file which demonstrates the lose of phase information
when hg evolve command runs into conflict. This is algo bug5720. The upcoming
patch will fix it.
A new test file is added as existing test files serve their own purpose and are
already cluttered.
Pulkit Goyal <7895pulkit@gmail.com> [Sat, 06 Jan 2018 19:07:43 +0530] rev 3386
evolve: add a utility fn to check validity of opts passed to `hg evolve`
Pulkit Goyal <7895pulkit@gmail.com> [Sat, 06 Jan 2018 18:48:15 +0530] rev 3385
evolve: don't use graftstate for continuing `hg evolve`
Before this patch, if user runs `hg evolve`, we read the evolve state, write a
graftstate from that information and run graft command. This patch replaces that
logic with new logic which does not depends on the graft state.
The new logic is very filtered part of logic from graft command. We did not
require a lot of opts checking and filtering revs logic from the graft command
as our use case is fixed.
This is the start of series/work which will make `hg evolve` better and have
a good statefile for itself.
Pulkit Goyal <7895pulkit@gmail.com> [Tue, 09 Jan 2018 23:42:57 +0530] rev 3384
topics: add a new templatekeyword `topic`
This patch adds a new templatekeyword topic which can be used to list the topic
of the changeset when using commands which supports templating.
Boris Feld <boris.feld@octobus.net> [Wed, 10 Jan 2018 10:54:02 +0000] rev 3383
packaging: update MANIFEST.in to include new tutorial files
I forget to update the MANIFEST.in file when important the new tutorial files.
This commit fix that.
Pierre-Yves David <pierre-yves.david@octobus.net> [Sat, 16 Dec 2017 23:40:42 +0100] rev 3382
test-compat: merge mercurial-4.2 into mercurial-4.1
Pierre-Yves David <pierre-yves.david@octobus.net> [Sat, 16 Dec 2017 23:40:40 +0100] rev 3381
test-compat: merge mercurial-4.3 into mercurial-4.2
Pierre-Yves David <pierre-yves.david@octobus.net> [Sat, 16 Dec 2017 23:40:39 +0100] rev 3380
test-compat: merge stable into mercurial-4.3
Boris Feld <boris.feld@octobus.net> [Wed, 25 Oct 2017 11:27:04 +0200] rev 3379
test: add a test to reproduce issue 5720
Boris Feld <boris.feld@octobus.net> [Tue, 04 Jul 2017 14:55:50 +0200] rev 3378
test: add missing cycle test
Also fix precursors to break on obs markers cycles.
Boris Feld <boris.feld@octobus.net> [Mon, 08 Jan 2018 17:38:58 +0100] rev 3377
Small typos fixing in the topic tutorial
Boris Feld <boris.feld@octobus.net> [Mon, 08 Jan 2018 11:46:53 +0100] rev 3376
doc: import the training support
Import the training support which was stored in a private-repository before.
Pierre-Yves David <pierre-yves.david@octobus.net> [Fri, 05 Jan 2018 23:20:30 +0100] rev 3375
branching: merge with stable
Pulkit Goyal <7895pulkit@gmail.com> [Fri, 05 Jan 2018 17:15:43 +0530] rev 3374
evolve: use new trouble names in commit messages
There is case when we add trouble to the commit message while using `hg evolve`.
This match makes sure, we use the new trouble names. The hash changed because it
depends on commit messages.
Pulkit Goyal <7895pulkit@gmail.com> [Sat, 09 Dec 2017 08:19:07 +0530] rev 3373
evolve: use compat.TROUBLES to show troubles in user interface
compat.TROUBLES is a dict which contains the trouble name for each trouble
according to the hg version user is using.
All of the replacements are related to `hg evolve` command.
Pulkit Goyal <7895pulkit@gmail.com> [Thu, 28 Dec 2017 04:09:02 +0530] rev 3372
topics: list only topic names in quiet mode
This will be helpful in bash completion.
Pulkit Goyal <7895pulkit@gmail.com> [Wed, 27 Dec 2017 23:51:18 +0530] rev 3371
topics: take logic to parse username to a separate function
In next patch we will be adding support to `hg stack` to show users, and this
logic will be required there too. So let's take it out in a separate function.
Pierre-Yves David <pierre-yves.david@octobus.net> [Fri, 05 Jan 2018 22:50:21 +0100] rev 3370
changelog: fix a typo in the changelog
There is probably many others but that one is fixed now.
Pierre-Yves David <pierre-yves.david@octobus.net> [Fri, 05 Jan 2018 04:37:19 +0100] rev 3369
caches: switch to 'auto' warming by default
This options seems good let us make it the default.
Pierre-Yves David <pierre-yves.david@octobus.net> [Fri, 05 Jan 2018 04:26:59 +0100] rev 3368
caches: add a 'auto' option for obshashrange cache warming
This option will only warm the cache when used as a server.
Pierre-Yves David <pierre-yves.david@octobus.net> [Fri, 05 Jan 2018 04:26:51 +0100] rev 3367
caches: extract some config reading in 'shouldwarmcache'
Pierre-Yves David <pierre-yves.david@octobus.net> [Fri, 05 Jan 2018 03:35:07 +0100] rev 3366
caches: pass the transaction to the "shouldwarncache" logic
This will allow to have smarter mode about cache warming (eg: only warm them for
server transaction.
Pierre-Yves David <pierre-yves.david@octobus.net> [Fri, 05 Jan 2018 22:17:27 +0100] rev 3365
caches: record 'desc' attribute on transaction
This is useful to know if a transaction if server side or not.
Pierre-Yves David <pierre-yves.david@octobus.net> [Fri, 05 Jan 2018 04:37:49 +0100] rev 3364
caches: protect against missing connection
If the connection cannot be established, we should not try to use it.
Pulkit Goyal <7895pulkit@gmail.com> [Wed, 27 Dec 2017 05:01:30 +0530] rev 3363
evolve: don't show working directory obsolete message if we were on it
This patch tweaks showing wc obsolete message functionality to not show the
message if the operation led us to the same changeset we were on before and it
didn't obsoleted it. This make failed updates, update on current changeset and a
pull with no change omit showing the message.
This has some cons like if you are on rev 1 which is obsolete and you do `hg up
<revset>` where revset is some revset which resolves to the rev 1, we won't show
the warning as shown earlier.
Pulkit Goyal <7895pulkit@gmail.com> [Thu, 28 Dec 2017 03:12:54 +0530] rev 3362
prev: jump to parent's successor if parent is obsolete and topic is involved
`hg stack` shows a linear chain of commits even when they are not linear chain
and some changesets are obsoleted and have successors as separate head. This is
very nice to have a post evolution view of the stack. However when `hg prev` is
run on an unstable changeset whose parent is obsolete and does not topic but
parents successor has the topic, it shows no parent on the topic.
This patch makes `hg prev` update to parent's successor and make things follow
the stack order.
Pulkit Goyal <7895pulkit@gmail.com> [Thu, 28 Dec 2017 03:08:22 +0530] rev 3361
tests: add a test showing wrong behaviour doing `hg prev` on orphan cset
If there is an unstable changeset in the topic stack, whose parent is not a
part of stack but has a successor which is part of stack, hg stack does shows
them in linear order, but `hg prev` on that orphan changset says no parent on
that topic. However it should update to the successor of the changeset.
It will be fixed in the next patch.
Boris Feld <boris.feld@octobus.net> [Fri, 05 Jan 2018 09:51:07 +0100] rev 3360
test: update output to 02fdb8c018aa
Now that we have directaccess in core, we get a new warning message when
updating to a hidden changeset. Update the tests.
CORE-TEST-OUTPUT-UPDATE: 02fdb8c018aa
Boris Feld <boris.feld@octobus.net> [Fri, 05 Jan 2018 09:23:09 +0100] rev 3359
test: update output to 9b3f95d9783d
The unstable graph nodes are now shown with the character "*", update the test
outputs.
CORE-TEST-OUTPUT-UPDATE: 9b3f95d9783d
Pierre-Yves David <pierre-yves.david@octobus.net> [Thu, 21 Dec 2017 06:12:02 +0100] rev 3358
stablesort: use parent filtering in a place we forgot to
Freak merge striked again.
Pierre-Yves David <pierre-yves.david@octobus.net> [Thu, 21 Dec 2017 06:18:50 +0100] rev 3357
obshashrange: add a progressbar to upgrade
This section is the slowest, have some progress idea would be useful.
Pierre-Yves David <pierre-yves.david@octobus.net> [Thu, 21 Dec 2017 04:29:02 +0100] rev 3356
stablerange: add an sql index on subranges id too
This should speed up query that find super ranges.
Pierre-Yves David <pierre-yves.david@octobus.net> [Thu, 21 Dec 2017 04:14:05 +0100] rev 3355
obshashrange: less brutal reset when receiving markers on existing node
We now target the affected ranges only. The implementation is still slow but
that should be better than what we had before.
Pierre-Yves David <pierre-yves.david@octobus.net> [Thu, 21 Dec 2017 04:39:45 +0100] rev 3354
obshashrange: update the cache updating logic
Use the more modern option when available. (Same as the other caches).
Pierre-Yves David <pierre-yves.david@octobus.net> [Thu, 21 Dec 2017 04:24:37 +0100] rev 3353
stablerange: cleanup the update logic
Pierre-Yves David <pierre-yves.david@octobus.net> [Thu, 21 Dec 2017 04:23:45 +0100] rev 3352
stablesort: cleanup the update logic
Pierre-Yves David <pierre-yves.david@octobus.net> [Thu, 21 Dec 2017 04:22:36 +0100] rev 3351
firstmergecache: cleanup the update logic
Pierre-Yves David <pierre-yves.david@octobus.net> [Thu, 21 Dec 2017 04:21:53 +0100] rev 3350
depthcache: cleanup the update logic
Pierre-Yves David <pierre-yves.david@octobus.net> [Thu, 21 Dec 2017 04:12:02 +0100] rev 3349
changelog: add an entry about the obshashrange changes
Pierre-Yves David <pierre-yves.david@octobus.net> [Thu, 21 Dec 2017 04:35:40 +0100] rev 3348
stablerange: be more cautious when deleting the sql connection
This triggered some crash in further development. This also match what is done
elsewhere with this attribute.
Pierre-Yves David <pierre-yves.david@octobus.net> [Thu, 21 Dec 2017 03:42:54 +0100] rev 3347
stablerange: clarify sql transaction logic
This should help concurrent access.
Pierre-Yves David <pierre-yves.david@octobus.net> [Thu, 21 Dec 2017 03:30:13 +0100] rev 3346
stablerange: use mergepoint based algorithm for the official stable range
Changing the official stable range will impact all users of the infrastructure.
We update version number of the cache file and discovery methods to clarify
this.
We do no keep compatibility with the old method over the wire. The new algorithm
is much better and keeping compat is more work than we have time for right now.
Pierre-Yves David <pierre-yves.david@octobus.net> [Thu, 21 Dec 2017 03:07:14 +0100] rev 3345
stablerange: explicitly create a stablerange entry for branchpoint method
We are about to change the default.
Pierre-Yves David <pierre-yves.david@octobus.net> [Mon, 18 Dec 2017 02:17:29 +0100] rev 3344
stablerange: have a mergepoint based sql backed class
Everything is so generic that getting a class is 3 line of codes.
Pierre-Yves David <pierre-yves.david@octobus.net> [Mon, 18 Dec 2017 02:11:34 +0100] rev 3343
stablerange: introduce a sql backed version of the generic on disk cache
This is getting use close to actually using the new sorting and algorithm for
real.
Pierre-Yves David <pierre-yves.david@octobus.net> [Mon, 18 Dec 2017 01:11:01 +0100] rev 3342
stablerange: add a base class for on disk stored stablerange class
Pierre-Yves David <pierre-yves.david@octobus.net> [Thu, 21 Dec 2017 02:13:19 +0100] rev 3341
stablesort: use on disk cache for test
Pierre-Yves David <pierre-yves.david@octobus.net> [Thu, 21 Dec 2017 02:01:58 +0100] rev 3340
caches: factorise the cache warming check
The old conditional was duplicated and hard to read. We factorise everything
into the `utility` module.
Pierre-Yves David <pierre-yves.david@octobus.net> [Thu, 21 Dec 2017 00:06:07 +0100] rev 3339
stablerange: use repo-carried stablesortcache
That one is common to all and disk persisted
Pierre-Yves David <pierre-yves.david@octobus.net> [Thu, 21 Dec 2017 00:34:31 +0100] rev 3338
stablesort: expose the cache through the repository
Let have a unique instance, keep it warm and accessible.
Pierre-Yves David <pierre-yves.david@octobus.net> [Wed, 29 Nov 2017 10:38:52 -0500] rev 3337
stablesort: implement an ondisk cache
Persisting the cache on disk will be important for large repositories.
Pierre-Yves David <pierre-yves.david@octobus.net> [Wed, 20 Dec 2017 23:45:11 +0100] rev 3336
stablesort: realign a misaligned continue
We should make a better use of the jump cache now.
Pierre-Yves David <pierre-yves.david@octobus.net> [Wed, 20 Dec 2017 23:42:28 +0100] rev 3335
stablesort: remove some dead code
This closure is no longer in use.
Pierre-Yves David <pierre-yves.david@octobus.net> [Wed, 20 Dec 2017 23:08:31 +0100] rev 3334
stablesort: abstract all cache access
This prepare an on disk version of the cache
Pierre-Yves David <pierre-yves.david@octobus.net> [Mon, 18 Dec 2017 20:04:50 +0100] rev 3333
stablerange: use first merge cache to skip over linear section
If we are to skip over a large section of the range, skipping everything until
the first merge seems like a good idea.
Pierre-Yves David <pierre-yves.david@octobus.net> [Wed, 20 Dec 2017 20:46:10 +0100] rev 3332
stablerange: add a new 'firstmerge' cache
This cache store the first merge ancestors of a changesets. This is useful to
avoid iteration over the changelog when building stablerange.
Pierre-Yves David <pierre-yves.david@octobus.net> [Wed, 20 Dec 2017 20:17:11 +0100] rev 3331
stablerange: drop unused `until` utility
We no longer needs this function.
Pierre-Yves David <pierre-yves.david@octobus.net> [Wed, 20 Dec 2017 19:47:19 +0100] rev 3330
stablerange: use cached size data instead of walking the graph
Less iteration is better.
Pierre-Yves David <pierre-yves.david@octobus.net> [Wed, 20 Dec 2017 17:56:38 +0100] rev 3329
stablesort: record previous segment size in the jump
That was, we can skip over a full jump without walking it. We'll make use of
this in the next changeset.
Pierre-Yves David <pierre-yves.david@octobus.net> [Wed, 20 Dec 2017 17:59:14 +0100] rev 3328
stablesort: move jump recording inside the exclusive function
This will allow use to record to cache size of segment in a later changeset. If
the exclusive set is empty, we need to record it outside that function.
Pierre-Yves David <pierre-yves.david@octobus.net> [Wed, 20 Dec 2017 17:49:41 +0100] rev 3327
stablerange: compute jump size after jump retrieval only
This prepares the caching of jump sizes.
Pierre-Yves David <pierre-yves.david@octobus.net> [Sun, 10 Dec 2017 03:49:48 +0100] rev 3326
stablesort: warm jump cache more efficiently
We no longer for a full depth iteration for all request:
- we exit early for non-merge,
- for merge, we only iterate over the exclusive area.
Pierre-Yves David <pierre-yves.david@octobus.net> [Sun, 10 Dec 2017 03:39:56 +0100] rev 3325
stablesort: use a regular dict for jumps
This will help knowing what revision we have already queried or not.
Pierre-Yves David <pierre-yves.david@octobus.net> [Wed, 20 Dec 2017 15:51:05 +0100] rev 3324
stablerange: use the jump information for faster iteration
Instead of doing a full iteration over the exclusive set, we compare the jump
information instead. This perform the same kind of logic than before but will
allow for much faster iteration once all the caches are in place.
Pierre-Yves David <pierre-yves.david@octobus.net> [Sun, 10 Dec 2017 02:46:05 +0100] rev 3323
stablesort: expose the jumps sequence to other code
The stable range needs it to build exclusive subrange efficiently.
Pierre-Yves David <pierre-yves.david@octobus.net> [Wed, 20 Dec 2017 16:20:26 +0100] rev 3322
stablesort: use 'depth' in mergepoint tie breaker
The parents with the most depth will is considered lower. It has a couple of
advantages.
1) the more shallow parent probably have less exclusive revision,
2) it makes Oedipus merge behave like close to the linear case,
Pierre-Yves David <pierre-yves.david@octobus.net> [Wed, 20 Dec 2017 13:41:33 +0100] rev 3321
stablesort: rework jump gathering
The old code was buggy in some case, the new code give the same result as the
'headstart' version.
Pierre-Yves David <pierre-yves.david@octobus.net> [Wed, 20 Dec 2017 12:36:45 +0100] rev 3320
stablesort: stop recording jump type
There are no mature user of this "jump type" data and the current implementation
is known to be buggy. So we drop the logic for now. This will make on disk
storage simpler. The data will be reintroduced later
Pierre-Yves David <pierre-yves.david@octobus.net> [Wed, 20 Dec 2017 12:29:02 +0100] rev 3319
stablesort: pass a jump recording function instead of a list
This seems cleaner to abstract the underlying storage to the lower level. This
also makes use more flexible about jump detection.
Pierre-Yves David <pierre-yves.david@octobus.net> [Wed, 20 Dec 2017 12:27:17 +0100] rev 3318
stablesort: minor indent fix
Pierre-Yves David <pierre-yves.david@octobus.net> [Wed, 20 Dec 2017 12:19:59 +0100] rev 3317
stablesort: clarify subcall to the exclusive side
Before doing deeper rework of this logic, we tackle the simplest parts.
Pierre-Yves David <pierre-yves.david@octobus.net> [Wed, 20 Dec 2017 13:18:49 +0100] rev 3316
docgraph: update test output with new output
Pierre-Yves David <pierre-yves.david@octobus.net> [Mon, 18 Dec 2017 09:04:16 +0100] rev 3315
stablesort: record, cache and reuse jump
Iterating below a merge means two things:
1) iterate over the part exclusive to the higher parents,
2) iterate from the lower parents.
While iterating on the exclusive part, there will be case were we just go the
next natural parent, and case were we'll have to "jump" to another revision. If
we record all point this "jump" happens and their target, we can easily
reproduce the iteration in the future. With that information we can iterate over
the exclusive part of the merge without having to compute it entirely.
In addition we store the reason of the jump. This will help the stable range
processing later.
Pierre-Yves David <pierre-yves.david@octobus.net> [Mon, 18 Dec 2017 18:49:34 +0100] rev 3314
stablesort: fix head start computation
The recursion was wrong and provided wrong result.
As a side effect, this seems to hint that `stablesort_mergepoint_bounded` is not
giving the right result for complex set.
Pierre-Yves David <pierre-yves.david@octobus.net> [Mon, 18 Dec 2017 08:36:52 +0100] rev 3313
stablesort: avoid attempting to sort a tuple
This seems silly.
Pierre-Yves David <pierre-yves.david@octobus.net> [Mon, 18 Dec 2017 07:20:14 +0100] rev 3312
stablerange: use the filterparents utility
Pierre-Yves David <pierre-yves.david@octobus.net> [Mon, 18 Dec 2017 07:10:43 +0100] rev 3311
stablesort: use the filtered parents utility
Pierre-Yves David <pierre-yves.david@octobus.net> [Mon, 18 Dec 2017 06:50:57 +0100] rev 3310
depthcache: use parents filter in depth cache
Pierre-Yves David <pierre-yves.david@octobus.net> [Mon, 18 Dec 2017 06:48:49 +0100] rev 3309
parents: add a utility to filter parents
There is various strange case of merge out there that needs to be handled. We
add an utility function to handle them all.
Pierre-Yves David <pierre-yves.david@octobus.net> [Mon, 18 Dec 2017 01:53:20 +0100] rev 3308
stablerange: abstract the bit able to store cache into sql
The part about actually storing the range is independent of the algorithm, so we
should extract this before using it for the next iteration.
Pierre-Yves David <pierre-yves.david@octobus.net> [Mon, 18 Dec 2017 00:40:07 +0100] rev 3307
stablerange: split pure algorithm part from the on disk cache
The stable cache file is getting long, we split the logic about keeping data on
disk into a dedicated file.
Pierre-Yves David <pierre-yves.david@octobus.net> [Sun, 10 Dec 2017 05:17:04 +0100] rev 3306
stablerange: add an assert to detect buggy range
Nothing can be negative in there, we add an assert to make sure it is so.
Pierre-Yves David <pierre-yves.david@octobus.net> [Sun, 10 Dec 2017 04:57:19 +0100] rev 3305
stablerange: warn cache for all relevant ancestors range
Warming cache in the right order will prevent recursion to happens and unlock
usage on large repository.
Pierre-Yves David <pierre-yves.david@octobus.net> [Sun, 10 Dec 2017 04:48:15 +0100] rev 3304
stablesort: move parent range computation into its own method
Now that we have running code, we'll need to avoid too deep recursion. We
extract the piece dealing with the parent range before we write more code to
warm it.
Pierre-Yves David <pierre-yves.david@octobus.net> [Sun, 10 Dec 2017 03:58:22 +0100] rev 3303
stablerange: drop the basic inheritance from the 'mergepoint' version
All necessary bits are implemented now (except for warmup which we explicitly
bypass for now).
Pierre-Yves David <pierre-yves.david@octobus.net> [Sun, 10 Dec 2017 12:12:12 +0100] rev 3302
stablerange: cache known subrange at the stablerangecached level
That way, the 'stablerange_mergepoint' class also benefit from it.
Pierre-Yves David <pierre-yves.david@octobus.net> [Sun, 17 Dec 2017 22:05:34 +0100] rev 3301
stablerange: use sort cache to build 'mergepoint' information
Using the walk cache gives use a better complexity we need to scale. There are
further improvement we could make, but this is a good first step.
Pierre-Yves David <pierre-yves.david@octobus.net> [Sun, 10 Dec 2017 03:31:28 +0100] rev 3300
stablesort: make the iteration from head available to all
This will be useful for the stablerange code to work properly.
Pierre-Yves David <pierre-yves.david@octobus.net> [Sun, 17 Dec 2017 21:17:28 +0100] rev 3299
depth: fix compare mode for `debugdepth`
The compare mode was broken for silly reasons.
Boris Feld <boris.feld@octobus.net> [Fri, 15 Dec 2017 10:14:42 +0100] rev 3298
memfilectx: changectx argument is not mandatory
As changectx argument is now mandatory for memfilectx, add a compatibility
layer to pass it when necessary.
The commit that made the parament mandatory in core is 8a0cac20a1ad
Pierre-Yves David <pierre-yves.david@octobus.net> [Sat, 16 Dec 2017 23:52:32 +0100] rev 3297
branching: merge stable into default
Boris Feld <boris.feld@octobus.net> [Thu, 14 Dec 2017 00:53:55 +0100] rev 3296
amend: fix a typo in amend help text related to the extract option
s/extra/extract/
Pierre-Yves David <pierre-yves.david@octobus.net> [Thu, 14 Dec 2017 13:19:56 +0100] rev 3295
topic: fix compatibility with 4.3
A compatibility fixes ended up being overlooked, we are bringing it back into
the main branch.
Pierre-Yves David <pierre-yves.david@octobus.net> [Tue, 12 Dec 2017 04:18:17 +0100] rev 3294
branching: merge stable back into default
New version has been released, hooray.
Pierre-Yves David <pierre-yves.david@octobus.net> [Tue, 12 Dec 2017 04:16:54 +0100] rev 3293
packaging: mark stable change as bugfix dev version
This help reduce confusion when installing non-tagged changeset.
Pierre-Yves David <pierre-yves.david@octobus.net> [Tue, 12 Dec 2017 04:15:26 +0100] rev 3292
Added tag 7.1.0 for changeset 06a3cb594956
Pierre-Yves David <pierre-yves.david@octobus.net> [Tue, 12 Dec 2017 03:02:25 +0100] rev 3291
packaging: prepare release 7.1.0
Pierre-Yves David <pierre-yves.david@octobus.net> [Tue, 12 Dec 2017 04:08:22 +0100] rev 3290
branching: revert "stable" change into default
The expected output for "default" is still the same.
Pierre-Yves David <pierre-yves.david@octobus.net> [Mon, 11 Dec 2017 18:30:15 +0100] rev 3289
test-compat: merge mercurial-4.2 into mercurial-4.1
Pierre-Yves David <pierre-yves.david@octobus.net> [Mon, 11 Dec 2017 18:30:14 +0100] rev 3288
test-compat: merge mercurial-4.3 into mercurial-4.2
Pierre-Yves David <pierre-yves.david@octobus.net> [Mon, 11 Dec 2017 16:32:03 +0100] rev 3287
test-compat: merge stable into mercurial-4.3
Pierre-Yves David <pierre-yves.david@octobus.net> [Mon, 11 Dec 2017 16:12:38 +0100] rev 3286
test: backed out test change from changeset a18ca224e812
The related mercurial changeset, ad5f2b923b0d, is not in the stable branch yet.
Pierre-Yves David <pierre-yves.david@octobus.net> [Mon, 11 Dec 2017 16:02:42 +0100] rev 3285
test: backed out output change from 85ab7d2d9fd6
Mercurial core default branch does not have the related changeset yet
(a7e49a5b3e6f).
Pierre-Yves David <pierre-yves.david@octobus.net> [Tue, 12 Dec 2017 03:21:46 +0100] rev 3284
branching: merge with stable
Pulkit Goyal <7895pulkit@gmail.com> [Tue, 12 Dec 2017 00:27:08 +0530] rev 3283
obsnote: warn if user try to store a note in obsmarker on an older hg
Support to store a note in obsmarker is from hg>=4.4. We have added notes
support to all the evolve commands but we do support versions which don't
support storing note in obsmarker. Warn if user tries to store a note in older
hg.
Pierre-Yves David <pierre-yves.david@octobus.net> [Tue, 12 Dec 2017 02:16:58 +0100] rev 3282
topic: use 'hookargs' over 'tr.changes' for flow control
The 'tr.changes' attribute do not exists until 4.2.
Pierre-Yves David <pierre-yves.david@octobus.net> [Tue, 12 Dec 2017 01:27:12 +0100] rev 3281
topic: move function wrapping from reposetup to uisetup
Having the function un reposetup means they get wrapped over and over again for
long lived process.
Pierre-Yves David <pierre-yves.david@octobus.net> [Tue, 12 Dec 2017 00:16:55 +0100] rev 3280
test: publish the root of the repo in flow reject-untopiced
The lack of default branch confuses older version
Pierre-Yves David <pierre-yves.david@octobus.net> [Tue, 12 Dec 2017 01:10:44 +0100] rev 3279
genericcaches: handle the lack of util.timer in 4.1
We do the same trick as usual.
Pulkit Goyal <7895pulkit@gmail.com> [Mon, 11 Dec 2017 23:47:25 +0530] rev 3278
topics: fix `hg stack` in case of split
This patch fixes the behaviour of hg stack which throws an error in some cases
when there are multiple successors. The case of divergence is not handled yet.
Pulkit Goyal <7895pulkit@gmail.com> [Mon, 11 Dec 2017 23:33:50 +0530] rev 3277
tests: add a test showing traceback on `hg stack` in case of split
The traceback will be fixed in the next patch.
Pierre-Yves David <pierre-yves.david@octobus.net> [Mon, 11 Dec 2017 15:49:22 +0100] rev 3276
branching: merge stable into default
Pierre-Yves David <pierre-yves.david@octobus.net> [Mon, 11 Dec 2017 09:33:32 +0100] rev 3275
test-compat: merge mercurial-4.2 into mercurial-4.1
Pierre-Yves David <pierre-yves.david@octobus.net> [Mon, 11 Dec 2017 09:33:16 +0100] rev 3274
test-compat: merge mercurial-4.3 into mercurial-4.2
Pierre-Yves David <pierre-yves.david@octobus.net> [Mon, 11 Dec 2017 09:33:04 +0100] rev 3273
test-compat: merge stable into mercurial-4.3
Pierre-Yves David <pierre-yves.david@octobus.net> [Mon, 11 Dec 2017 09:21:47 +0100] rev 3272
changelog: add an entry for the split+branch fix
The world needs to know.
Pierre-Yves David <pierre-yves.david@octobus.net> [Sun, 10 Dec 2017 22:08:54 +0100] rev 3271
branching: merge with stable
Boris Feld <boris.feld@octobus.net> [Sun, 10 Dec 2017 21:44:10 +0100] rev 3270
split: force the branch to fix the split bug
Also restore it after the split
Boris Feld <boris.feld@octobus.net> [Sun, 10 Dec 2017 21:41:56 +0100] rev 3269
split: add a test demonstrating that split doesn't take the right branch
Also add a test to check that the dirstate is in the right state in case the
user abort the split.
Pierre-Yves David <pierre-yves.david@octobus.net> [Sun, 10 Dec 2017 05:04:41 +0100] rev 3268
stablerange: compute the subrange closure on an unfiltered repository
This avoid various overhead from filtering.
Pierre-Yves David <pierre-yves.david@octobus.net> [Sun, 26 Nov 2017 10:34:46 -0500] rev 3267
stablesort: write a flat version of the algorithm
This new version never needs to iterate over the full repository even when merge
are encountered.
Having the algorithm flat also prepare caching works since the iteration
sequence can we expressed with a couple of flat loop.
Pierre-Yves David <pierre-yves.david@octobus.net> [Sat, 25 Nov 2017 18:53:23 -0500] rev 3266
stablesort: simplify processing of non-merge changesets
As long as a changeset as only one parent, the next element in the sort (starting
from the head) has to be that parent. We detect and take advantage of that
shortcut in the non-merge case.
Pierre-Yves David <pierre-yves.david@octobus.net> [Sat, 25 Nov 2017 18:42:23 -0500] rev 3265
stablesort: extract a '_revsfrom' method
Walking from the revision is usually simple unless the revision is a merge.
Having this walking logic isolated will help us refine it.
Pierre-Yves David <pierre-yves.david@octobus.net> [Sun, 10 Dec 2017 01:48:32 +0100] rev 3264
stablerange: use the new cache object in the 'mergepoint' version
Every improvement to the cache should reflect on the stable range from there.
Since we no longer use the basic sort function, we can simplify the inheritance
by dropping one layer.
Pierre-Yves David <pierre-yves.david@octobus.net> [Sat, 25 Nov 2017 18:31:37 -0500] rev 3263
stablesort: introduce a cache object
The object is not caching anything yet, but the API are getting into place.
Pierre-Yves David <pierre-yves.david@octobus.net> [Sat, 25 Nov 2017 16:05:09 -0500] rev 3262
stablesort: start implementing more advanced version of headstart sorting
Now that we can validate the sort with a basic implementation, we can start
implementing a version that will support caching and other goodies.
Pierre-Yves David <pierre-yves.david@octobus.net> [Sun, 10 Dec 2017 01:38:48 +0100] rev 3261
stablerange: make use of the limit argument in 'mergepoint'
This will eventually avoid doing full iteration on ancestors of the head when
retrieving the range content.
Pierre-Yves David <pierre-yves.david@octobus.net> [Sun, 10 Dec 2017 01:33:39 +0100] rev 3260
stablerange: introduce a smarte version of stablerange for 'mergepoint'
This implementation will using caching and smarter algorithm based on these
cache. For now it inherit most of it code from the dummy version for
convenience. The inheritance to the dummy version should be dropped eventually.
Pierre-Yves David <pierre-yves.david@octobus.net> [Sun, 10 Dec 2017 01:26:40 +0100] rev 3259
stablerange: introduce an intermediary abstract class for caching
The 'branchpoint' and 'mergepoint' based stablerange class will need similar
cache, we introduce an abstract class to take care of that first.
Pierre-Yves David <pierre-yves.david@octobus.net> [Sun, 10 Dec 2017 01:06:16 +0100] rev 3258
stablerange: introduce a basic-mergepoint method
This method use the new 'mergepoint' based stable sorting. It is expected to be
eventually better than branch point to stable range: more stable, easier to
cache, etc. Having a basic implementation will allow use to validate more
advanced implementation.
Pierre-Yves David <pierre-yves.david@octobus.net> [Sun, 26 Nov 2017 11:58:35 -0500] rev 3257
stablesort: add a new test to check for fully independant branches
Apparently, this was not covered.
Pierre-Yves David <pierre-yves.david@octobus.net> [Sat, 25 Nov 2017 17:37:37 -0500] rev 3256
stablesort: add a --limit argument
This will be useful when using stable sort within stable range.
Pierre-Yves David <pierre-yves.david@octobus.net> [Sat, 25 Nov 2017 15:14:50 -0500] rev 3255
stablesort: introduce a mergepoint based method focused on head
The things we needs for stable range is head centric. So we simplify the issue
by focussing on head.
Pierre-Yves David <pierre-yves.david@octobus.net> [Sat, 25 Nov 2017 04:09:17 -0500] rev 3254
stablesort: introduce a "mergepoint" method
The mergepoint method decide order from merge. This allow to directly reuse a
the full sort of one of the parent, and should simplify caching.
Pierre-Yves David <pierre-yves.david@octobus.net> [Sun, 10 Dec 2017 00:20:06 +0100] rev 3253
stablerange: fallback to a more naive approach to find subrange
As suspected, using "bheads" was bit good enough in some case and we have to
fall back to the approach used in "basic".
On the evolve repo (about 3K changeset) this approach is about 60% slower than
the previous (wrong) code.
Pierre-Yves David <pierre-yves.david@octobus.net> [Sat, 09 Dec 2017 22:49:07 +0100] rev 3252
stablebranch: avoid overlap between subrange
Subrange overlap make things more complicated and less efficient. We fix the
computation done in the "cached" version of the stablerange cache. This bring
things in line with the result produced by the basic version.
Since we already bumped the format version since the last release, I don't
things we need to do anything else.
Pierre-Yves David <pierre-yves.david@octobus.net> [Sat, 09 Dec 2017 22:37:10 +0100] rev 3251
stablerange: introduce an 'basicstablerange'
This class hold all the basic of stable range but the part specific to the
sorting.
This allow to clearly express what is expected from each method and to generate
tests output to be validated against the more complex implementation.
While writing this, we spotted a bug in the current stable range implementation.
Fix coming.
Pierre-Yves David <pierre-yves.david@octobus.net> [Wed, 29 Nov 2017 11:18:53 -0500] rev 3250
stablerange: extract the core API into a 'stablerangecore' class
To clarify what the code is doing without all the caching and algorithmic
improvement, we extract a core class that highlight the basic API expected from
the class.
Pierre-Yves David <pierre-yves.david@octobus.net> [Sat, 09 Dec 2017 22:17:00 +0100] rev 3249
stable-branch: setup tests to use a specific method by default
This will make future test simpler.
Pierre-Yves David <pierre-yves.david@octobus.net> [Wed, 29 Nov 2017 10:53:21 -0500] rev 3248
stablerange: rework the debug command to allow for multiple method
Similar to what we did for the other debug command related to sorting, we
prepare for the arrival of multiple method to produce the result (including
simple implementation that are easy to read but do not scale).
Pierre-Yves David <pierre-yves.david@octobus.net> [Sat, 09 Dec 2017 17:34:33 +0100] rev 3247
deptcache: make sure we warm the dept cache before warming the obsdiscovery
The depthcache need to a warmed a bit more agressively
Pierre-Yves David <pierre-yves.david@octobus.net> [Thu, 23 Nov 2017 16:37:24 +0100] rev 3246
stablesort: add a 'method' argument to the debugstablesort command
Let start experimenting with other way to do stable sorting.
Pierre-Yves David <pierre-yves.david@octobus.net> [Sat, 25 Nov 2017 02:58:47 -0500] rev 3245
stablesort: rename function to stablesort_branchpoint
We are about to test different approach to stable sorting. We clarify that the
existing method is sorting from branch points.
Pierre-Yves David <pierre-yves.david@octobus.net> [Sat, 09 Dec 2017 17:14:53 +0100] rev 3244
stablerange: update the filename to avoid cache confusion
The schema validation seems to not work as well as intended, we update the file
name to make sure there will be no confusion.
Pierre-Yves David <pierre-yves.david@octobus.net> [Thu, 23 Nov 2017 16:34:50 +0100] rev 3243
stablesort: extract in its own module
We are going to introduce variants, cache and more complex logic, we move that
in its own repository beforehand.
Pierre-Yves David <pierre-yves.david@octobus.net> [Wed, 29 Nov 2017 12:48:45 -0500] rev 3242
compat: in depth cache, only use cachevfs when available
We support older version without the new vfs.
Pierre-Yves David <pierre-yves.david@octobus.net> [Thu, 23 Nov 2017 16:53:29 +0100] rev 3241
depthcache: issue a progress bar when loading the depth cache
The operation can be in the minute order of magnitude of some larger repository.
We better keep the user entertain when he wait.
Pierre-Yves David <pierre-yves.david@octobus.net> [Wed, 22 Nov 2017 15:05:15 +0100] rev 3240
depthcache: move to a dedicated object and storage
The SQL cache was overkill and fragile. We move to a dedicated storage using the
new generic class.
Pierre-Yves David <pierre-yves.david@octobus.net> [Wed, 22 Nov 2017 13:44:44 +0100] rev 3239
cache: adds debug details about what the content of the update
Having more data in debug is good, we add a small method to help providing them.
This code was headed for core during the 4.3 cycle but never made it there. So
we starts with a copy in the evolve repository.
Pierre-Yves David <pierre-yves.david@octobus.net> [Wed, 22 Nov 2017 13:40:47 +0100] rev 3238
cache: introduce a changelogsourcebase class
This abstract class will help code that need a cache tracking the changelog
content (eg: the branchmap cache). The cache key used is the same as what the
branchmap uses.
This code was headed for core during the 4.3 cycle but never made it there. So
we starts with a copy in the evolve repository.
Pierre-Yves David <pierre-yves.david@octobus.net> [Wed, 22 Nov 2017 13:40:05 +0100] rev 3237
cache: introduce an abstract class for cache we can upgrade incrementally
Right now each class implements their own mechanism for validation, and
update. We start introducing abstract class to ultimately allow more
unification of the cache code.
The end goal of this series is to introduce a cache for some obsolescence
property, not to actually implement the cache. However, taking advantage of
adding a new cache to introduce the abstract class seems like a win.
This code was headed for core during the 4.3 cycle but never made it there. So
we starts with a copy in the evolve repository.
Pierre-Yves David <pierre-yves.david@octobus.net> [Wed, 22 Nov 2017 16:57:07 +0100] rev 3236
depth: basic debugdepth implementation and test
This will come very handy to validate more advanced implementation later.
Pulkit Goyal <7895pulkit@gmail.com> [Sat, 09 Dec 2017 06:13:28 +0100] rev 3235
topics: add a config to reject draft changeset without topic on a server
This patch adds a new config option experimental.topic-mode.server which if
sets to True, the server won't accept any draft changeset without topic on it.
In case both `experimental.topic-mode.server` and
`experimental.topic.publish-bare-branch` are set to True, the enforce-topic one
is respected.
Tests are added for it. The CHANGELOG file is also updated mentioning about the
config option.
Pierre-Yves David <pierre-yves.david@octobus.net> [Sat, 09 Dec 2017 05:05:39 +0100] rev 3234
test: update output to ad5f2b923b0d
A new bundle2 capabilities have been added (related to bookmark). So we have to
update the test output.
CORE-TEST-OUTPUT-UPDATE: ad5f2b923b0d
Denis Laxalde <denis@laxalde.org> [Thu, 07 Dec 2017 20:34:18 +0100] rev 3233
touch: shorten touch's docstring to make it fit into a one line
This make it show completely (untruncated) in `hg help -e evolve`.
This follows up on fed946edc293 where the docstring got unwrap for that
purpose and thus made the line length exceed 80 columns.
Pierre-Yves David <pierre-yves.david@octobus.net> [Tue, 05 Dec 2017 18:31:08 +0100] rev 3232
branching: merge with stable
Pierre-Yves David <pierre-yves.david@octobus.net> [Wed, 06 Dec 2017 02:08:37 +0100] rev 3231
help: promote "amend" to important command
Recent change to what command we advertise as "basic". It turn out "amend" was
not part of one of them. Since "amend" is one of the core command of a rewriting
workflow, we promote it to "basic command".
Kyle Lippincott <spectral@google.com> [Tue, 05 Dec 2017 16:11:08 -0800] rev 3230
help: fix output for `hg help -e evolve` wrt 'touch' command
Currently, when running `hg help -e evolve`, the output looks like this on my
screen:
touch create successors that are identical to their predecessors
except
With this change, it looks like this:
touch create successors that are identical to their predecessors
except for the changeset ID
Kyle Lippincott <spectral@google.com> [Tue, 05 Dec 2017 16:08:50 -0800] rev 3229
help: remove a few commands from `hg` (no args) command list
According to `hg help -e evolve`, the following commands come from the evolve
extension:
amend
evolve
fold
metaedit
next
obslog
pdiff
previous
prune
pstatus
split
touch
uncommit
If one runs `hg` without arguments, commands that are prefixed with a ^
character are shown. From the previous list, this includes:
evolve
fold
metaedit
next
previous
prune
split
touch
uncommit
It feels several of these commands are not "basic commands" that someone who
has never used hg before might care about. They probably also do not come
close to passing the "toothbrush test": things that users are likely to use
every day. This commit removes these items from the list: metaedit, touch,
uncommit
This means the following are kept:
evolve
fold
next
previous
prune
split
Kyle Lippincott <spectral@google.com> [Mon, 04 Dec 2017 14:27:27 -0800] rev 3228
typos: fix typos in several locations
A user at Google attempted to fix our local copy because they had noticed a
typo (accross instead of across), but this will just get overwritten on our
next import. This commit fixes that case and a few others that my editor found.
Most of the typos were in comments, but user-visible output is changed in a few
cases:
- accross -> across
- splitted -> split
- ambigious -> ambiguous
- evolvestte -> evolvestate (this is in a ui.debug, so not often seen)
There is another typo that I wanted to fix, but didn't: 'supercede' is spelled
'superseed' in a few locations. I believe this is only internal to the
extension, instead of being user-visible, so while it could probably be fixed
easily, I wasn't 100% sure it didn't end up in a file on disk or something and
might cause problems, so I left it alone.
Pierre-Yves David <pierre-yves.david@octobus.net> [Tue, 05 Dec 2017 13:53:04 +0100] rev 3227
topic: use more protective code to access current topic
There are some code path where the operation is not properly initialized and
lack the new attributes. While the lack of initialization, is suspicious and
I've not be able to pin point case where this happens.
Currently the code crash when it encounter this situation. So we make the code
more resistant to this case to prevent bad user experience.
Pierre-Yves David <pierre-yves.david@octobus.net> [Tue, 05 Dec 2017 13:21:57 +0100] rev 3226
topic: use more protective code to access publishing code
There are some code path where the operation is not properly initialized and
lack the new attributes. While the lack of initialization, is suspicious and
I've not be able to pin point case where this happens.
Currently the code crash when it encounter this situation. So we make the code
more resistant to this case to prevent bad user experience.
Kyle Lippincott <spectral@google.com> [Mon, 04 Dec 2017 14:27:27 -0800] rev 3225
typos: fix typos in several locations
A user at Google attempted to fix our local copy because they had noticed a
typo (accross instead of across), but this will just get overwritten on our
next import. This commit fixes that case and a few others that my editor found.
Most of the typos were in comments, but user-visible output is changed in a few
cases:
- accross -> across
- splitted -> split
- ambigious -> ambiguous
- evolvestte -> evolvestate (this is in a ui.debug, so not often seen)
There is another typo that I wanted to fix, but didn't: 'supercede' is spelled
'superseed' in a few locations. I believe this is only internal to the
extension, instead of being user-visible, so while it could probably be fixed
easily, I wasn't 100% sure it didn't end up in a file on disk or something and
might cause problems, so I left it alone.
Pulkit Goyal <7895pulkit@gmail.com> [Mon, 04 Dec 2017 17:16:01 +0530] rev 3224
tests: add a test for newline in obsnote
Pulkit Goyal <7895pulkit@gmail.com> [Mon, 04 Dec 2017 15:50:32 +0530] rev 3223
obsnote: don't add '' to note while showing it in obslog
Pulkit Goyal <7895pulkit@gmail.com> [Sun, 03 Dec 2017 23:40:08 +0530] rev 3222
obsnote: add an entry in CHANGELOG about it
Pulkit Goyal <7895pulkit@gmail.com> [Fri, 17 Nov 2017 03:14:47 +0530] rev 3221
amend: add support for storing a note in obsmarker