diff README @ 2109:90ab79764ce4 mercurial-4.0

mercurial-4.0: merge with future 6.0.0 A new version will be released soon, we start handling mismatch in test output to make the actual release time smoother.
author Pierre-Yves David <pierre-yves.david@ens-lyon.org>
date Tue, 14 Mar 2017 14:38:10 -0700
parents e243e1d9464c
children fed5369058a4
line wrap: on
line diff
--- a/README	Tue Feb 28 17:00:17 2017 +0100
+++ b/README	Tue Mar 14 14:38:10 2017 -0700
@@ -2,94 +2,168 @@
 Mutable History For Mercurial
 =============================
 
-This package supplies the ``evolve`` extension for Mercurial, which
-provides several commands to mutate history and deal with the
-resulting issues.
+Evolve Extension
+=================
+
+This package supplies the ``evolve`` extension for Mercurial,
 
-It also:
+**The full implementation of the changeset evolution concept is still in
+progress.**  Please subscribe to the `evolve-testers mailing list
+<https://www.mercurial-scm.org/mailman/listinfo/evolve-testers>`_ to stay up to
+date with changes.
+
+This extension:
 
-    - enables the "changeset obsolescence" feature of Mercurial
-    - issues several warning messages when trouble appears in your repository
+* enables the “changeset evolution” feature of Mercurial core,
 
-**This extension is experimental and not yet meant for production.**
+* provides a set of commands to mutate your history,
+
+* issues several warning messages when troubles from some mutable appears in
+  your repository,
 
-You can enable it by adding the line below to the ``extensions``
-section of your hgrc::
+* provides an ``hg evolve`` command to deal with such "troubles",
 
-    evolve = PATH/TO/evolve-main/hgext/evolve.py
+* improves performance of obsolescence marker exchanges and discovery during
+  push and pull.
+
+Documentation
+-------------
 
 We recommend reading the documentation first. An online version is
 available here:
 
     https://www.mercurial-scm.org/doc/evolution/
 
-Or see the ``doc/`` directory for a local copy.
+How to Install
+==============
+
+Using Pip
+---------
+
+You can install the latest evolution version usin pip::
+
+    $ pip install --user hg-evolve
+
+Then just enable it in you hgrc::
+
+    $ hg config --edit # adds the two line below:
+    [extensions]
+    evolve =
+
+From Source
+-----------
+
+To install a local version from source::
+
+    $ hg clone https://www.mercurial-scm.org/repo/evolve/
+    $ cd evolve
+    $ make install-home
 
-Contribute
-==========
+Then just enable it in you hgrc::
+
+    $ hg config --edit # adds the two line below:
+    [extensions]
+    evolve =
+
+Documentation lives in ``doc/``.
+
+Server Only Version
+===================
 
-Bugs are to be reported on the mercurial's bug tracker (component: evolution):
-https://bz.mercurial-scm.org/buglist.cgi?component=evolution&query_format=advanced&resolution=---
+It is possible to enable a smaller subset of the extensions aimed at server
+serving repository. It skips the additions of the new commands and local UI
+messages that might add performance overheads. To use the server only
+extension, install the package and use::
+
+    $ hg config --edit # adds the two line below:
+    [extensions]
+    evolve.serveronly =
+
+
+How to Contribute
+=================
+
+Bugs are to be reported on the mercurial's bug tracker (component: `evolution`_):
+
+.. _evolution: https://bz.mercurial-scm.org/buglist.cgi?component=evolution&query_format=advanced&resolution=---
 
 Please use the patchbomb extension to send email to mercurial devel. Please
 make sure to use the evolve-ext flag when doing so. You can use a command like
-this:
+this::
 
-    hg email --to mercurial-devel@mercurial-scm.org --flag evolve-ext --rev '<your patches>'
+    $ hg email --to mercurial-devel@mercurial-scm.org --flag evolve-ext --rev '<your patches>'
 
