Pulkit Goyal <7895pulkit@gmail.com> [Thu, 06 Jul 2017 03:31:11 +0530] rev 2718
topics: add a config knob to forbid untopiced commit
After this patch one can add the following to their hgrc to stop allowing new
commits with no topic on it.
[experimental]
enforce-topic = yes
Pulkit Goyal <7895pulkit@gmail.com> [Thu, 06 Jul 2017 03:56:36 +0530] rev 2717
topics: update the help for `hg topics` describing ways to use the command
Pierre-Yves David <pierre-yves.david@octobus.net> [Fri, 07 Jul 2017 01:01:01 +0200] rev 2716
branching: merge with stable
Pierre-Yves David <pierre-yves.david@octobus.net> [Thu, 06 Jul 2017 23:33:28 +0200] rev 2715
obshashrange: add cache warming instruction to the documentation
Pierre-Yves David <pierre-yves.david@octobus.net> [Tue, 04 Jul 2017 10:49:14 +0200] rev 2714
evolve: explain how to disable markers discovery in the documentation
This is useful for large repository.
Pierre-Yves David <pierre-yves.david@octobus.net> [Thu, 06 Jul 2017 23:33:28 +0200] rev 2713
obshashrange: add cache warming instruction to the documentation
Pulkit Goyal <7895pulkit@gmail.com> [Tue, 04 Jul 2017 01:30:14 +0530] rev 2712
topics: add t0 and b0 to the stack
t0 or b0 will be the base of the stack and it's the parent of t1 or b1. The cool
thing about this is that if you update to t0 using `hg up t0` or do `hg prev` on
t1, you will be updated to t0 with the current topic preserved.
This patch adds t0 to stack and implement the preserving topic case for t0 while
using `hg update`.
Pulkit Goyal <7895pulkit@gmail.com> [Tue, 04 Jul 2017 00:15:36 +0530] rev 2711
topics: wrap the update function to check if either t0 or b0 is passed as rev
t0 or b0, seriously, what's that. Do they even exist? Hold on and look for the
next commits what we are trying to do.
Pierre-Yves David <pierre-yves.david@octobus.net> [Fri, 07 Jul 2017 00:42:18 +0200] rev 2710
compat: adapt to change in 53b3a1968aa6-core
Pierre-Yves David <pierre-yves.david@octobus.net> [Sun, 02 Jul 2017 19:43:44 +0200] rev 2709
merge back with stable
(version updated in the process)
Pierre-Yves David <pierre-yves.david@octobus.net> [Sun, 02 Jul 2017 19:42:23 +0200] rev 2708
packaging: update versions to '.dev' one
This help to spot install from unreleased source.
Pierre-Yves David <pierre-yves.david@octobus.net> [Sun, 02 Jul 2017 19:40:56 +0200] rev 2707
Added tag 6.5.0 for changeset 734c0bc066cd
Pierre-Yves David <pierre-yves.david@octobus.net> [Sun, 02 Jul 2017 19:35:38 +0200] rev 2706
packaging: prepare version 6.5.0
Pierre-Yves David <pierre-yves.david@octobus.net> [Sun, 02 Jul 2017 19:34:30 +0200] rev 2705
topic: update extensions metadata
Let us assign a version number to this release and add some more data about the
extensions.
Pierre-Yves David <pierre-yves.david@octobus.net> [Sun, 02 Jul 2017 19:31:11 +0200] rev 2704
readme: prepare version 6.5.0
Pierre-Yves David <pierre-yves.david@octobus.net> [Sun, 02 Jul 2017 17:28:53 +0200] rev 2703
compat: merge with mercurial-3.9
Pierre-Yves David <pierre-yves.david@octobus.net> [Sun, 02 Jul 2017 17:28:38 +0200] rev 2702
compat: merge with mercurial-4.0
Pierre-Yves David <pierre-yves.david@octobus.net> [Sun, 02 Jul 2017 17:28:15 +0200] rev 2701
compat: merge with mercurial-4.1
Pierre-Yves David <pierre-yves.david@octobus.net> [Sun, 02 Jul 2017 18:22:39 +0200] rev 2700
compat: merge with stable
Nothing to report beside the drop of the obsfate related tests.
Pierre-Yves David <pierre-yves.david@octobus.net> [Sun, 02 Jul 2017 18:07:23 +0200] rev 2699
evolve: preserve the branch of the original changeset when evolving merge
Pierre-Yves David <pierre-yves.david@octobus.net> [Sun, 02 Jul 2017 17:24:56 +0200] rev 2698
merge: default into stable to prepare next version
Let us prepare ourself for 6.5.0
Pierre-Yves David <pierre-yves.david@octobus.net> [Sun, 02 Jul 2017 17:13:35 +0200] rev 2697
obslog: handle patch generation for mercurial 4.1-
The unidiff API changed, we detect and work around that.
Pierre-Yves David <pierre-yves.david@octobus.net> [Sun, 02 Jul 2017 16:39:48 +0200] rev 2696
topic: also have the revbranchcache during the discovery
Pierre-Yves David <pierre-yves.david@octobus.net> [Sun, 02 Jul 2017 16:00:38 +0200] rev 2695
topic: cleanup the repository wrapping logic in topic discovery
We are know overriding the class so we do not need to update and restore the
pushop itself.
Pierre-Yves David <pierre-yves.david@octobus.net> [Sun, 02 Jul 2017 15:02:51 +0200] rev 2694
topic: adapt to function migrate to obsutil
Mercurial 4.3 has a new module "obsutil" and multiple functions moved there. We
handle the move for the one we care about.
Pierre-Yves David <pierre-yves.david@octobus.net> [Sun, 02 Jul 2017 15:02:11 +0200] rev 2693
evolve: adapt to function migrate to obsutil
Mercurial 4.3 has a new module "obsutil" and multiple functions moved there. We
handle the move for the one we care about.
Pierre-Yves David <pierre-yves.david@octobus.net> [Sun, 02 Jul 2017 14:10:44 +0200] rev 2692
topic: directly use the '_notpublic' revset
This is just more robust to achieve the same goal.
Pierre-Yves David <pierre-yves.david@octobus.net> [Sun, 02 Jul 2017 13:49:32 +0200] rev 2691
topic: drop the message about running evolve after topic change
Topic change is no longer creating a mess that needs cleaning.
Pierre-Yves David <pierre-yves.david@octobus.net> [Sun, 02 Jul 2017 13:48:45 +0200] rev 2690
template: handle lack of "users" in the obsfate data
This can happens when their are no markers (or the markers has no user data?)
Boris Feld <boris.feld@octobus.net> [Fri, 30 Jun 2017 16:29:26 +0200] rev 2689
doc: update effect flag documentation
Boris Feld <boris.feld@octobus.net> [Mon, 26 Jun 2017 17:20:08 +0200] rev 2688
obsfate: override the default log output
Override the default log output by showing obsfate if not empty.
Pierre-Yves David <pierre-yves.david@octobus.net> [Thu, 29 Jun 2017 23:42:29 +0200] rev 2687
evolve: fix documentation formatting
The config example were formatted as standard paragraph.
Boris Feld <boris.feld@octobus.net> [Thu, 29 Jun 2017 18:22:06 +0200] rev 2686
compat: fix topicset for mercurial 4.1
The 'getrevset' method is not available there.
Boris Feld <boris.feld@octobus.net> [Mon, 26 Jun 2017 17:19:03 +0200] rev 2685
obsfate: refactor obsfate data computing
Refactor how obsfate data are computed in order to reuse this logic later when
hooking on default log output.
Boris Feld <boris.feld@octobus.net> [Thu, 29 Jun 2017 16:49:33 +0200] rev 2684
topic: exclude public and topic changeset from branch stack
Stack use-case is to show the current work in progress, which are symbolized by
the phase draft and secret phase. Moreover showing public changesets in stack
output when displaying current branch would display a lot of changesets for
long-lived branches and would be quite useless.
We also exclude topic changeset form the stack since they already exist on their
own stack.
getstack revsets didn't needed update when displaying a topic as when a
changeset become public, its topic is no longer relevant.
Pierre-Yves David <pierre-yves.david@octobus.net> [Thu, 29 Jun 2017 16:29:08 +0200] rev 2683
tests: use a more portable form for new lines
Pulkit Goyal <7895pulkit@gmail.com> [Thu, 29 Jun 2017 02:21:09 +0530] rev 2682
topic: don't abort if there is no current topic in stack() revset
Named branches support has been added and we should not abort if there is no
active topic.
Pulkit Goyal <7895pulkit@gmail.com> [Thu, 29 Jun 2017 01:58:26 +0530] rev 2681
topics: return a parse error if stack() revset is passed with argument
Pulkit Goyal <7895pulkit@gmail.com> [Thu, 29 Jun 2017 00:11:07 +0530] rev 2680
tests: add test to show topics working with shelve
Pulkit Goyal <7895pulkit@gmail.com> [Thu, 29 Jun 2017 02:31:55 +0530] rev 2679
topics: update current topic to the topic of newly rebased commit (issue5551)
The rebase code passes branchmerge equals to True while updating to the rebased
commit. We need to make sure topic is preserved even after rebase and hence we
need to update the topic even when branchmerge argument is set to True. But
there is a twist in the tale, merge also uses this part of code and we allow to
update topic when brancmerge is True, in merge cases the topic after merge will
the topic of the destination commit, not the topic of working directory parent.
So we need the function to have information about whether a rebase is going on,
and we do it by wrapping the rebase command and storing some value in the
config. This is a bit hacky but works for now. This patch fixes issue related to
loosing of topic while rebase.
Thanks to Boris Feld for the rigourous tests.
Pulkit Goyal <7895pulkit@gmail.com> [Tue, 27 Jun 2017 23:28:58 +0530] rev 2678
docs: some fixes to the help text
Pulkit Goyal <7895pulkit@gmail.com> [Mon, 26 Jun 2017 21:48:33 +0530] rev 2677
topics: pass 'topics' to ui.formatter instead of 'bookmarks'
Pierre-Yves David <pierre-yves.david@octobus.net> [Wed, 28 Jun 2017 17:28:56 +0200] rev 2676
topic: also insert the extra head check with using the new head checking
This will get the protection in place in all cases.
Pierre-Yves David <pierre-yves.david@octobus.net> [Wed, 28 Jun 2017 17:38:04 +0200] rev 2675
topic: some document for an obscure function
Pierre-Yves David <pierre-yves.david@octobus.net> [Wed, 28 Jun 2017 18:18:59 +0200] rev 2674
topic: adjust head checking wrapping to not interfere with concurrent push
In the previous form, the new topic head was detected as affected and the push
was rejected.
We introduce a of 'test-topic-push.t' using the new race checker as there have
been many compatibility issue with this new checkers.
Pierre-Yves David <pierre-yves.david@octobus.net> [Wed, 28 Jun 2017 17:23:43 +0200] rev 2673
topic: also detect head checking using the concurrent part
Pierre-Yves David <pierre-yves.david@octobus.net> [Wed, 28 Jun 2017 18:16:14 +0200] rev 2672
test: avoid 'test-check-commit.t' complaining copied code
We switch to git diff.
Pierre-Yves David <pierre-yves.david@octobus.net> [Wed, 28 Jun 2017 17:20:36 +0200] rev 2671
topic: small test cleanuo
The section was repeated.
Pierre-Yves David <pierre-yves.david@octobus.net> [Wed, 28 Jun 2017 01:53:21 +0200] rev 2670
topic: move the heads data to the branch line when appropriates
The topic line is dropped as it is quite confusing.
Pierre-Yves David <pierre-yves.david@octobus.net> [Wed, 28 Jun 2017 02:45:57 +0200] rev 2669
topic: add some initial support for using stack on named branch
Stack is a useful command that can make sense in other context. The current
support is hacky and awful, but we have something!
Pierre-Yves David <pierre-yves.david@octobus.net> [Wed, 28 Jun 2017 01:58:09 +0200] rev 2668
topic: explicitly pass topic as a keyword argument
This clarify all callers before adding more logic related to bare branch in
stack.
Boris Feld <boris.feld@octobus.net> [Tue, 27 Jun 2017 15:21:38 +0200] rev 2667
topic: makes split keep the topic
Refactor split to extract the preparation of the working directory in a
separate function.
This helps topic wrap this function to save topic before update and restore it
after preparing the working directory just before the split.
Boris Feld <boris.feld@octobus.net> [Tue, 27 Jun 2017 09:49:35 +0200] rev 2666
topic: add tests for fold behavior with topics
Clarify the fold behavior for keeping topics.
Pulkit Goyal <7895pulkit@gmail.com> [Sun, 25 Jun 2017 07:20:22 +0530] rev 2665
topics: pass quietempty=True to suppress useless output while changing topics
This will help in suppressing the output "0 files updated, 0 file removed, ..."
Pulkit Goyal <7895pulkit@gmail.com> [Sun, 25 Jun 2017 06:53:22 +0530] rev 2664
topics: return early so that other if conditions don't get execute (issue5600)
We were not returning after the _changetopics() call and hence the if's below it
were also executed which resulted in changing of current topic.
This prevent current topic to be updated even when we only affect changeset
unrelated to the working copy.
Not that the rebase output change as it expose a new bug (rebased changeset gain
a topic)
Pierre-Yves David <pierre-yves.david@octobus.net> [Mon, 26 Jun 2017 17:47:04 +0200] rev 2663
test: extra output to understand the next changeset better
Pulkit Goyal <7895pulkit@gmail.com> [Sun, 25 Jun 2017 06:47:59 +0530] rev 2662
topics: move the logic to change or clear current topic into a new function
It adds a new _changecurrenttopic which changes or clears the current topic.
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.