Thu, 22 Jun 2017 10:13:29 +0200 topicmap: massive rework
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.
Thu, 22 Jun 2017 09:47:14 +0200 topic: use the 'topic' revset in namespace
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.
Thu, 22 Jun 2017 09:41:01 +0200 topic-revset: update the revset to no longer build changectx
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)
Thu, 22 Jun 2017 09:46:30 +0200 topic-revset: changectx creation in the revset
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)
Wed, 21 Jun 2017 07:32:11 +0530 topics: add some noise to rewrittent changeset to prevent hash cycle
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…)
Wed, 21 Jun 2017 13:18:47 +0200 topic-change: update the working copy along when changing topic of '.'
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.
Wed, 21 Jun 2017 13:21:08 +0200 topic-change: cleanup the locking and transaction mechanism
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.
Wed, 21 Jun 2017 07:21:50 +0530 topics: use a dict for successors of changesets produced by topic change
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.
Wed, 21 Jun 2017 11:55:45 +0200 topic: further simplify the clear logic
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.
Wed, 21 Jun 2017 03:28:25 +0530 topics: drop the clean argument from _changetopics()
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.
(0) -1000 -300 -100 -10 +10 +100 +300 +1000 tip