-See also
-https://mercurial-scm.org/wiki/ContributingChanges#Patch_descriptions
-for guidelines on the patch description.
+For guidelines on the patch description, see the `official Mercurial guideline`_.
+
+.. _`official Mercurial guideline`: https://mercurial-scm.org/wiki/ContributingChanges#Patch_descriptions
 
 Please don't forget to update and run the tests when you fix a bug or
 add a feature. To run the tests, you need a working copy of Mercurial,
-say in $HGSRC:
+say in $HGSRC::
 
-    cd tests
-    python $HGSRC/tests/run-tests.py
+    $ cd tests
+    $ python $HGSRC/tests/run-tests.py
 
 (evolve's stable and default branches correspond to Mercurial's stable
 and default branches. So to test evolve from default, you need
-Mercurial on default.)
-
+Mercurial on default.), Older version of Mercurial are supportd on their respective ``mercurial-x.y`` branches.
 
 Changelog
 =========
 
-5.6.1 -- 2017-02-28
+6.0.0 -- In progress
+--------------------
 
- - fix a crash that sometime happened when evolving merges.
+- drop compatibility for Mercurial < 3.8,
+- removed old (unpackaged) pushexperiment extension,
+- move all extensions in the official 'hgext3rd' namespace package,
+- add the "topic" experimental extensions. See the README.topic file for details
+- officially ship 'evolve.serveronly' extensions. That extensions contains
+  only the part related to exchange and is intended to be used by server.
+
+  Using the extension will enable evolution, use 'experimental.evolution=!'
+  to disable obsmarkers echange.  The old '__temporary__.advertiseobsolete'
+  option is no longer supported.
+
+5.6.1 -- 2017-02-28
+-------------------
+
+- fix a crash that sometime happened when evolving merges.
 
 5.6.0 -- 2017-02-01
+-------------------
 
- - compatibility with Mercurial 4.1.
- - improvement of prune error message.
- - fold: require --from flag for folding revisions to working copy
- - fix crash when trying to fold an empty revision set (issue5453)
- - uncommit: preserve copy information of remaining files (issue5403)
+- compatibility with Mercurial 4.1.
+- improvement of prune error message.
+- fold: require --from flag for folding revisions to working copy
+- fix crash when trying to fold an empty revision set (issue5453)
+- uncommit: preserve copy information of remaining files (issue5403)
 
 5.5.0 -- 2016-10-30
+-------------------
 
- - The {obsolete} template now yield "obsolete" or "".
- - compatibility with Mercurial 4.0
- - Fix erroneous manifest computation when solving 'bumped' changeset.
- - split: avoid crash on empty commit (issue5191),
- - next: improve locking to avoid issue with working copy parent (issue5244)
- - prev: improve locking to avoid issue with working copy parent (issue5244)
- - evolve: fix abort suggestion to include '.' in 'hg update -C .'
+- The {obsolete} template now yield "obsolete" or "".
+- compatibility with Mercurial 4.0
+- Fix erroneous manifest computation when solving 'bumped' changeset.
+- split: avoid crash on empty commit (issue5191),
+- next: improve locking to avoid issue with working copy parent (issue5244)
+- prev: improve locking to avoid issue with working copy parent (issue5244)
+- evolve: fix abort suggestion to include '.' in 'hg update -C .'
 
 5.4.1 -- 2016-08-01
+-------------------
 
  - compat with Mercurial 3.9
 
 5.4.0 -- 2016-05-06
+-------------------
 
 - Some collaboration with the topic experimental extensions,
   - hg evolve --all with consider all troubles in your current topic,
   - preserve 'topic' during evolve,
   - 'next' and 'prev' restrict themself to the current topic by default,
 - remove the dangerous 'kill' alias for 'prune' (because 'hg kill -1' without
-the leading 'hg' will give you an hardtime)
+  the leading 'hg' will give you an hardtime)
 - during 'hg evolve' skip unsupported merge instead of aborting
 - various documentation fix and update
 - hg summary now suggest 'hg evolve --continue when appropriate`
