Pierre-Yves David <pierre-yves.david@ens-lyon.org> [Sat, 11 Mar 2017 10:26:30 -0800] rev 2087
depth: update depth to code to reuse ancestors depth
Computing the depth of all N revs is no longer 'O(N**2)'
Pierre-Yves David <pierre-yves.david@ens-lyon.org> [Sat, 11 Mar 2017 09:08:20 -0800] rev 2086
obsdiscovery: extract a smarted depth in utility
The function is reusing previous depth for ancestors unless this is a merge.
Pierre-Yves David <pierre-yves.david@ens-lyon.org> [Sat, 11 Mar 2017 08:46:21 -0800] rev 2085
obsdiscovery: simply some of the missing computation
Pierre-Yves David <pierre-yves.david@ens-lyon.org> [Sun, 12 Mar 2017 08:15:14 -0700] rev 2084
discovery: implement some range based discovery
This use the previously implemented methods to implement some discovery and
fetch method using ranges.
There is currently major performance issue and some aspect of the protocol will
changes.
Pierre-Yves David <pierre-yves.david@ens-lyon.org> [Fri, 10 Mar 2017 10:36:46 -0800] rev 2083
discovery: introduce a official 'obshash associated to a range
The hash in a combination of the hash a its subrange. If the range is a leaf,
we have the obsmarker relevant to the node in that leaf range.
Pierre-Yves David <pierre-yves.david@ens-lyon.org> [Thu, 09 Mar 2017 22:57:41 -0800] rev 2082
discovery: introduce "stable slicing" methods
We introduce new code that leverage the stable sorting to slices a graph in a
way "stable" accross repository. This should allow us to use theses slices for
obsolescence markers discovery.
Pierre-Yves David <pierre-yves.david@ens-lyon.org> [Thu, 09 Mar 2017 19:18:11 -0800] rev 2081
discovery: adds a function doing revnum independant sorting
The function is doing a topological sort without depending on revision number.
This make the sort independent of the repository and suitable for discovery.
Pierre-Yves David <pierre-yves.david@ens-lyon.org> [Thu, 09 Mar 2017 18:36:46 -0800] rev 2080
hgignore: also ignore the 'dist' directory
This is generated by the 'sdist' command
Pierre-Yves David <pierre-yves.david@ens-lyon.org> [Thu, 09 Mar 2017 18:31:55 -0800] rev 2079
obsexchange: drop unused module
shame shame shame
Pierre-Yves David <pierre-yves.david@ens-lyon.org> [Thu, 09 Mar 2017 18:08:45 -0800] rev 2078
MANIFEST.in: also includes topic
That was also overlooked when we added topic.
Pierre-Yves David <pierre-yves.david@ens-lyon.org> [Thu, 09 Mar 2017 18:07:58 -0800] rev 2077
MANIFEST.in: fix to include all evolve submodule
This was overlooked before.
Pierre-Yves David <pierre-yves.david@ens-lyon.org> [Tue, 07 Mar 2017 15:58:15 +0100] rev 2076
obsdiscovery: organize the code by category
A private function get promoted to public since another module uses it.
Pierre-Yves David <pierre-yves.david@ens-lyon.org> [Thu, 09 Mar 2017 17:50:50 -0800] rev 2075
evolution: drop the old __temporary__.advertiseobsolete option
Mercurial code supports such feature directly though its
'experimental.evolution' config option. So we drop the old code and config.
Pierre-Yves David <pierre-yves.david@ens-lyon.org> [Thu, 09 Mar 2017 17:34:30 -0800] rev 2074
README: mention the 'serveronly' extensions
It is now properly installed with the package.
Pierre-Yves David <pierre-yves.david@ens-lyon.org> [Thu, 09 Mar 2017 17:33:57 -0800] rev 2073
server only: test a more standard method of disabling exchange
We have an "official" config option from core so lets just use it.
Martin von Zweigbergk <martinvonz@google.com> [Thu, 09 Mar 2017 12:47:31 -0800] rev 2072
debian: don't delete evolve and topic extensions
The debian packaging rules deletes all __init__.py to avoid
conflicting with the __init__.py that declares the namespace
package. Now that the evolve and topic extensions also live in
__init__.py files, we clearly don't want to delete all __init__.py
files anymore; only the hgext3rd/__init__.py should be deleted.
Arun Kulshreshtha <kulshrax@fb.com> [Thu, 09 Mar 2017 12:20:27 -0800] rev 2071
serveronly: replace exc.message with str(exc)
BaseException.message is deprecated in Python 2.6, so use str() instead.
Pierre-Yves David <pierre-yves.david@ens-lyon.org> [Thu, 09 Mar 2017 13:11:20 -0800] rev 2070
cleanup: stop using 'repo.join' methods
These repository method might get deprecated soon. In addition, accessing the
vfs-s is not that hard.
Pierre-Yves David <pierre-yves.david@ens-lyon.org> [Thu, 09 Mar 2017 10:42:50 -0800] rev 2069
setup: add author_email
The 'sdist' command complains about it otherwise.
Pierre-Yves David <pierre-yves.david@ens-lyon.org> [Thu, 09 Mar 2017 10:42:25 -0800] rev 2068
readme: make it valid rst
That will eventually please pypi
Martin von Zweigbergk <martinvonz@google.com> [Thu, 09 Mar 2017 08:33:00 -0800] rev 2067
setup.py: remove unused and harmful code importing mercurial
This was failing on some build system we have. The import seemed to
succeed, but then mercurial.__all__ would fail. I don't know why, but
since it's unused anyway, let's just drop it.
Martin von Zweigbergk <martinvonz@google.com> [Wed, 08 Mar 2017 13:48:35 -0800] rev 2066
docs: update references to installation path
Pierre-Yves David <pierre-yves.david@ens-lyon.org> [Wed, 08 Mar 2017 17:07:38 -0800] rev 2065
test: rename serveronly tests to reflect the new extension name
Pierre-Yves David <pierre-yves.david@ens-lyon.org> [Tue, 07 Mar 2017 15:52:04 +0100] rev 2064
evolve: stop running 'serveronly' setup
Since there is no common logic remaining the smaller extension we can stop
running its setup in the main extensions
Pierre-Yves David <pierre-yves.david@ens-lyon.org> [Tue, 07 Mar 2017 15:49:22 +0100] rev 2063
discovery: directly merge the 'obsdiscovery' exthelper in top level extensions
There is no reason to proxy it through the 'obsexchange' submodule.
Pierre-Yves David <pierre-yves.david@ens-lyon.org> [Tue, 07 Mar 2017 15:47:09 +0100] rev 2062
compat: drop advertising of unsupported experimental bundle2 part
The support for this part was dropped long ago in 74bc8a0c2c02. But we forgot
to remove it from the 'simple4server' extension.
Pierre-Yves David <pierre-yves.david@ens-lyon.org> [Tue, 07 Mar 2017 15:45:21 +0100] rev 2061
exchange: dispatch all code in 'serveronly' to the appropriate submodule
All code related to exchange is now in either 'evolve.obsexchange' or
'evolve.obsdiscovery', and the 'serveronly' extension is using their 'exthelper'
to set itself up. As a side effect, the 'serveronly' extensions now enable
better exchange when pushing from that server too.
Pierre-Yves David <pierre-yves.david@ens-lyon.org> [Wed, 08 Mar 2017 15:35:16 -0800] rev 2060
capabilities: properly sort capabilities after updating them
Capabilities are usually sorted. This is especially useful to avoid silly error
in test.
Pierre-Yves David <pierre-yves.david@ens-lyon.org> [Tue, 07 Mar 2017 15:10:57 +0100] rev 2059
pull: also issue warning for old mercurial version
Pierre-Yves David <pierre-yves.david@ens-lyon.org> [Tue, 07 Mar 2017 15:04:58 +0100] rev 2058
exchange: split between modern and legacy code
We make it clearer what code is old crust and what code is the cutting edge
part.
Pierre-Yves David <pierre-yves.david@ens-lyon.org> [Tue, 07 Mar 2017 14:59:00 +0100] rev 2057
push: add extra warning about pushing to old server
Pushing using old method is slow and racy. We adds warning to point this to the
user.
We also add inline comment to clarify the function purpose.
Pierre-Yves David <pierre-yves.david@ens-lyon.org> [Tue, 07 Mar 2017 14:45:02 +0100] rev 2056
push: exit obsexchange early if disabled
We were exiting the function later, in particular -after- issuing a message
about exchanging obsmarkers.
Pierre-Yves David <pierre-yves.david@ens-lyon.org> [Tue, 07 Mar 2017 14:41:53 +0100] rev 2055
compat: drop special code handling change in push/pull op API
All version of Mercurial we support have the same API.
Pierre-Yves David <pierre-yves.david@ens-lyon.org> [Tue, 07 Mar 2017 14:29:43 +0100] rev 2054
discovery: split discovery related code in 'obsdiscovery'
More code splitting for more clarity.
Pierre-Yves David <pierre-yves.david@ens-lyon.org> [Tue, 07 Mar 2017 14:19:12 +0100] rev 2053
exchange: rename the module
Let's add a 'obs' prefix to make the module role clearer.
Pierre-Yves David <pierre-yves.david@ens-lyon.org> [Wed, 08 Mar 2017 23:04:45 +0100] rev 2052
setup.py: include all evolve submodule
We are splitting more and more code into submodule, we make sure their are
properly installed.
As a side effect the 'legacy' module is now installed, that is not too
important. The 'evolve.hack' package is still non installed by default, as
intended.
Martin von Zweigbergk <martinvonz@google.com> [Tue, 07 Mar 2017 09:47:37 -0800] rev 2051
evolve: switch away from deprecated repo.opener
Pierre-Yves David <pierre-yves.david@ens-lyon.org> [Tue, 07 Mar 2017 13:31:19 +0100] rev 2050
serveronly: use the same extensions metadata than evolve
This will avoid them to drift out of sync with evolve.
Pierre-Yves David <pierre-yves.david@ens-lyon.org> [Tue, 07 Mar 2017 13:24:07 +0100] rev 2049
evolve: move extension metadata in their own module
This will allow the server only extension to reuse them. As a side effect we can
now simplify the config parsing in setup.py
Pierre-Yves David <pierre-yves.david@ens-lyon.org> [Tue, 07 Mar 2017 13:12:27 +0100] rev 2048
evolve: specify the 'minimalhgversion'
3.7 added a new nice and shinny variable to help user know when they use the
wrong version of Mercurial with an extension. We now use it.
Pierre-Yves David <pierre-yves.david@ens-lyon.org> [Tue, 07 Mar 2017 12:27:01 +0100] rev 2047
serveronly: give the sub extension a way to access to the 'evolve' module
We keep it as clean as possible but if the extension is specified with a direct
path, we have to be a bit hacky.
Being able to access the whole evolve extension from the 'serveronly' extension
will lift multiple constraints on how we organise the code and will allow for
cleaner and clearer code.
We extract a minor function into a 'utility' module to have something to depends
on.
Pierre-Yves David <pierre-yves.david@ens-lyon.org> [Tue, 07 Mar 2017 12:10:05 +0100] rev 2046
test: update test to check for various way to import the serveronly things
We add a "setup script" that update the PYTHONPATH to allow direct import of
the extension code. Then we tests that all way to import the extensions works.
Pierre-Yves David <pierre-yves.david@ens-lyon.org> [Tue, 07 Mar 2017 12:04:05 +0100] rev 2045
tests: move "test setup" script into a 'testlib' directory
This will avoid cluttering the tests directory.
Pierre-Yves David <pierre-yves.david@ens-lyon.org> [Sat, 04 Mar 2017 02:56:50 +0100] rev 2044
exchange: move code related to exchange into a 'evolve.exchange' submodule
The evolve extension is HUGE, we split exchange code appart before doing more work on it.
Pierre-Yves David <pierre-yves.david@ens-lyon.org> [Sat, 04 Mar 2017 03:37:32 +0100] rev 2043
exthelper: move command declaration into the exthelper
This is necessary to allow sub module to declare commands too.
Pierre-Yves David <pierre-yves.david@ens-lyon.org> [Sat, 04 Mar 2017 01:43:36 +0100] rev 2042
exthelper: add a 'merge' method
This will help us spread more code in different sub module.
Pierre-Yves David <pierre-yves.david@ens-lyon.org> [Sat, 04 Mar 2017 01:21:43 +0100] rev 2041
exthelper: extract into its own submodule
That code is fairly independant, we extract it into its own extensions to
clarify the code
Pierre-Yves David <pierre-yves.david@ens-lyon.org> [Fri, 03 Mar 2017 10:58:59 +0100] rev 2040
makefile: add an 'install-home' target
It is similar to the Mercurial one.
Pierre-Yves David <pierre-yves.david@ens-lyon.org> [Fri, 03 Mar 2017 10:58:30 +0100] rev 2039
makefile: only check for HGROOT when running tests
Otherwise we breaks other target that do not needs HGROOT.
Pierre-Yves David <pierre-yves.david@ens-lyon.org> [Thu, 02 Mar 2017 20:13:47 +0100] rev 2038
tests: split pyflake and flake8 tests
This allow more parallelism and better skip message
Pierre-Yves David <pierre-yves.david@ens-lyon.org> [Thu, 02 Mar 2017 20:24:17 +0100] rev 2037
flake8: run on all python file
We can now run it on all file in the repository to catch potential regression.
Pierre-Yves David <pierre-yves.david@ens-lyon.org> [Thu, 02 Mar 2017 20:23:45 +0100] rev 2036
flake8: fix error in 'setup.py'
Some strange indentation in there.
Pierre-Yves David <pierre-yves.david@ens-lyon.org> [Thu, 02 Mar 2017 20:23:18 +0100] rev 2035
flake8: fix error in 'test2rst.py'
There is variosu dead code in there :-/ but we just fix flake8 complains for
now.
Pierre-Yves David <pierre-yves.david@ens-lyon.org> [Thu, 02 Mar 2017 20:22:29 +0100] rev 2034
flake8: remove "error" in documentation configuration
The "error" are debatable but cheap to fix.
Pierre-Yves David <pierre-yves.david@ens-lyon.org> [Thu, 02 Mar 2017 18:14:33 +0100] rev 2033
flake8: enable on evolve too
Now that all error are fixed we can run it on all file to prevent regression.
Pierre-Yves David <pierre-yves.david@ens-lyon.org> [Thu, 02 Mar 2017 19:29:37 +0100] rev 2032
flake8: update the code sources to fixes a horde of pyflake warnings
There is many of them, they all fixed.
Pierre-Yves David <pierre-yves.david@ens-lyon.org> [Thu, 02 Mar 2017 19:28:52 +0100] rev 2031
flake8: register 'xrange' as a builtins
For some reason, flake8 thinks is is undefined.
Pierre-Yves David <pierre-yves.david@ens-lyon.org> [Thu, 02 Mar 2017 19:28:12 +0100] rev 2030
flake8: ignore an addition rules related to import
Our initialization code is too complex to make flake8 happy
Pierre-Yves David <pierre-yves.david@ens-lyon.org> [Thu, 02 Mar 2017 19:25:54 +0100] rev 2029
flake8: document all the exception we added
Pierre-Yves David <pierre-yves.david@ens-lyon.org> [Thu, 02 Mar 2017 18:28:14 +0100] rev 2028
README: mention the addition of the topic extensions
That is probably worth noting.
Pierre-Yves David <pierre-yves.david@ens-lyon.org> [Thu, 02 Mar 2017 18:14:21 +0100] rev 2027
tests: run pyflake on all python files
We have fixed the handfull of error pyflakes found on evolve so we can setup
the test to prevent regression. Next stop flake8.
Pierre-Yves David <pierre-yves.david@ens-lyon.org> [Thu, 02 Mar 2017 18:13:57 +0100] rev 2026
serveronly: fix undefined variable
This is a legit bug caught by pyflake
Pierre-Yves David <pierre-yves.david@ens-lyon.org> [Thu, 02 Mar 2017 18:13:45 +0100] rev 2025
legacy: properly test for mercurial version in the legacy extensions
Otherwise 'demandimport' would delay the raising of ImportError.
Pierre-Yves David <pierre-yves.david@ens-lyon.org> [Thu, 02 Mar 2017 18:13:20 +0100] rev 2024
evolve: prevent global variable shadowing
Small and harmless pyflake complains.
Pierre-Yves David <pierre-yves.david@ens-lyon.org> [Thu, 02 Mar 2017 18:13:03 +0100] rev 2023
evolve: drop some unused variables
More pyflakes catches.
Pierre-Yves David <pierre-yves.david@ens-lyon.org> [Thu, 02 Mar 2017 18:12:47 +0100] rev 2022
evolve: drop some unused import
topic came with pyflake checking, let us make use of it.
Pierre-Yves David <pierre-yves.david@ens-lyon.org> [Thu, 02 Mar 2017 18:26:47 +0100] rev 2021
README: fix evolve installation path
We forgot to do so when we moved things to hgext3rd.
Pierre-Yves David <pierre-yves.david@ens-lyon.org> [Thu, 02 Mar 2017 18:07:46 +0100] rev 2020
topic: merge the topic extension in the evolve repository
There is a lot of synergy between the two concepts. Topic is expected to be able
to smooth multiple of evolution sharp edge. Having them both in the same
repository will make this collaboration easier.
Pierre-Yves David <pierre-yves.david@ens-lyon.org> [Thu, 23 Feb 2017 15:19:31 +0100] rev 2019
test: adapt to new core output
Troubles are now displayed by log so we have to update the test.
Pierre-Yves David <pierre-yves.david@ens-lyon.org> [Thu, 23 Feb 2017 14:56:22 +0100] rev 2018
test: adapt to change in mercurial output
Nothing major here.
Pierre-Yves David <pierre-yves.david@ens-lyon.org> [Thu, 23 Feb 2017 13:58:52 +0100] rev 2017
compat: handle difference of signature for update destination hooks
The 'check' argument have been dropped in 11c253997b0e. So we make it optional
for compatibility.
Pierre-Yves David <pierre-yves.david@ens-lyon.org> [Fri, 14 Oct 2016 00:54:04 +0200] rev 2016
setup.py: also install 'hgext3rd/__init__.py'
This file is needed for the namespace package to work. (And also for the package
to work on its own at all).
Pierre-Yves David <pierre-yves.david@ens-lyon.org> [Fri, 07 Oct 2016 04:10:23 +0200] rev 2015
tutorial: add a very basic pointer in the readme
Ideally we should at least build the html from the rst.
Pierre-Yves David <pierre-yves.david@ens-lyon.org> [Fri, 30 Sep 2016 18:21:50 +0200] rev 2014
tutorial: add a second part about having multiple topic
Pierre-Yves David <pierre-yves.david@ens-lyon.org> [Thu, 29 Sep 2016 16:48:13 +0200] rev 2013
tutorial: add a first version of the tutorial with the basics
This is probably not wonderful but at least we have a base.
Pierre-Yves David <pierre-yves.david@ens-lyon.org> [Tue, 13 Sep 2016 17:58:22 +0200] rev 2012
doc: add more details about the head checking
Once again, probably not great, but better than nothing.
Pierre-Yves David <pierre-yves.david@ens-lyon.org> [Wed, 07 Sep 2016 12:45:23 +0200] rev 2011
documentation: some basic update of the documentation
So far the documentation was pretty scarce and a lot of important information
was missing.
The new content is probably not great but it is an improvement.
Anton Shestakov <av6@dwimlabs.net> [Wed, 07 Sep 2016 10:40:18 +0800] rev 2010
flake8: ignore N801
N801 is "class names should use CapWords convention"
The message comes from a pep8 plugin "pep8-naming" which cares about naming
conventions. If the plugin is installed, it is automatically used by pep8 and
flake8.
Anton Shestakov <av6@dwimlabs.net> [Wed, 07 Sep 2016 10:35:47 +0800] rev 2009
flake8: don't ignore E713 now that it's fixed
E713 is "test for membership should be ‘not in’"
Sean Farley <sean@farley.io> [Tue, 30 Aug 2016 15:23:03 -0700] rev 2008
flake8: fix E713 style
Sean Farley <sean@farley.io> [Tue, 30 Aug 2016 15:22:24 -0700] rev 2007
flake8: fix E301 style
Sean Farley <sean@farley.io> [Tue, 30 Aug 2016 15:18:43 -0700] rev 2006
flake8: fix E111 style
OFF BY ONE ERRORS ARE THE WORST
Sean Farley <sean@farley.io> [Tue, 30 Aug 2016 15:15:05 -0700] rev 2005
flake8: fix E222 style
Sean Farley <sean@farley.io> [Tue, 30 Aug 2016 14:10:16 -0700] rev 2004
flake8: fix E127 style
Sean Farley <sean@farley.io> [Tue, 30 Aug 2016 14:12:49 -0700] rev 2003
flake8: fix W391 style
Sean Farley <sean@farley.io> [Tue, 30 Aug 2016 14:05:36 -0700] rev 2002
tests: add flake8 check
This test will hopefully help prevent style errors. To be determined:
which errors / warnings to ignore?
Sean Farley <sean@farley.io> [Sun, 15 May 2016 22:23:16 -0300] rev 2001
flake8: add file for rules to ignore
This will help prevent users that have an editor with flake8
capabilities from fixing linter errors for rules that are not wanted by
the project.
Initially, this ignore list includes everything in the project that
violates pep8. I'll try to ween this list down to something a little
more manageable.
timeless@gmail.com [Fri, 26 Aug 2016 16:57:45 +0000] rev 2000
init: guard _namemap with repo.topics (issue5351)
This prevents reading extra data on all repo commits
when there is no topic for a given name.
_namemap is called a lot, and it is often called for commit
shas -- which should pretty much never be names of topics...
timeless@gmail.com [Fri, 26 Aug 2016 16:52:02 +0000] rev 1999
init: cache repo.topics
Pierre-Yves David <pierre-yves.david@ens-lyon.org> [Fri, 26 Aug 2016 21:57:48 +0200] rev 1998
stack: add warning about multiple heads
This seems a good spot to nudge people toward reducing there head count.
Pierre-Yves David <pierre-yves.david@ens-lyon.org> [Fri, 26 Aug 2016 14:55:58 +0200] rev 1997
stack: add some behind information
This is the next useful thing after branch
Pierre-Yves David <pierre-yves.david@ens-lyon.org> [Fri, 26 Aug 2016 14:23:31 +0200] rev 1996
stack: add some basic branch information
In the same spirit as knowing the topic you are on, having some branch data seem
useful (yet, this smell a bit like summary)
Pierre-Yves David <pierre-yves.david@ens-lyon.org> [Fri, 26 Aug 2016 14:14:04 +0200] rev 1995
stack: add some header with the topic name
This is the first step of a move to add more data about a stack in the command
output.
Pierre-Yves David <pierre-yves.david@ens-lyon.org> [Fri, 26 Aug 2016 14:58:18 +0200] rev 1994
test: add testing of stack output in 'stack-data' test.
We are going to display common information, so we reuse test case.
Pierre-Yves David <pierre-yves.david@ens-lyon.org> [Fri, 26 Aug 2016 14:58:49 +0200] rev 1993
test: rename 'list' test to 'stack-data'
We are about to add stack data information to 'hg stack'. As we'll re-use the
test data creating the 'test-topic-list.t' we need to rename it first to embrace
its new semantic.
Pierre-Yves David <pierre-yves.david@ens-lyon.org> [Fri, 26 Aug 2016 12:58:16 +0200] rev 1992
stack: also dim bases
Now that they may have index it seems better to have a stronger marking for
bases.
Pierre-Yves David <pierre-yves.david@ens-lyon.org> [Fri, 26 Aug 2016 12:52:06 +0200] rev 1991
stack: reusing the index number in base when applicable
This clarify the branching when it is easy to track back the branching point.
This does not takes the evolution graph into account yet.
Pierre-Yves David <pierre-yves.david@ens-lyon.org> [Fri, 26 Aug 2016 12:37:52 +0200] rev 1990
stack: extra argument validation logic outside of showstack
It seems sensible keep the 'showstack' function purely about actually displaying
and existing stack.
Pierre-Yves David <pierre-yves.david@ens-lyon.org> [Tue, 23 Aug 2016 21:18:47 +0200] rev 1989
summary: properly label the topic name in summary
This should be labelled 'topic.active' so that color can pick it up properly.
Pierre-Yves David <pierre-yves.david@ens-lyon.org> [Tue, 23 Aug 2016 23:38:28 +0200] rev 1988
topic: list the branches this topic belong to when verbose
Using the verbose listing a bit more, this seems to be useful information.
Pierre-Yves David <pierre-yves.david@ens-lyon.org> [Tue, 16 Aug 2016 15:43:06 +0200] rev 1987
topic: properly justify the verbose data when listing topic
We align all data to the widest topic.
Pierre-Yves David <pierre-yves.david@ens-lyon.org> [Tue, 16 Aug 2016 15:32:54 +0200] rev 1986
ngtip: rely on topicmap for 'ngtip'
ngtip is an old function that predates the introduction of a more proper topic
aware 'topicmap'. We replace the old code with a call to the new one. This
change set function return type and have minor effect in a couple of place.
Pierre-Yves David <pierre-yves.david@ens-lyon.org> [Sun, 14 Aug 2016 19:57:58 +0200] rev 1985
topic: list the number of 'behind' changeset when --verbose is used
Displaying more information in the topic list is useful, we continue with the
number of 'behind' changesets. This 'behind' count the number of new changesets on
the default rebase destination. This will highlight topics that need rebasing.
Pierre-Yves David <pierre-yves.david@ens-lyon.org> [Mon, 15 Aug 2016 00:19:44 +0200] rev 1984
destination: honor the sourceset argument of _destmerge
Mercurial gained a "sourceset" argument to compute the merge destination of any
changeset (the one in the 'sourceset'). This now works for the version
in topic too. The support is quite basic (because we pick only one changeset
from the sourceset) but that's a start.
Pierre-Yves David <pierre-yves.david@ens-lyon.org> [Mon, 15 Aug 2016 05:25:53 +0200] rev 1983
destmerge: improve topic head computation and handling
This rework get use two benefits:
- heads are now computed on a "stabilized" state,
- heads above the 'source' are now properly cleaned up,
Pierre-Yves David <pierre-yves.david@ens-lyon.org> [Mon, 15 Aug 2016 05:15:19 +0200] rev 1982
evolve: extract the code copied from evolve in a submodule
This will allow us to use that code in other module.
Pierre-Yves David <pierre-yves.david@ens-lyon.org> [Mon, 15 Aug 2016 01:50:15 +0200] rev 1981
destmerge: honor the 'onheadcheck' argument
This argument was introduced in Mercurial some time ago but the topic extension
was never updated to take it in account. This is now fixed.
Pierre-Yves David <pierre-yves.david@ens-lyon.org> [Sun, 14 Aug 2016 23:17:09 +0200] rev 1980
destination: use the correct abort class for error
These errors have been in Mercurial long enough. Having them will make the coming
changesets simpler.
Pierre-Yves David <pierre-yves.david@ens-lyon.org> [Sun, 14 Aug 2016 19:40:53 +0200] rev 1979
topic: list the number of head when --verbose is used
Displaying more information in the topic list is useful, we continue with the
number of heads on the topics, this will help highlight the problem to users. We
only display head if there is more than one.
Pierre-Yves David <pierre-yves.david@ens-lyon.org> [Sat, 13 Aug 2016 01:24:10 +0200] rev 1978
topic: list the number of troubled changesets when --verbose is used
Displaying more information in the topic list is useful, we continue with the
number of troubled changesets. This will help people to spot topics that needs
evolution, for example after a pull.
Pierre-Yves David <pierre-yves.david@ens-lyon.org> [Fri, 12 Aug 2016 23:59:37 +0200] rev 1977
topic: list the number of changesets when --verbose is used
Displaying more information in the topic list is useful, we start with the most
obvious: number of non-obsolete changeset in the topic.
Pierre-Yves David <pierre-yves.david@ens-lyon.org> [Sun, 14 Aug 2016 20:40:46 +0200] rev 1976
topic: add color for the active topic
We reuse the same color that the one used for the active bookmark.
Pierre-Yves David <pierre-yves.david@ens-lyon.org> [Sat, 13 Aug 2016 00:37:33 +0200] rev 1975
topic: add formatter support
Using formatter to output the list of topic will add support for color and
richer templater. We add some test for output control.
We introduce a dedicated test to help with coming more complexe output.
Pierre-Yves David <pierre-yves.david@ens-lyon.org> [Sat, 13 Aug 2016 00:13:05 +0200] rev 1974
topic: extract the code listing all topics
The code will become more complexe with formatter support and additional data in
the verbose output. We extract the code in its own function first.
Pierre-Yves David <pierre-yves.david@ens-lyon.org> [Fri, 12 Aug 2016 11:09:26 +0200] rev 1973
stack: introduce and explicite command to display the stack
If is worth testing having the feature lives outside 'hg topic --list'. The
'stack' name is sub optimal because the conflict with 'status'. using "hg st"
would still work as 'st' is hard coded, but this mean 'hg stack' has no short
version.
Pierre-Yves David <pierre-yves.david@ens-lyon.org> [Thu, 11 Aug 2016 22:52:49 +0200] rev 1972
testedwith: update to 3.9
This is might still 3.7 compatible but I'm no longer running the test and I
would says the user base is small enough to not care.
Pierre-Yves David <pierre-yves.david@ens-lyon.org> [Thu, 11 Aug 2016 22:50:58 +0200] rev 1971
topic: make sure we have the 'wlock' when setting topic
We where writing the '.hg/topic' file without a lot. That was bad.
Pierre-Yves David <pierre-yves.david@ens-lyon.org> [Wed, 13 Jul 2016 16:19:41 +0200] rev 1970
cleanup: removed unused mercurial.util import
timeless@gmail.com [Fri, 08 Jul 2016 16:59:43 +0000] rev 1969
compat: tolerate missing rebase extension
timeless@gmail.com [Fri, 08 Jul 2016 16:09:55 +0000] rev 1968
compat: mercurial dropped alias for hashlib.sha1
Pierre-Yves David <pierre-yves.david@ens-lyon.org> [Wed, 11 May 2016 16:22:52 +0200] rev 1967
destination: add an XXX about handling destspace in destmerge
This that we hopefully do not forget about this.
Sean Farley <sean@farley.io> [Mon, 25 Apr 2016 21:24:20 -0700] rev 1966
update: calculate 'partial' as core does
Sean Farley <sean@farley.io> [Mon, 25 Apr 2016 20:00:19 -0700] rev 1965
discovery: flake8
Sean Farley <sean@farley.io> [Mon, 25 Apr 2016 19:59:05 -0700] rev 1964
destination: flake8
Sean Farley <sean@farley.io> [Tue, 22 Mar 2016 14:51:35 -0700] rev 1963
style: update __init__.py
Pierre-Yves David <pierre-yves.david@ens-lyon.org> [Wed, 11 May 2016 16:06:58 +0200] rev 1962
compat: adapt to the new destspace argument of destmerge
The argument is currently ignored in the topic case for simplicity, but we
properly accept it and propagate it to the original function to prevent crash
and behavior regression in the non-topic case.
Pierre-Yves David <pierre-yves.david@fb.com> [Mon, 04 Apr 2016 00:28:03 -0700] rev 1961
stack: prevent crash when topic is rooted on nullid
We exclude null from displayed base. This was causing a crash when trying to
display its description (we'll still have to handle the empty description case,
but it is now less urgent).
Pierre-Yves David <pierre-yves.david@fb.com> [Mon, 04 Apr 2016 00:22:20 -0700] rev 1960
test: add topic on the first 2 changesets too
This will be used to add a test for topic rooted on nullid. We introduce this in
its own changeset to reduce the noise if the actual changeset.
Pierre-Yves David <pierre-yves.david@fb.com> [Mon, 04 Apr 2016 00:17:54 -0700] rev 1959
test: remove comment about new head warning
The new head warning was buggy. This was fixed in bdc5bb223b50.
Pierre-Yves David <pierre-yves.david@fb.com> [Sun, 03 Apr 2016 21:41:38 -0700] rev 1958
stack: also change the indexing of the t# reference
Changeset 61f36480740f changed the index displayed (we now index from 1), but
forgot to update the logic used to resolve the 't#' name.
This changeset fixes it.
Pierre-Yves David <pierre-yves.david@fb.com> [Fri, 01 Apr 2016 16:58:52 -0700] rev 1957
stack: change the ascii symbold for base
Now that the children line go upward, '_' is no longer clear as is take the lower part of the line. We go for '^' that use the upper part.
Pierre-Yves David <pierre-yves.david@fb.com> [Fri, 01 Apr 2016 16:57:11 -0700] rev 1956
stack: reverse the display order
Most mercurial command display the most recent changeset first. We put `hg topic --list` inline with this.
Pierre-Yves David <pierre-yves.david@fb.com> [Fri, 01 Apr 2016 16:55:24 -0700] rev 1955
topic: extract display from entry computation
We are about to reverse the order of the output (most recent first) so it will
be useful.
Pierre-Yves David <pierre-yves.david@fb.com> [Fri, 01 Apr 2016 16:40:19 -0700] rev 1954
stack: start indexing at 't1' instead of 't0'
I think 't0' could have special meaning (eg: before 't1', but still with topic
activated) so let's keep room for that. Indexing from 1 is not crazy anyway.
Pierre-Yves David <pierre-yves.david@fb.com> [Wed, 30 Mar 2016 23:58:30 -0700] rev 1953
commit: wrap "commitstatus" to take topic into account
The "created new head" message was appearing for every single commit made on a
topic. It should now properly only appears when a new head is actually created
on a topic.
Pierre-Yves David <pierre-yves.david@fb.com> [Wed, 30 Mar 2016 23:55:31 -0700] rev 1952
uisetup: add call to 'topicmap.modsetup'
this was forgotten in 99c1a26abf3f. Tests did not broke because the wrapping of
cg.apply only have performance impact (cache warmup).
Pierre-Yves David <pierre-yves.david@fb.com> [Wed, 30 Mar 2016 22:33:06 -0700] rev 1951
uisetup: move all remaining wrapping into uisetup
All our wrapping is now properly done at uisetup time. Hooray.
Pierre-Yves David <pierre-yves.david@fb.com> [Wed, 30 Mar 2016 22:31:24 -0700] rev 1950
topicmap: move 'cgapply' wrapping into the topicmap module
More gathering of related logic.
Pierre-Yves David <pierre-yves.david@fb.com> [Wed, 30 Mar 2016 22:25:17 -0700] rev 1949
topicmap: move the 'usetopicmap' context manager into the topicmap module
There is no good reason to not have it gathered with the rest.
Pierre-Yves David <pierre-yves.david@fb.com> [Wed, 30 Mar 2016 22:05:49 -0700] rev 1948
patch: move setup of import/export logic into a function
The function is now called during uisetup.
Pierre-Yves David <pierre-yves.david@fb.com> [Wed, 30 Mar 2016 22:04:25 -0700] rev 1947
patch: remove version compatibility check
We don't support anything under 3.7.
Pierre-Yves David <pierre-yves.david@fb.com> [Wed, 30 Mar 2016 22:03:44 -0700] rev 1946
patch: document the section about import/export
Pierre-Yves David <pierre-yves.david@fb.com> [Wed, 30 Mar 2016 22:02:52 -0700] rev 1945
patch: move import/export wrapping close to the function definition
This gather similar logic together.
Pierre-Yves David <pierre-yves.david@fb.com> [Wed, 30 Mar 2016 21:53:55 -0700] rev 1944
discovery: move all setup into a 'modsetup' function
The various wrappings are moved into a function that live in the module and the
function is now properly called during 'uisetup'.
Pierre-Yves David <pierre-yves.david@fb.com> [Wed, 30 Mar 2016 03:22:50 -0700] rev 1943
revset: add a ui argument to 'modsetup'
This is a gratuitous change for consistency with the function that use it.
Pierre-Yves David <pierre-yves.david@fb.com> [Wed, 30 Mar 2016 03:21:44 -0700] rev 1942
revset: run 'modsetup' at uisetup time
We are slowly moving away from module time wrapping. These thing should be done
in the dedicated 'setup' method called by Mercurial.
Pierre-Yves David <pierre-yves.david@fb.com> [Wed, 30 Mar 2016 03:20:16 -0700] rev 1941
destination: rename 'setupdest' to 'modsetup'
the topic.revset module use 'modsetup' as a name for its setup function. It
looks like a good name, lets unify names toward that.
Pierre-Yves David <pierre-yves.david@fb.com> [Wed, 30 Mar 2016 03:16:19 -0700] rev 1940
destination: document 'setupdest'
Let's make the role of this function clear.
Pierre-Yves David <pierre-yves.david@fb.com> [Wed, 30 Mar 2016 03:15:47 -0700] rev 1939
destination: add a ui argument to 'setupdest'
This is a gratuitous change for consistency.
Pierre-Yves David <pierre-yves.david@fb.com> [Wed, 30 Mar 2016 03:12:43 -0700] rev 1938
destination: make sure 'setupdest' is the latest function in the module
Let's introduce some consistency, end of module seems fine.
Pierre-Yves David <pierre-yves.david@fb.com> [Wed, 30 Mar 2016 03:45:29 -0700] rev 1937
topicmap: move to new style import
This unify with the new core Mercurial usage and this will make future changes
to the imports easier to track.
Pierre-Yves David <pierre-yves.david@fb.com> [Wed, 30 Mar 2016 03:45:18 -0700] rev 1936
stack: move to new style import
This unify with the new core Mercurial usage and this will make future changes
to the imports easier to track.
Pierre-Yves David <pierre-yves.david@fb.com> [Wed, 30 Mar 2016 03:45:10 -0700] rev 1935
revset: move to new style import
This unify with the new core Mercurial usage and this will make future changes
to the imports easier to track.
Pierre-Yves David <pierre-yves.david@fb.com> [Wed, 30 Mar 2016 03:44:59 -0700] rev 1934
discovery: move to new style import
This unify with the new core Mercurial usage and this will make future changes
to the imports easier to track.
Pierre-Yves David <pierre-yves.david@fb.com> [Wed, 30 Mar 2016 03:44:47 -0700] rev 1933
destination: move to new style import
This unify with the new core Mercurial usage and this will make future changes
to the imports easier to track.
Pierre-Yves David <pierre-yves.david@fb.com> [Wed, 30 Mar 2016 03:44:37 -0700] rev 1932
init: move to new style import
This unify with the new core Mercurial usage and this will make future changes
to the imports easier to track.
Pierre-Yves David <pierre-yves.david@fb.com> [Wed, 30 Mar 2016 03:56:14 -0700] rev 1931
test: disable the new style rendering for "missing parent"
The style kicks in when we display a partial tree. Supporting test running both
3.7 and default with this is painful, we disable the new feature for now.
Sean Farley <sean@farley.io> [Mon, 21 Mar 2016 21:39:14 -0700] rev 1930
tests: add pyflakes test
Pierre-Yves David <pierre-yves.david@fb.com> [Mon, 28 Mar 2016 00:50:36 -0700] rev 1929
setup: make sure we use the imported module
This prevent pyflakes to complains about it (and work around any possible demand
import magic.
I'm not sure why we do this important dance at all, but I'm leaving it there in
doubt.
Sean Farley <sean@farley.io> [Mon, 21 Mar 2016 21:38:56 -0700] rev 1928
topicmap: whitespace
Pierre-Yves David <pierre-yves.david@fb.com> [Mon, 28 Mar 2016 00:47:14 -0700] rev 1927
topiccache: directly instantiate a topiccache object when reading
There is no need to rely on a temporary monkey patching.
Pierre-Yves David <pierre-yves.david@fb.com> [Tue, 22 Mar 2016 15:29:05 -0700] rev 1926
readme: fix instruction to enable topic
We moved the source code in 85390446f8c1 but we messed up the readme update. We
are fixing it here.
Sean Farley <sean@farley.io> [Mon, 21 Mar 2016 21:30:14 -0700] rev 1925
stack: whitespace
Sean Farley <sean@farley.io> [Mon, 21 Mar 2016 21:29:35 -0700] rev 1924
stack: remove unused import
Sean Farley <sean@farley.io> [Mon, 21 Mar 2016 21:28:29 -0700] rev 1923
revset: add missing imports
Sean Farley <sean@farley.io> [Mon, 21 Mar 2016 21:28:12 -0700] rev 1922
revset: whitespace
Sean Farley <sean@farley.io> [Mon, 21 Mar 2016 21:26:45 -0700] rev 1921
discovery: whitespace
Sean Farley <sean@farley.io> [Mon, 21 Mar 2016 21:25:04 -0700] rev 1920
discovery: removed unused oldgetitem
Sean Farley <sean@farley.io> [Mon, 21 Mar 2016 21:07:41 -0700] rev 1919
setup: break long line
Sean Farley <sean@farley.io> [Sat, 19 Mar 2016 14:15:57 -0700] rev 1918
init: indent correctly
Sean Farley <sean@farley.io> [Sat, 19 Mar 2016 14:15:45 -0700] rev 1917
init: whitespace fixups
Sean Farley <sean@farley.io> [Sat, 19 Mar 2016 14:09:59 -0700] rev 1916
init: remove unused module
timeless@gmail.com [Fri, 18 Mar 2016 15:03:40 +0000] rev 1915
spelling: histedit
timeless@gmail.com [Fri, 18 Mar 2016 15:00:58 +0000] rev 1914
spelling: changeset
Pierre-Yves David <pierre-yves.david@fb.com> [Fri, 18 Mar 2016 08:14:45 -0700] rev 1913
readme: remove the part about 3.7 and hgext3rd
We are using direct path already so we don't need any magic here. The
'hgext3rd.'bit is only required (for 3.7) when the module is installed and we
rely on sys.path to find it.
Pierre-Yves David <pierre-yves.david@fb.com> [Tue, 22 Mar 2016 00:19:14 -0700] rev 1912
merge with other duplicate head
Pierre-Yves David <pierre-yves.david@fb.com> [Thu, 17 Mar 2016 09:14:57 -0700] rev 1911
histedit: restrict default edited set to current topic when possible
If we have an active topic, we restrict the edit within that topic.
Pierre-Yves David <pierre-yves.david@fb.com> [Thu, 17 Mar 2016 09:13:12 -0700] rev 1910
stack: add a 'stack()' revset
We give access to the list of relevant commit with a revset. Benefits over
'topic(.)' are the filtering of obsolete changeset and the reordering (to
topological as-in unstability were resolved).
Pierre-Yves David <pierre-yves.david@fb.com> [Mon, 14 Mar 2016 23:37:58 +0000] rev 1909
stack: display the base of the stack
Displaying the first parent of the stack seems useful. I'm even tempted to call
it 't0' and have the topic still active when 'hg up t0' is used to move to the
base.
As a side effect we gain a way to denote that the stack is not linear. I'm not
super convinced that it is the right way to display it, but this is better than
no information.
Pierre-Yves David <pierre-yves.david@fb.com> [Mon, 14 Mar 2016 19:22:21 +0000] rev 1908
stack: add some default color configuration
We can make the output more insightful with some default colors, let's do it.
Pierre-Yves David <pierre-yves.david@fb.com> [Mon, 14 Mar 2016 19:03:32 +0000] rev 1907
stack: add basic formatter and label support
This still is not great, especially I would like '-T' to be able to control how
we display the changeset, but this is useful progress.
Pierre-Yves David <pierre-yves.david@fb.com> [Mon, 14 Mar 2016 18:43:23 +0000] rev 1906
stack: show the currently active changeset and unstable ones
Still super basic, but give a basic idea of the feature. We use both symbols and
explicit text because symbols are cool but text is more explicit
Pierre-Yves David <pierre-yves.david@fb.com> [Mon, 14 Mar 2016 18:40:00 +0000] rev 1905
stack: add "t" prefix to index in the output
This make the existance and meaning of "t2" reference clearer.
Pierre-Yves David <pierre-yves.david@fb.com> [Mon, 14 Mar 2016 18:39:19 +0000] rev 1904
stack: allow to refer to changeset using "t2" form
hg up "t0" is seen as "update to the first changeset of my current topic".
Eventually we'll drop the "t2" form in favor of the planned generic indexing
operator '.{t2}'.
Pierre-Yves David <pierre-yves.david@fb.com> [Tue, 15 Mar 2016 17:26:57 +0000] rev 1903
topic: don't take topic into account when pushing to non-topic repo
Previously, pushing to a non-publishing repository without topic support would
wrongfully use topic when searching for new heads.
Pierre-Yves David <pierre-yves.david@fb.com> [Wed, 16 Mar 2016 12:14:20 -0700] rev 1902
destination: fix 'hg pull --rebase'
I'm not sure why sometime functions do not have func_default but this is easy
to fix. I've added a test to catch such stuffs it in the future.
Pierre-Yves David <pierre-yves.david@fb.com> [Thu, 17 Mar 2016 09:12:18 -0700] rev 1901
packaging: fix setup.py and install as hgext3rd.topic
This changeset is doing two things (gasp):
- It fixes various errors in the setup.py
- It move the topic source and install into hgext3rd.topic.
This last part (code source move) use hgext3rd as namespace package to prevent
installation nightmare. This won't be officially supported until Mercurial 3.8,
but in the meantime, 3.7 user can enable it using the full package name:
[extensions]
hgext3rd.topic=
Thanks goes to Julien Cristau <julien.cristau@logilab.fr> for the initial
version of this.
Pierre-Yves David <pierre-yves.david@fb.com> [Wed, 16 Mar 2016 12:14:20 -0700] rev 1900
destination: fix 'hg pull --rebase'
I'm not sure why sometime functions does not have func_default but this is easy
to fix. I've added a test to catch such stuff it in the future.
Pierre-Yves David <pierre-yves.david@fb.com> [Tue, 15 Mar 2016 17:25:18 +0000] rev 1899
discovery: remove a spurious print
Pierre-Yves David <pierre-yves.david@fb.com> [Mon, 14 Mar 2016 18:24:33 +0000] rev 1898
task: add index number to the output
We are doing to use these number for easy movement in later changesets. The
numbering will probably evolve over time but this is a good start.
Pierre-Yves David <pierre-yves.david@fb.com> [Mon, 14 Mar 2016 18:11:52 +0000] rev 1897
stack: fix printing order in case of unstability
The stack was displayed using revision number order, this give good result in
the simple case (straight stack) but give bad result when the stack is not
linear because of unstability.
We fixes it by reusing the evolution logic for sorting. As we do not live next
to evolution yet, we duplicated this logic for now.
Pierre-Yves David <pierre-yves.david@fb.com> [Mon, 14 Mar 2016 17:48:31 +0000] rev 1896
stack: exclude obsolete changeset from the set
We care about relevant changeset, obsolete have a new version somewhere and we
don't care about the old one in our display.
In case of unstability, the ordering used is still wrong.
Pierre-Yves David <pierre-yves.david@fb.com> [Mon, 14 Mar 2016 17:37:39 +0000] rev 1895
stack: add a very first version of stack display with 'hg topic --list'
This mark the first step toward a set of feature dedicated to displaying and
moving within the current stack of work. Everything is still super basic so
don't look too much at the feature.
The goals of this changeset are:
* having a flag to trigger the feature
* having a basic (imperfect selection mechanism)
Pierre-Yves David <pierre-yves.david@fb.com> [Mon, 14 Mar 2016 17:09:02 +0000] rev 1894
topic: get 'Abort' from error, not 'util'
The class live in 'mercurial.error'.
Augie Fackler <raf@durin42.com> [Mon, 14 Mar 2016 21:22:56 -0400] rev 1893
Makefile: meant tests-@ not tests-tip
Pierre-Yves David <pierre-yves.david@fb.com> [Sun, 13 Mar 2016 12:29:43 +0000] rev 1892
update: change default update destination to take topic in account
When within a branch update to ngtip(branch). When within a topic update to the
top topic.
Pierre-Yves David <pierre-yves.david@fb.com> [Sun, 13 Mar 2016 13:07:54 +0000] rev 1891
rebase: test default rebase destination behavior
In future mercurial 3.8, rebase and merge share the same destination logic. So
if merge work, rebase should work as well. However, we double test it to be
sure.
Especially, in 3.7 the logic is not shared so we have to introduce an extra hack
to share it in this case.
Pierre-Yves David <pierre-yves.david@fb.com> [Sun, 13 Mar 2016 23:44:04 +0000] rev 1890
topicmap: write and read format from disc
To prevent too awful performance we allow writing and reading topicmap cache.
This is done with a lot of code duplication from core because core is not
extensible enough.
Pierre-Yves David <pierre-yves.david@fb.com> [Mon, 14 Mar 2016 00:15:54 +0000] rev 1889
topicmap: ensure that 'served' view is updated with topicmap
There is multiple place that explicitly update the 'served' branchmap to ensure
it stay up to date. We ensure it use the proper topicmap in this case.
Pierre-Yves David <pierre-yves.david@fb.com> [Mon, 14 Mar 2016 00:12:22 +0000] rev 1888
topicmap: move the monkey patching into a context manager
There is a couple of other place doing branchmap/topicmap update (of the served
set), we'll have to set the monkey patching for them.
This changeset is just doing the move to a context manager to make sure it is
correct.
Pierre-Yves David <pierre-yves.david@fb.com> [Sat, 12 Mar 2016 18:42:16 +0000] rev 1887
push: hackish handeling of new branch head from phase move
The current head checking mechanism is not expecting "head change" from phase
movement. Topic allows that, changeset with a topic moving to public can
create a new head. We introduce a hack to double check that no head were added
at the transaction level to work around this.
Pierre-Yves David <pierre-yves.david@fb.com> [Sat, 12 Mar 2016 18:19:27 +0000] rev 1886
push: allow pushing new topic to non-publishing server by default
This improves and fix the behavior change introduced by the new "topicmap".
* Topics are properly ignored when pushing to a publishing server,
* pushing new topics is allowed without --force a non-publishing server,
* Pushing extra heads on a topic requires --force.
Create of new head on a branch by phase movement is not properly detected for
now. We'll improve that part in a later changesets.
There is more awful monkey patching going on. We'll have to refactor core to get
rid of them.
Pierre-Yves David <pierre-yves.david@fb.com> [Sat, 12 Mar 2016 15:36:17 +0000] rev 1885
topic: take topic in account for all branch head computation
This changeset introduce a "topicmap" that is tracking not just the head of all
branches, but the heads of all branch+topic pair. Including the head of the part
of the branch without any topic. In practice this means that BRANCHNAME now
resolve to the tipmost part for the branch without topic and impact various
other logic like head checking during push and default destination for update and
merge (these aspect will need adjustment in later changesets).
The on-the-fly-temporary-monkey-patching process is pretty horrible, but allow
to move forward without waiting on having core patched.
We use 'branch:topic' as the branchmap key, this is a small and easy hack that
help use a lot for (future) support of heads discovery/checking and on disc
cache. I'm not sure it is worthwhile to improve this until an implementation
into core.
Note that this changeset change the branchmap in all cases, including during
exchange, see next changeset for improved behavior.
We also currently have the on-disk cache disabled because the core branchmap is
lacking phase information in its cache key. This will get done in a later
changesets
Augie Fackler <raf@durin42.com> [Mon, 14 Mar 2016 20:18:09 -0400] rev 1884
testedwith: declare compatibility with Mercurial 3.7
Augie Fackler <raf@durin42.com> [Mon, 14 Mar 2016 20:17:18 -0400] rev 1883
Makefile: update all-version-tests to explicitly test 3.7
Augie Fackler <raf@durin42.com> [Mon, 14 Mar 2016 20:13:44 -0400] rev 1882
hgignore: also ignore testtimes
Augie Fackler <raf@durin42.com> [Mon, 14 Mar 2016 20:12:39 -0400] rev 1881
killdaemons: discard now that it's unused
Pierre-Yves David <pierre-yves.david@fb.com> [Mon, 14 Mar 2016 14:38:40 +0000] rev 1880
test: drop custom run-tests.py
We should use the one provided by Mercurial core directly.
Augie Fackler <raf@durin42.com> [Mon, 14 Mar 2016 20:11:47 -0400] rev 1879
Makefile: rework running of tests
This makes running tests easier without depending on our own copy of
run-tests.py (though I'd still prefer to keep that around.)
Pierre-Yves David <pierre-yves.david@fb.com> [Sat, 12 Mar 2016 12:36:25 +0000] rev 1878
compat: adapt to change in mercurial core
The code around merge destination have been changed in core, we do some basic
adaptation to make sure we don't crash.
Further rework to adapt//take advantage of core change would probably be useful
but this is not the point of this commit.
Augie Fackler <raf@durin42.com> [Thu, 31 Dec 2015 11:23:19 -0500] rev 1877
topic: handle merge.update function signature change
I think this is backwards compatible with how it used to be called,
but I didn't worry about it too much either.
Augie Fackler <raf@durin42.com> [Fri, 11 Dec 2015 13:12:23 -0500] rev 1876
Merge.
Augie Fackler <raf@durin42.com> [Fri, 11 Dec 2015 13:09:29 -0500] rev 1875
test-topic-dest: test fixes I should have put in the previous change
I split a bigger change from marmoute that included some rebase
support that I wanted to discuss more, but I didn't correctly commit
my fixes to the tests before pushing. Oops.
Augie Fackler <raf@durin42.com> [Fri, 11 Dec 2015 12:53:20 -0500] rev 1874
topic: fix changing topics of commits that have an amend_source
Includes a test for this specific case, but we should probably spend
more time squinting at the interactions between the current topic
wrapper function and commitctx for memctx instances.
Augie Fackler <raf@durin42.com> [Fri, 11 Dec 2015 12:53:38 -0500] rev 1873
topic: remove useless call to c.parents()
Augie Fackler <raf@durin42.com> [Fri, 11 Dec 2015 12:56:23 -0500] rev 1872
topic: fix up change logic a little and add debug logging
Pierre-Yves David <pierre-yves.david@fb.com> [Wed, 21 Oct 2015 01:09:15 +0200] rev 1871
merge: use topic to pick default destination
If the topic have multiple heads, reduce that. Otherwise, pick the
branch we are on.
Pierre-Yves David <pierre-yves.david@fb.com> [Wed, 21 Oct 2015 01:12:32 +0200] rev 1870
topic: introduce a 'ngtip' concept
The concept is to be massively used in naming and default destination logic.
The name is horrible so that people find a better one.
Pierre-Yves David <pierre-yves.david@fb.com> [Thu, 08 Oct 2015 21:09:47 -0700] rev 1869
template: test that topic is accessible through template
This comes free with the namespace feature but it is good to have.
Pierre-Yves David <pierre-yves.david@fb.com> [Fri, 23 Oct 2015 13:40:44 +0100] rev 1868
test: adapt to newer mercurial
Pierre-Yves David <pierre-yves.david@fb.com> [Thu, 08 Oct 2015 20:43:15 -0700] rev 1867
patch: import topic from patch header
If the used Mercurial supports it, we import topic from patch headers.
Pierre-Yves David <pierre-yves.david@fb.com> [Thu, 08 Oct 2015 20:42:26 -0700] rev 1866
patch: add topic to exported patch
If used Mercurial supports it, we add a topic header to patches.
Augie Fackler <raf@durin42.com> [Wed, 14 Oct 2015 12:09:11 -0400] rev 1865
topic: work around stringmatcher moving during development of hg 3.6
Augie Fackler <raf@durin42.com> [Wed, 30 Sep 2015 18:06:42 -0400] rev 1864
topic: allow use of topic(.) to match the p1 topic
As far as I can tell this matches the behavior of branch(.) in core hg
in tht it matches p1's value rather than the wdir value.
Augie Fackler <raf@durin42.com> [Wed, 30 Sep 2015 18:05:27 -0400] rev 1863
topic: fix missing error import
Matt Mackall <mpm@selenic.com> [Fri, 19 Jun 2015 16:23:29 -0500] rev 1862
amend: allow clearing topics on amend
Matt Mackall <mpm@selenic.com> [Fri, 19 Jun 2015 16:16:42 -0500] rev 1861
changectx: add topic method
Matt Mackall <mpm@selenic.com> [Fri, 19 Jun 2015 16:13:16 -0500] rev 1860
topics: consistently use empty string instead of None
This agrees with repo.currenttopic which uses ''. A subsequent patch
is going to provide a context topic method that returns the empty
string.
Matt Mackall <mpm@selenic.com> [Fri, 19 Jun 2015 14:18:34 -0500] rev 1859
topics: drop debugging print in rebase
Matt Mackall <mpm@selenic.com> [Mon, 15 Jun 2015 17:29:07 -0500] rev 1858
topics: allow commits that only change topic (issue4725)
This allows amend to change topics. It also matches the behavior of branches.
Matt Mackall <mpm@selenic.com> [Mon, 15 Jun 2015 16:56:44 -0500] rev 1857
topics: add listnames hook so completion works
Augie Fackler <augie@google.com> [Thu, 18 Jun 2015 15:46:26 -0400] rev 1856
rewrite: use a lock and transaction as spotted by devel warnings
Matt Mackall <mpm@selenic.com> [Fri, 12 Jun 2015 16:49:46 -0500] rev 1855
topics: only apply topic to commits of the working copy
Matt Mackall <mpm@selenic.com> [Fri, 12 Jun 2015 16:41:10 -0500] rev 1854
rebase: teach rebase how to copy topics
Matt Mackall <mpm@selenic.com> [Fri, 12 Jun 2015 16:39:39 -0500] rev 1853
topic: wrap the underlying update function rather than the command
This more properly manages the updates done by things like rebase.
Matt Mackall <mpm@selenic.com> [Wed, 10 Jun 2015 17:52:07 -0500] rev 1852
commit: add a topic field to the in-editor commit text
Matt Mackall <mpm@selenic.com> [Wed, 10 Jun 2015 17:40:50 -0500] rev 1851
topic: only require obsolete support for --change
Matt Mackall <mpm@selenic.com> [Wed, 10 Jun 2015 17:13:15 -0500] rev 1850
commit: add a --topic flag
Matt Mackall <mpm@selenic.com> [Wed, 10 Jun 2015 16:44:49 -0500] rev 1849
topic: note when switching topics
Matt Mackall <mpm@selenic.com> [Wed, 10 Jun 2015 16:32:20 -0500] rev 1848
summary: add topic summary hook