Pierre-Yves David <pierre-yves.david@ens-lyon.org> [Tue, 14 Mar 2017 14:19:11 -0700] rev 2107
checks: do not run pyflake on removed file
The fileset matches removed files. This confuses pyflakes for good reasons.
Pierre-Yves David <pierre-yves.david@ens-lyon.org> [Tue, 14 Mar 2017 11:31:03 -0700] rev 2106
compat: closing mercurial-3.7 compatibility branch
The "evolve-6.0.0" release drop compatibility with Mercurial 3.7. No new commit
are expected on this branch.
Pierre-Yves David <pierre-yves.david@ens-lyon.org> [Tue, 14 Mar 2017 11:30:41 -0700] rev 2105
compat: closing mercurial-3.6 compatibility branch
The "evolve-6.0.0" release drop compatibility with Mercurial 3.6. No new commit
are expected on this branch.
Pierre-Yves David <pierre-yves.david@ens-lyon.org> [Tue, 14 Mar 2017 11:30:13 -0700] rev 2104
compat: closing mercurial-3.4 compatibility branch
The "evolve-6.0.0" release drop compatibility with Mercurial 3.4. No new commit
are expected on this branch.
Pierre-Yves David <pierre-yves.david@ens-lyon.org> [Tue, 14 Mar 2017 11:28:58 -0700] rev 2103
compat: closing mercurial-3.5 compatibility branch
The "evolve-6.0.0" release drop compatibility with mercurial 3.5. No new commit
are expected on this branch.
Pierre-Yves David <pierre-yves.david@ens-lyon.org> [Tue, 14 Mar 2017 11:26:55 -0700] rev 2102
README: timeless typo fixes
This applies some feedback timeless provided me from IRC.
Pierre-Yves David <pierre-yves.david@ens-lyon.org> [Tue, 14 Mar 2017 09:51:25 -0700] rev 2101
cleanup: drop an empty section header
Pierre-Yves David <pierre-yves.david@ens-lyon.org> [Tue, 14 Mar 2017 09:50:55 -0700] rev 2100
compat: drop some <hg-3.4 compatibility code
The `hg commit` commands has a -i flag for ages now.
Pierre-Yves David <pierre-yves.david@ens-lyon.org> [Mon, 13 Mar 2017 23:28:57 -0700] rev 2099
README: more update to prepare for pypi upload
* mention the evolve.serveronly extension,
* remove help related to topic into a different README file.
Pierre-Yves David <pierre-yves.david@ens-lyon.org> [Mon, 13 Mar 2017 16:53:42 -0700] rev 2098
evolve: update the capabilities and commands name for obshashrange
We makes is clear that these version are useful for earlier testing but they are
not ready for any kind of real usage yet.
Pierre-Yves David <pierre-yves.david@ens-lyon.org> [Mon, 13 Mar 2017 16:05:33 -0700] rev 2097
README: more change to have a pretty rendering on pypi
We moves section around and fixes some markup.
Pierre-Yves David <pierre-yves.david@ens-lyon.org> [Mon, 13 Mar 2017 15:41:02 -0700] rev 2096
MANIFEST.in: fix various mismatch
check-manifest is no longer complaining
Pierre-Yves David <pierre-yves.david@ens-lyon.org> [Mon, 13 Mar 2017 15:33:00 -0700] rev 2095
README: rework install instruction
For both evolve and topic. The topic introduction is updated too.
Pierre-Yves David <pierre-yves.david@ens-lyon.org> [Mon, 13 Mar 2017 15:09:21 -0700] rev 2094
README: rework the intro
Less scary wording (similar to the wiki changes) and point to the user mailing
list.
Pierre-Yves David <pierre-yves.david@ens-lyon.org> [Sat, 11 Mar 2017 14:59:09 -0800] rev 2093
rangeobshash: minor cleanup of the obshash code
We achieved minor speedup by delaying the hashing until we know it is needed.
Pierre-Yves David <pierre-yves.david@ens-lyon.org> [Sat, 11 Mar 2017 14:46:27 -0800] rev 2092
stablerange: remove call to 'repo.revs'
It turned out that the percentage of time spend parsing the revset string was
two digits, so we compute de heads inline.
Pierre-Yves David <pierre-yves.david@ens-lyon.org> [Sun, 12 Mar 2017 08:38:39 -0700] rev 2091
stablerange: reuse node calculation as much as possible
We have a property cache with that value, so we just reuse it.
Pierre-Yves David <pierre-yves.david@ens-lyon.org> [Sat, 11 Mar 2017 12:21:22 -0800] rev 2090
stablerange: adds some caching of the subranges
The goal of subranges is to be as reusable as possible, so we cache the subrange
relationship to take advantage of this.
Pierre-Yves David <pierre-yves.david@ens-lyon.org> [Sat, 11 Mar 2017 12:15:56 -0800] rev 2089
stablerange: operate on an unfiltered repository
We only do operation on ancestors so using unfiltered is fine.
Pierre-Yves David <pierre-yves.david@ens-lyon.org> [Sat, 11 Mar 2017 12:15:08 -0800] rev 2088
depth: use lower lever function to compute missing
The time spend parsing the revset is noticeable.
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.