@@ -98,6 +172,7 @@
 - add a 'metaedit' command to rewrite changeset meta data.
 
 5.3.0 -- 2016-02-11
+-------------------
 
 - split: add a new command to split changesets,
 - tests: drop our copy of 'run-tests.py' use core one instead,
@@ -113,6 +188,7 @@
 - updated help for the `evolve` command
 
 5.2.1 -- 2015-11-02
+-------------------
 
 - add compatibility with Mercurial 3.6
 - prune: fixed possible issue with lock and bookmark
@@ -121,6 +197,7 @@
 - take advantage of dirstate/transaction collaboration
 
 5.2.0 -- 2015-06-25
+-------------------
 
 - evolve: gain a --rev option to control what revisions to evolve (issue4391)
 - evolve: revision are processed in the order they stack on destination
@@ -140,6 +217,7 @@
 - next: add a --evolve flag to evolve aspiring children when on a head
 
 5.1.5 -- 2015-06-23
+-------------------
 
 - minor documentation cleanup
 - support -i option for `hg amend` if commit supports it (3.4)
@@ -154,6 +232,7 @@
   parent.
 
 5.1.4 -- 2015-04-23
+-------------------
 
 - significant documentation update
 - fix issue4616: pulling with bundle2 would crash if common marker when
@@ -161,6 +240,7 @@
 - fix the debugobsrelsethashtree command
 
 5.1.3 -- 2015-04-20
+-------------------
 
 - discovery: fix misbehaving discovery across python version
 - pull: properly install the bundle2 par generator
@@ -169,26 +249,31 @@
 - graft: avoid potential deadlock (acquires wlock before lock)
 
 5.1.2 -- 2015-04-01
+-------------------
 
 - evolve: prevent a crash in httpclient_pushobsmarkers() when pushing
 
 5.1.1 -- 2015-03-05
+-------------------
 
 - debugobsconvert: fix invalid markers during conversion
 - discovery: cache some of the obs hash computation to improve performance (issue4518)
 - revset: fix some crash with (issue4515)
 
 5.1 -- 2015-01-30
+-------------------
 
 - evolve: explicitly disable bookmark on evolve (issue4432)
 - evolve: don't abort Mercurial on version mismatch
 - compatibility with mercurial 3.3
 
 5.0.2 -- 2014-12-14
+-------------------
 
 - evolve: remove dependency to the rebase extension
 
 5.0.1 -- 2014-11-25
+-------------------
 
 - amend: fix --logfile argument
 - evolve: preserve branch change when evolving
@@ -199,9 +284,8 @@
 - evolve: make next/prev only move bookmarks optionally
 - evolve: tell user which "base of divergent changeset" is not found
 
-
-
 5.0.0 -- 2014-10-22
+-------------------
 
 - drop compat with Mercurial pre 3.2
 - uncommit: add a --rev argument
@@ -217,6 +301,7 @@
 
 
 4.1.0 -- 2014-08-08
+-------------------
 
 - amend: add -D/--current-date option
 - amend: add -U/--current-user option
@@ -230,10 +315,12 @@
   `experimental.verbose-obsolescence-exchange` variable (default to False).
 
 4.0.1 -- 2014-08-08
+-------------------
 
 - createmarkers() accept an iterable (for compat with other extension)
 
 4.0.0 -- 2014-06-03
+-------------------
 
 - require Mercurial version 3.0.1 or above
 - some compatibility fixes with future 3.1.0
@@ -247,13 +334,16 @@
   - added multiple output during obsolescence markers exchange
   - only push markers relevant to pushed subset
   - add a new experimental way to exchange marker (when server support):
+
     - added progress when pulling obsmarkers
     - only pull markers relevant to pulled subset
     - avoid exchanging common markers in some case
     - use bundle2 as transport when available.
+
  - add a hook related to the new commands
 
 3.3.2 -- 2014-05-14
