Pierre-Yves David <pierre-yves.david@octobus.net> [Mon, 26 Jun 2017 17:20:17 +0200] rev 2661
tests: expand output to check topic activation
This will help understanding later changesets.
Pierre-Yves David <pierre-yves.david@octobus.net> [Sun, 25 Jun 2017 18:37:42 +0200] rev 2660
branching: merge stable into default
Pierre-Yves David <pierre-yves.david@octobus.net> [Sun, 25 Jun 2017 16:37:56 +0200] rev 2659
split: preserve author of the original changeset in the successors
Previously, the new changesets were authored by the default user.
Pierre-Yves David <pierre-yves.david@octobus.net> [Sat, 24 Jun 2017 13:28:16 +0200] rev 2658
grab: properly quote hg executable in the alias
Breakage has been reported on Windows.
Pierre-Yves David <pierre-yves.david@octobus.net> [Fri, 23 Jun 2017 10:51:18 +0200] rev 2657
topic: improve the revset used to return name->nodes mapping
The 'topic' version already filters public changeset out, and skipping 'changectx'
creation will helps performance.
Pierre-Yves David <pierre-yves.david@octobus.net> [Thu, 22 Jun 2017 09:48:40 +0200] rev 2656
topic: update the changectx method to respect phases
The topic is no longer returned once the changeset is no longer mutable (unless
explicitly requested).
Pierre-Yves David <pierre-yves.david@octobus.net> [Fri, 23 Jun 2017 10:21:37 +0200] rev 2655
topic: avoid crash when topic is loaded but not enabled for a repository
Pierre-Yves David <pierre-yves.david@octobus.net> [Thu, 22 Jun 2017 15:18:49 +0200] rev 2654
compat: update test to match core default state
This output changed in 560ceb654180.
Pierre-Yves David <pierre-yves.david@octobus.net> [Thu, 22 Jun 2017 10:13:29 +0200] rev 2653
topicmap: massive rework
Massively rework the way we build and use topicmap. This bring massive performance
benefit.
Topic map use to be a fully independant thing that we would switch on and off
globaly. The caching on disk was broken so the performance were atrocious.
Intead, now the topic are inherited from the 'immutable' map. We gave up on
storing them on disk for now since the mutable set is usually small enough.
The activation is done by hacking new "filter" on the repository and detection
when they are one. This is hacky but core is hard to wrap here.
Overall this whole wrapping is really scary and we should massage core API to
help it.
Pierre-Yves David <pierre-yves.david@octobus.net> [Thu, 22 Jun 2017 09:47:14 +0200] rev 2652
topic: use the 'topic' revset in namespace
This revset performance just got improved.
Pierre-Yves David <pierre-yves.david@octobus.net> [Thu, 22 Jun 2017 09:41:01 +0200] rev 2651
topic-revset: update the revset to no longer build changectx
Atribute access is expensive, and changectx are very expensive to build, so we
skip these for better performance.
Before:
! wall 0.012195 comb 0.020000 user 0.020000 sys 0.000000 (best of 217)
After:
! wall 0.008816 comb 0.010000 user 0.010000 sys 0.000000 (best of 303)
(Before this changeset parent)
! wall 0.213261 comb 0.210000 user 0.210000 sys 0.000000 (best of 45)
Pierre-Yves David <pierre-yves.david@octobus.net> [Thu, 22 Jun 2017 09:46:30 +0200] rev 2650
topic-revset: changectx creation in the revset
The current mutability filter is very expensive, we use a more direct and
efficent way to do so:
Before:
! wall 0.213261 comb 0.210000 user 0.210000 sys 0.000000 (best of 45)
After:
! wall 0.012195 comb 0.020000 user 0.020000 sys 0.000000 (best of 217)
Pulkit Goyal <7895pulkit@gmail.com> [Wed, 21 Jun 2017 07:32:11 +0530] rev 2649
topics: add some noise to rewrittent changeset to prevent hash cycle
If we have a changeset with topic `x`, we change it's topic to `y`, fine.
When we change it's topic back again to `x`, we get the hash of the the
obsoleted changeset which had the topic `x` initially. The same happens for few
more cases like clearing the topic of a changeset which initially had no topic.
This approach is influenced from cmdutil.amend and other commands (rebase, histedit, etc…)
Pierre-Yves David <pierre-yves.david@octobus.net> [Wed, 21 Jun 2017 13:18:47 +0200] rev 2648
topic-change: update the working copy along when changing topic of '.'
This avoids leaving the working copy behind, removing another large parts of
issue5441.
Pierre-Yves David <pierre-yves.david@octobus.net> [Wed, 21 Jun 2017 13:21:08 +0200] rev 2647
topic-change: cleanup the locking and transaction mechanism
The previous code did not garanted we would release all lock (and was a bit more
complicated than needed.
Pulkit Goyal <7895pulkit@gmail.com> [Wed, 21 Jun 2017 07:21:50 +0530] rev 2646
topics: use a dict for successors of changesets produced by topic change
This patch adds a dictionary to store the successors of changesets which got
obsoleted when we change it's topic. This is an improvement in the fix for
issue5441.
Pierre-Yves David <pierre-yves.david@octobus.net> [Wed, 21 Jun 2017 11:55:45 +0200] rev 2645
topic: further simplify the clear logic
We just set 'topic' to None and the rest should follow.
Pulkit Goyal <7895pulkit@gmail.com> [Wed, 21 Jun 2017 03:28:25 +0530] rev 2644
topics: drop the clean argument from _changetopics()
After this commit, None will represent that we want to clean the topic.
Pulkit Goyal <7895pulkit@gmail.com> [Wed, 21 Jun 2017 02:00:01 +0530] rev 2643
topics: rename '--change' flag to '--rev' flag
The --change flag was used to read a revset of which topic should be changed. In
mercurial we use --rev for this type of flag.
Now things will work as follows:
`hg topics topicname`: It will set the current topic
`hg topics topicname --rev revset`: Change topic of all the revs in the revset
to topicname
Further patches will try to achieve the following:
`hg topics --clear --rev revset`: clear topic from all the revisions in the
revset
`hg topics --clear`: clear the current topic (Current behavior)
`hg topics --rev revset`: show topics on the revisions in the revset
Pulkit Goyal <7895pulkit@gmail.com> [Wed, 21 Jun 2017 01:05:46 +0530] rev 2642
topics: factor out the logic to change topic in a new function
It will help to refactor and fix bugs. Moreover we can re-use the logic.
Pierre-Yves David <pierre-yves.david@octobus.net> [Wed, 21 Jun 2017 11:45:15 +0200] rev 2641
obslog: update the readme
This is release not worthy
Pierre-Yves David <pierre-yves.david@octobus.net> [Wed, 21 Jun 2017 11:31:21 +0200] rev 2640
obslog: add a comment about the final new line of descriptions
Boris Feld <boris.feld@octobus.net> [Tue, 20 Jun 2017 16:22:16 +0200] rev 2639
obslog: also display description patch with --patch
When activating the --patch option, also display the description patch.
Pierre-Yves David <pierre-yves.david@octobus.net> [Wed, 21 Jun 2017 11:11:37 +0200] rev 2638
obslog: extra patch indentation code
The code is simple and we need to reuse it.
Boris Feld <boris.feld@octobus.net> [Tue, 20 Jun 2017 13:49:40 +0200] rev 2637
obslog: add a patch option
Add support for '--patch' option in obslog for a similar effect than "hg log
--patch".
The patch support is only limited to a few basic cases that will be extended
in the future.
Pierre-Yves David <pierre-yves.david@octobus.net> [Mon, 19 Jun 2017 19:00:31 +0200] rev 2636
obslog: clarify some sorting code
I'm not sure why Boris did it, but this belong to the next patch.
Boris Feld <boris.feld@octobus.net> [Mon, 19 Jun 2017 15:56:28 +0200] rev 2635
obslog: pass directly unfiltered_repo
_debugobshistorydisplaynode used to create two times an unfiltered repo, makes
_debugobshistoryrevs create only one unfiltered repo and pass it directly.
Boris Feld <boris.feld@octobus.net> [Mon, 19 Jun 2017 15:54:55 +0200] rev 2634
obslog: remove useless repo arg
_debugobshistorydisplaymarker used to takes repo as an argument but it isn't
needed anymore.
Boris Feld <boris.feld@octobus.net> [Mon, 19 Jun 2017 15:32:25 +0200] rev 2633
obslog: small renaming of _debugobshistorysingle
Rename _debugobshistorysingle to _debugobshistoryrevs in order to better
reflect its purpose.
Boris Feld <boris.feld@octobus.net> [Mon, 19 Jun 2017 10:33:36 +0200] rev 2632
refactoring: directly use 'ctx.unstable()' in showstack function
This is simpler and more efficient.
Pierre-Yves David <pierre-yves.david@octobus.net> [Mon, 19 Jun 2017 18:46:30 +0200] rev 2631
packaging: flag default as version 6.5.0.dev
This helps to reduce confusion when installing intermediate version.
Pierre-Yves David <pierre-yves.david@octobus.net> [Mon, 19 Jun 2017 18:44:17 +0200] rev 2630
merge: get stable change back into default
Boris Feld <boris.feld@octobus.net> [Sat, 17 Jun 2017 01:02:37 +0200] rev 2629
obsfate: improve obsfate output
Improve obsfate output:
* Remove newline and replace it by '; '
* Improve the hybrid object for making join(obsfate, '|') working.
Pierre-Yves David <pierre-yves.david@octobus.net> [Mon, 19 Jun 2017 18:37:28 +0200] rev 2628
packagin: mark stable branch as 6.4.1.dev
This help prevent confusion with installing intermediate version
Pulkit Goyal <7895pulkit@gmail.com> [Mon, 19 Jun 2017 03:13:35 +0530] rev 2627
topics: abort if user wants to show the stack of a non-existent topic
Pulkit Goyal <7895pulkit@gmail.com> [Mon, 19 Jun 2017 02:50:35 +0530] rev 2626
stack: show unstable state for the current revision if it is one (issue5553)
Before this patch if the current revision is unstable, hg stack does not show
the unstable state. This patch fixes that by showing both current and unstable
state for the current revision if that's unstable.
Pulkit Goyal <7895pulkit@gmail.com> [Mon, 19 Jun 2017 02:44:19 +0530] rev 2625
topics: some minute fixes to the documentation which shows up in help
I am not a native but these changes are simple and obvious.
Pulkit Goyal <7895pulkit@gmail.com> [Sun, 18 Jun 2017 03:23:46 +0530] rev 2624
topics: make sure we commit on new parents while changing topics (issue5441)
While changing topics of a set of linear commits, we used to commit our new
changesets with new topic on parents of its predecessor i.e. changeset before
the topic change. If the topic of parent was also changed, that parent will
become obsolete and hence resulting the cnew commit in unstable state. For a set
of linear commits this repeats and we end up in a tree state as mentioned in the
bug.
This patch fixes the bug by checking whether the parent was obsoleted and if
yes, commit on the new parent.
Pulkit Goyal <7895pulkit@gmail.com> [Sun, 18 Jun 2017 03:20:52 +0530] rev 2623
tests: add a test to show issue5441 in test-topic.t
The issue will be fixed in the next patch and the test will be helpful to show
that.
Pierre-Yves David <pierre-yves.david@octobus.net> [Sat, 17 Jun 2017 01:15:15 +0200] rev 2622
merge back with stable
(test change from stable has been reverted)
Pierre-Yves David <pierre-yves.david@octobus.net> [Fri, 16 Jun 2017 20:15:17 +0200] rev 2621
Added tag 6.4.0 for changeset e60248f26f92
Pierre-Yves David <pierre-yves.david@octobus.net> [Fri, 16 Jun 2017 20:15:04 +0200] rev 2620
packaging: prepare version 6.4.0
Pierre-Yves David <pierre-yves.david@octobus.net> [Fri, 16 Jun 2017 20:13:13 +0200] rev 2619
readme: fix readme for future 6.4.0
Pierre-Yves David <pierre-yves.david@octobus.net> [Fri, 16 Jun 2017 19:48:24 +0200] rev 2618
test-compat: merge with mercurial-3.9
Pierre-Yves David <pierre-yves.david@octobus.net> [Fri, 16 Jun 2017 19:48:10 +0200] rev 2617
test-compat: merge with mercurial-4.0
Pierre-Yves David <pierre-yves.david@octobus.net> [Fri, 16 Jun 2017 19:47:35 +0200] rev 2616
test-compat: merge with mercurial-4.1
Pierre-Yves David <pierre-yves.david@octobus.net> [Fri, 16 Jun 2017 19:27:36 +0200] rev 2615
compat-test: merge with stable
Pierre-Yves David <pierre-yves.david@octobus.net> [Fri, 16 Jun 2017 19:37:13 +0200] rev 2614
test-compat: fix previous merge
The merge was a bit too heavy handed in dropping some part of the test.
Pierre-Yves David <pierre-yves.david@octobus.net> [Fri, 16 Jun 2017 19:22:38 +0200] rev 2613
merge with default
Integrate new development around obsfate.
Pierre-Yves David <pierre-yves.david@octobus.net> [Fri, 16 Jun 2017 18:38:04 +0200] rev 2612
obsfate: by default only display the username if differ from the current one
This will will keep the output simple in the simple case.
Pierre-Yves David <pierre-yves.david@octobus.net> [Fri, 16 Jun 2017 18:03:32 +0200] rev 2611
obsfate: display more data about direct prune markers
This does not handle all cases, but this should handle the most common ones.
Pierre-Yves David <pierre-yves.david@octobus.net> [Fri, 16 Jun 2017 17:58:17 +0200] rev 2610
obsfate: split markers fetch from successor set annotation
This will help to improve support for pruned changesets.
Pierre-Yves David <pierre-yves.david@octobus.net> [Fri, 16 Jun 2017 17:55:55 +0200] rev 2609
obsfate: mark successorsetallmarkers public
We are about to use it in another module.
Pierre-Yves David <pierre-yves.david@octobus.net> [Fri, 16 Jun 2017 17:54:27 +0200] rev 2608
obsfate: mark 'preparesuccessorset' as public
It is used in another module so it is not really private.
Pierre-Yves David <pierre-yves.david@octobus.net> [Fri, 16 Jun 2017 16:51:31 +0200] rev 2607
obsfate: use 'split' as verb when appropriate
Pierre-Yves David <pierre-yves.david@octobus.net> [Fri, 16 Jun 2017 16:50:11 +0200] rev 2606
obsfate: improve prune support in _successorsetverb
In the prune case, still have markers (at least the prune markers). If we want
to be able to return these markers we need the underlying function to support
it.
Pierre-Yves David <pierre-yves.david@octobus.net> [Fri, 16 Jun 2017 12:37:03 +0200] rev 2605
obsfate: rename 'successorsset' to 'sset' in the loop
The old name make it too close to 'successorssets', and the shorter name is not
ambiguous in the context anyway.
Pierre-Yves David <pierre-yves.david@octobus.net> [Fri, 16 Jun 2017 17:42:28 +0200] rev 2604
template: use hex node in the obsmarkers used in the obsfate template
This was pointed by Yuya and yuya is right.
Pierre-Yves David <pierre-yves.david@octobus.net> [Fri, 16 Jun 2017 17:34:02 +0200] rev 2603
template: use hex successors in obsfate
This was spotted by Yuya.
Pierre-Yves David <pierre-yves.david@octobus.net> [Fri, 16 Jun 2017 17:21:49 +0200] rev 2602
template: use hex-node in successors
AS pointed by yuya on the list, the raw data for the template should be hex and
not binary.