+-------------------
 
 - fix a bug where evolve were creating changeset with 2 parents on windows
   (fix issues #16, #35 and #42)
@@ -263,6 +353,7 @@
 - fold: add squash as an alias
 
 3.3.1 -- 2014-04-23
+-------------------
 
 - various language fix
 - active bookmark now move when using prev/next (#37)
@@ -271,6 +362,7 @@
 - fold: enable --date and --user options
 
 3.3.0 -- 2014-03-04
+-------------------
 
 - raise Mercurial's minimal requirement to 2.7
 - drop `latercomer` and `conflicting` compatibility. Those old alias are
@@ -283,6 +375,7 @@
 - report troubles creation from `hg import`
 
 3.2.0 -- 2013-11-15
+-------------------
 
 - conform to the Mercurial custom of lowercase messages
 - added a small extension to experiment with obsolescence marker push
@@ -296,6 +389,7 @@
 - Tested with 2.6, 2.7 and 2.8
 
 3.1.0 -- 2013-02-11
+-------------------
 
 - amend: drop deprecated --change option for amend
 - alias: add a grab alias to be used instead of graft -O
@@ -307,23 +401,28 @@
 - prune: add -u and -d option to control metadata
 
 3.0.0 -- 2013-02-02
+-------------------
 
 - compatibility with 2.5
 
 2.2.0 --
+-------------------
 
 - make evolve smarter at picking next troubled to solved without --any
 
 2.1.0 -- 2012-12-03
+-------------------
 
 - qsync fixes
 - have qfold ask for commit message
 
 2.0.0 -- 2012-10-26
+-------------------
 
 - compat with mercurial 2.4
 
 1.1.0 -- 2012-10-26
+-------------------
 
 - fix troubles creation reporting from rebase
 - rename latecomer to bumped
@@ -331,6 +430,7 @@
 - smarter divergent handling
 
 1.0.2 -- 2012-09-19
+-------------------
 
 - fix hg fold bug
 - fix hg pull --rebase
@@ -338,11 +438,13 @@
 - adapt to core movement (caches and --amend)
 
 1.0.1 -- 2012-08-31
+-------------------
 
 - documentation improvement
 - fix a performance bug with hgweb
 
 1.0 -- 2012-08-29
+-------------------
 
 - Align with Mercurial version 2.3 (drop 2.2 support).
 - stabilize handle killed parent
@@ -363,6 +465,7 @@
 
 
 0.7 -- 2012-08-06
+-------------------
 
 - hook: work around insanely huge value in obsolete pushkey call
 - pushkey: properly handle abort during obsolete markers push
@@ -374,12 +477,14 @@
 - evolve: graft --continue is optional, test
 
 0.6 -- 2012-07-31
+-------------------
 
 - obsolete: change warning output to match mercurial core on
 - qsync: ignore nonexistent nodes
 - make compat server both compatible with "dump" and "dump%i" version
 
 0.5 -- 2012-07-16
+-------------------
 
 - obsolete: Detect conflicting changeset!
 - obsolete: adapt to core: marker are written in transaction now
@@ -389,12 +494,14 @@
 
 
 0.4.1 -- 2012-07-10
+-------------------
 
 - [convert] properly exclude null successors from conversion
 - Ignore buggy marker in newerversion
 
 
 0.4.0 -- 2012-07-06
+-------------------
 
 - obsolete: public changeset are no longer latecomer.
 - obsolete: move to official binary format
@@ -402,6 +509,7 @@
 - obsolete: we are not compatible with 2.1 any more
 
 0.3.0 -- 2012-06-27
+-------------------
 
 - obsolete:  Add "latecomer" error detection (stabilize does not handle resolution yet)
 - evolve:    Introduce a new `uncommit` command to remove change from a changeset
@@ -415,6 +523,7 @@
 - template:  add an {obsolete} keyword
 
 0.2.0 -- 2012-06-20
+-------------------
 
 - stabilize: improve choice of the next changeset to stabilize
 - stabilize: improve resolution of several corner case
@@ -422,5 +531,3 @@
 - rebase:    handle --collapse
 - evolve:   add `obsolete` alias to `kill`
 - evolve:   add `evolve` alias to `stabilize`
-
-