README
author Pulkit Goyal <7895pulkit@gmail.com>
Mon, 22 Jan 2018 18:52:27 +0530
changeset 3490 51c0a23b519e
parent 3071 472a67075756
child 3766 6352dc395ebf
permissions -rw-r--r--
evolve: handle case when newnode can be None while continuing evolve There can be case when `hg evolve --continue` is run, when working directory is clean and there is nothing to be included in the new commit. Let's make sure we handle such cases correctly and obsolete the node which is evolved with parent of wdir as successor. This is same as what rebase does.
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
560
4580ff7157ae fix readme header
Pierre-Yves David <pierre-yves.david@logilab.fr>
parents: 556
diff changeset
     1
=============================
33
dca86448d736 Add some doc.
Pierre-Yves David <pierre-yves.david@logilab.fr>
parents:
diff changeset
     2
Mutable History For Mercurial
dca86448d736 Add some doc.
Pierre-Yves David <pierre-yves.david@logilab.fr>
parents:
diff changeset
     3
=============================
dca86448d736 Add some doc.
Pierre-Yves David <pierre-yves.david@logilab.fr>
parents:
diff changeset
     4
2095
1c6bb9c117fc README: rework install instruction
Pierre-Yves David <pierre-yves.david@ens-lyon.org>
parents: 2094
diff changeset
     5
Evolve Extension
1c6bb9c117fc README: rework install instruction
Pierre-Yves David <pierre-yves.david@ens-lyon.org>
parents: 2094
diff changeset
     6
=================
1c6bb9c117fc README: rework install instruction
Pierre-Yves David <pierre-yves.david@ens-lyon.org>
parents: 2094
diff changeset
     7
2094
e906723ab99f README: rework the intro
Pierre-Yves David <pierre-yves.david@ens-lyon.org>
parents: 2075
diff changeset
     8
This package supplies the ``evolve`` extension for Mercurial,
e906723ab99f README: rework the intro
Pierre-Yves David <pierre-yves.david@ens-lyon.org>
parents: 2075
diff changeset
     9
e906723ab99f README: rework the intro
Pierre-Yves David <pierre-yves.david@ens-lyon.org>
parents: 2075
diff changeset
    10
**The full implementation of the changeset evolution concept is still in
2099
47017b3086d4 README: more update to prepare for pypi upload
Pierre-Yves David <pierre-yves.david@ens-lyon.org>
parents: 2097
diff changeset
    11
progress.**  Please subscribe to the `evolve-testers mailing list
47017b3086d4 README: more update to prepare for pypi upload
Pierre-Yves David <pierre-yves.david@ens-lyon.org>
parents: 2097
diff changeset
    12
<https://www.mercurial-scm.org/mailman/listinfo/evolve-testers>`_ to stay up to
47017b3086d4 README: more update to prepare for pypi upload
Pierre-Yves David <pierre-yves.david@ens-lyon.org>
parents: 2097
diff changeset
    13
date with changes.
2094
e906723ab99f README: rework the intro
Pierre-Yves David <pierre-yves.david@ens-lyon.org>
parents: 2075
diff changeset
    14
2102
e243e1d9464c README: timeless typo fixes
Pierre-Yves David <pierre-yves.david@ens-lyon.org>
parents: 2099
diff changeset
    15
This extension:
33
dca86448d736 Add some doc.
Pierre-Yves David <pierre-yves.david@logilab.fr>
parents:
diff changeset
    16
2102
e243e1d9464c README: timeless typo fixes
Pierre-Yves David <pierre-yves.david@ens-lyon.org>
parents: 2099
diff changeset
    17
* enables the “changeset evolution” feature of Mercurial core,
2097
c99e926d465a README: more change to have a pretty rendering on pypi
Pierre-Yves David <pierre-yves.david@ens-lyon.org>
parents: 2095
diff changeset
    18
c99e926d465a README: more change to have a pretty rendering on pypi
Pierre-Yves David <pierre-yves.david@ens-lyon.org>
parents: 2095
diff changeset
    19
* provides a set of commands to mutate your history,
2094
e906723ab99f README: rework the intro
Pierre-Yves David <pierre-yves.david@ens-lyon.org>
parents: 2075
diff changeset
    20
2097
c99e926d465a README: more change to have a pretty rendering on pypi
Pierre-Yves David <pierre-yves.david@ens-lyon.org>
parents: 2095
diff changeset
    21
* issues several warning messages when troubles from some mutable appears in
c99e926d465a README: more change to have a pretty rendering on pypi
Pierre-Yves David <pierre-yves.david@ens-lyon.org>
parents: 2095
diff changeset
    22
  your repository,
c99e926d465a README: more change to have a pretty rendering on pypi
Pierre-Yves David <pierre-yves.david@ens-lyon.org>
parents: 2095
diff changeset
    23
2102
e243e1d9464c README: timeless typo fixes
Pierre-Yves David <pierre-yves.david@ens-lyon.org>
parents: 2099
diff changeset
    24
* provides an ``hg evolve`` command to deal with such "troubles",
2099
47017b3086d4 README: more update to prepare for pypi upload
Pierre-Yves David <pierre-yves.david@ens-lyon.org>
parents: 2097
diff changeset
    25
2102
e243e1d9464c README: timeless typo fixes
Pierre-Yves David <pierre-yves.david@ens-lyon.org>
parents: 2099
diff changeset
    26
* improves performance of obsolescence marker exchanges and discovery during
2099
47017b3086d4 README: more update to prepare for pypi upload
Pierre-Yves David <pierre-yves.david@ens-lyon.org>
parents: 2097
diff changeset
    27
  push and pull.
293
232990fbecb5 [doc] update readme
Pierre-Yves David <pierre-yves.david@logilab.fr>
parents: 267
diff changeset
    28
2097
c99e926d465a README: more change to have a pretty rendering on pypi
Pierre-Yves David <pierre-yves.david@ens-lyon.org>
parents: 2095
diff changeset
    29
Documentation
c99e926d465a README: more change to have a pretty rendering on pypi
Pierre-Yves David <pierre-yves.david@ens-lyon.org>
parents: 2095
diff changeset
    30
-------------
c99e926d465a README: more change to have a pretty rendering on pypi
Pierre-Yves David <pierre-yves.david@ens-lyon.org>
parents: 2095
diff changeset
    31
c99e926d465a README: more change to have a pretty rendering on pypi
Pierre-Yves David <pierre-yves.david@ens-lyon.org>
parents: 2095
diff changeset
    32
We recommend reading the documentation first. An online version is
c99e926d465a README: more change to have a pretty rendering on pypi
Pierre-Yves David <pierre-yves.david@ens-lyon.org>
parents: 2095
diff changeset
    33
available here:
33
dca86448d736 Add some doc.
Pierre-Yves David <pierre-yves.david@logilab.fr>
parents:
diff changeset
    34
2097
c99e926d465a README: more change to have a pretty rendering on pypi
Pierre-Yves David <pierre-yves.david@ens-lyon.org>
parents: 2095
diff changeset
    35
    https://www.mercurial-scm.org/doc/evolution/
33
dca86448d736 Add some doc.
Pierre-Yves David <pierre-yves.david@logilab.fr>
parents:
diff changeset
    36
2097
c99e926d465a README: more change to have a pretty rendering on pypi
Pierre-Yves David <pierre-yves.david@ens-lyon.org>
parents: 2095
diff changeset
    37
How to Install
c99e926d465a README: more change to have a pretty rendering on pypi
Pierre-Yves David <pierre-yves.david@ens-lyon.org>
parents: 2095
diff changeset
    38
==============
c99e926d465a README: more change to have a pretty rendering on pypi
Pierre-Yves David <pierre-yves.david@ens-lyon.org>
parents: 2095
diff changeset
    39
c99e926d465a README: more change to have a pretty rendering on pypi
Pierre-Yves David <pierre-yves.david@ens-lyon.org>
parents: 2095
diff changeset
    40
Using Pip
c99e926d465a README: more change to have a pretty rendering on pypi
Pierre-Yves David <pierre-yves.david@ens-lyon.org>
parents: 2095
diff changeset
    41
---------
2095
1c6bb9c117fc README: rework install instruction
Pierre-Yves David <pierre-yves.david@ens-lyon.org>
parents: 2094
diff changeset
    42
1c6bb9c117fc README: rework install instruction
Pierre-Yves David <pierre-yves.david@ens-lyon.org>
parents: 2094
diff changeset
    43
You can install the latest evolution version usin pip::
324
ff070b9e22ef readme: explain "instalation process"
Pierre-Yves David <pierre-yves.david@logilab.fr>
parents: 293
diff changeset
    44
2095
1c6bb9c117fc README: rework install instruction
Pierre-Yves David <pierre-yves.david@ens-lyon.org>
parents: 2094
diff changeset
    45
    $ pip install --user hg-evolve
1c6bb9c117fc README: rework install instruction
Pierre-Yves David <pierre-yves.david@ens-lyon.org>
parents: 2094
diff changeset
    46
1c6bb9c117fc README: rework install instruction
Pierre-Yves David <pierre-yves.david@ens-lyon.org>
parents: 2094
diff changeset
    47
Then just enable it in you hgrc::
1c6bb9c117fc README: rework install instruction
Pierre-Yves David <pierre-yves.david@ens-lyon.org>
parents: 2094
diff changeset
    48
1c6bb9c117fc README: rework install instruction
Pierre-Yves David <pierre-yves.david@ens-lyon.org>
parents: 2094
diff changeset
    49
    $ hg config --edit # adds the two line below:
1c6bb9c117fc README: rework install instruction
Pierre-Yves David <pierre-yves.david@ens-lyon.org>
parents: 2094
diff changeset
    50
    [extensions]
1c6bb9c117fc README: rework install instruction
Pierre-Yves David <pierre-yves.david@ens-lyon.org>
parents: 2094
diff changeset
    51
    evolve =
33
dca86448d736 Add some doc.
Pierre-Yves David <pierre-yves.david@logilab.fr>
parents:
diff changeset
    52
2097
c99e926d465a README: more change to have a pretty rendering on pypi
Pierre-Yves David <pierre-yves.david@ens-lyon.org>
parents: 2095
diff changeset
    53
From Source
c99e926d465a README: more change to have a pretty rendering on pypi
Pierre-Yves David <pierre-yves.david@ens-lyon.org>
parents: 2095
diff changeset
    54
-----------
739
dcda64966616 README: polish the language so it reads better
Greg Ward <greg@gerg.ca>
parents: 738
diff changeset
    55
2095
1c6bb9c117fc README: rework install instruction
Pierre-Yves David <pierre-yves.david@ens-lyon.org>
parents: 2094
diff changeset
    56
To install a local version from source::
1c6bb9c117fc README: rework install instruction
Pierre-Yves David <pierre-yves.david@ens-lyon.org>
parents: 2094
diff changeset
    57
1c6bb9c117fc README: rework install instruction
Pierre-Yves David <pierre-yves.david@ens-lyon.org>
parents: 2094
diff changeset
    58
    $ hg clone https://www.mercurial-scm.org/repo/evolve/
1c6bb9c117fc README: rework install instruction
Pierre-Yves David <pierre-yves.david@ens-lyon.org>
parents: 2094
diff changeset
    59
    $ cd evolve
2113
fed5369058a4 README: remove mention of make
Pierre-Yves David <pierre-yves.david@ens-lyon.org>
parents: 2102
diff changeset
    60
    $ pip install --user .
2020
143c8e4dc22d topic: merge the topic extension in the evolve repository
Pierre-Yves David <pierre-yves.david@ens-lyon.org>
parents: 1824
diff changeset
    61
2095
1c6bb9c117fc README: rework install instruction
Pierre-Yves David <pierre-yves.david@ens-lyon.org>
parents: 2094
diff changeset
    62
Then just enable it in you hgrc::
1c6bb9c117fc README: rework install instruction
Pierre-Yves David <pierre-yves.david@ens-lyon.org>
parents: 2094
diff changeset
    63
1c6bb9c117fc README: rework install instruction
Pierre-Yves David <pierre-yves.david@ens-lyon.org>
parents: 2094
diff changeset
    64
    $ hg config --edit # adds the two line below:
1c6bb9c117fc README: rework install instruction
Pierre-Yves David <pierre-yves.david@ens-lyon.org>
parents: 2094
diff changeset
    65
    [extensions]
1c6bb9c117fc README: rework install instruction
Pierre-Yves David <pierre-yves.david@ens-lyon.org>
parents: 2094
diff changeset
    66
    evolve =
1c6bb9c117fc README: rework install instruction
Pierre-Yves David <pierre-yves.david@ens-lyon.org>
parents: 2094
diff changeset
    67
1c6bb9c117fc README: rework install instruction
Pierre-Yves David <pierre-yves.david@ens-lyon.org>
parents: 2094
diff changeset
    68
Documentation lives in ``doc/``.
1c6bb9c117fc README: rework install instruction
Pierre-Yves David <pierre-yves.david@ens-lyon.org>
parents: 2094
diff changeset
    69
2114
51ee2c721b32 README: tries to improve the title about server only
Pierre-Yves David <pierre-yves.david@ens-lyon.org>
parents: 2113
diff changeset
    70
Server Only Setup
51ee2c721b32 README: tries to improve the title about server only
Pierre-Yves David <pierre-yves.david@ens-lyon.org>
parents: 2113
diff changeset
    71
=================
2020
143c8e4dc22d topic: merge the topic extension in the evolve repository
Pierre-Yves David <pierre-yves.david@ens-lyon.org>
parents: 1824
diff changeset
    72
2099
47017b3086d4 README: more update to prepare for pypi upload
Pierre-Yves David <pierre-yves.david@ens-lyon.org>
parents: 2097
diff changeset
    73
It is possible to enable a smaller subset of the extensions aimed at server
47017b3086d4 README: more update to prepare for pypi upload
Pierre-Yves David <pierre-yves.david@ens-lyon.org>
parents: 2097
diff changeset
    74
serving repository. It skips the additions of the new commands and local UI
47017b3086d4 README: more update to prepare for pypi upload
Pierre-Yves David <pierre-yves.david@ens-lyon.org>
parents: 2097
diff changeset
    75
messages that might add performance overheads. To use the server only
47017b3086d4 README: more update to prepare for pypi upload
Pierre-Yves David <pierre-yves.david@ens-lyon.org>
parents: 2097
diff changeset
    76
extension, install the package and use::
2095
1c6bb9c117fc README: rework install instruction
Pierre-Yves David <pierre-yves.david@ens-lyon.org>
parents: 2094
diff changeset
    77
1c6bb9c117fc README: rework install instruction
Pierre-Yves David <pierre-yves.david@ens-lyon.org>
parents: 2094
diff changeset
    78
    $ hg config --edit # adds the two line below:
2020
143c8e4dc22d topic: merge the topic extension in the evolve repository
Pierre-Yves David <pierre-yves.david@ens-lyon.org>
parents: 1824
diff changeset
    79
    [extensions]
2099
47017b3086d4 README: more update to prepare for pypi upload
Pierre-Yves David <pierre-yves.david@ens-lyon.org>
parents: 2097
diff changeset
    80
    evolve.serveronly =
2020
143c8e4dc22d topic: merge the topic extension in the evolve repository
Pierre-Yves David <pierre-yves.david@ens-lyon.org>
parents: 1824
diff changeset
    81
143c8e4dc22d topic: merge the topic extension in the evolve repository
Pierre-Yves David <pierre-yves.david@ens-lyon.org>
parents: 1824
diff changeset
    82
2097
c99e926d465a README: more change to have a pretty rendering on pypi
Pierre-Yves David <pierre-yves.david@ens-lyon.org>
parents: 2095
diff changeset
    83
How to Contribute
c99e926d465a README: more change to have a pretty rendering on pypi
Pierre-Yves David <pierre-yves.david@ens-lyon.org>
parents: 2095
diff changeset
    84
=================
238
b5d9841defc8 more read me update
Pierre-Yves David <pierre-yves.david@ens-lyon.org>
parents: 237
diff changeset
    85
2099
47017b3086d4 README: more update to prepare for pypi upload
Pierre-Yves David <pierre-yves.david@ens-lyon.org>
parents: 2097
diff changeset
    86
Bugs are to be reported on the mercurial's bug tracker (component: `evolution`_):
47017b3086d4 README: more update to prepare for pypi upload
Pierre-Yves David <pierre-yves.david@ens-lyon.org>
parents: 2097
diff changeset
    87
47017b3086d4 README: more update to prepare for pypi upload
Pierre-Yves David <pierre-yves.david@ens-lyon.org>
parents: 2097
diff changeset
    88
.. _evolution: https://bz.mercurial-scm.org/buglist.cgi?component=evolution&query_format=advanced&resolution=---
1182
15492cea54e9 readme: add a reference to the bugtracker in the contribute section
Pierre-Yves David <pierre-yves.david@fb.com>
parents: 1175
diff changeset
    89
2115
53fe0a1c9d4c README: add a link to mercurial devel
Pierre-Yves David <pierre-yves.david@ens-lyon.org>
parents: 2114
diff changeset
    90
Please use the patchbomb extension to send email to `mercurial devel
53fe0a1c9d4c README: add a link to mercurial devel
Pierre-Yves David <pierre-yves.david@ens-lyon.org>
parents: 2114
diff changeset
    91
<https://www.mercurial-scm.org/mailman/listinfo/mercurial-devel>`_. Please make
53fe0a1c9d4c README: add a link to mercurial devel
Pierre-Yves David <pierre-yves.david@ens-lyon.org>
parents: 2114
diff changeset
    92
sure to use the evolve-ext flag when doing so. You can use a command like
2097
c99e926d465a README: more change to have a pretty rendering on pypi
Pierre-Yves David <pierre-yves.david@ens-lyon.org>
parents: 2095
diff changeset
    93
this::
1000
8043ae3612e4 readme: mention patchbomb usage and patch description guidelines on wiki
Faheem Mitha <faheem@faheem.info>
parents: 987
diff changeset
    94
2097
c99e926d465a README: more change to have a pretty rendering on pypi
Pierre-Yves David <pierre-yves.david@ens-lyon.org>
parents: 2095
diff changeset
    95
    $ hg email --to mercurial-devel@mercurial-scm.org --flag evolve-ext --rev '<your patches>'
1000
8043ae3612e4 readme: mention patchbomb usage and patch description guidelines on wiki
Faheem Mitha <faheem@faheem.info>
parents: 987
diff changeset
    96
2099
47017b3086d4 README: more update to prepare for pypi upload
Pierre-Yves David <pierre-yves.david@ens-lyon.org>
parents: 2097
diff changeset
    97
For guidelines on the patch description, see the `official Mercurial guideline`_.
47017b3086d4 README: more update to prepare for pypi upload
Pierre-Yves David <pierre-yves.david@ens-lyon.org>
parents: 2097
diff changeset
    98
47017b3086d4 README: more update to prepare for pypi upload
Pierre-Yves David <pierre-yves.david@ens-lyon.org>
parents: 2097
diff changeset
    99
.. _`official Mercurial guideline`: https://mercurial-scm.org/wiki/ContributingChanges#Patch_descriptions
1000
8043ae3612e4 readme: mention patchbomb usage and patch description guidelines on wiki
Faheem Mitha <faheem@faheem.info>
parents: 987
diff changeset
   100
8043ae3612e4 readme: mention patchbomb usage and patch description guidelines on wiki
Faheem Mitha <faheem@faheem.info>
parents: 987
diff changeset
   101
Please don't forget to update and run the tests when you fix a bug or
1526
c2a772ade409 README: update instructions for running tests.
Greg Ward <greg@gerg.ca>
parents: 1519
diff changeset
   102
add a feature. To run the tests, you need a working copy of Mercurial,
2097
c99e926d465a README: more change to have a pretty rendering on pypi
Pierre-Yves David <pierre-yves.david@ens-lyon.org>
parents: 2095
diff changeset
   103
say in $HGSRC::
926
14d91c36f88b README: document how to run the tests
Greg Ward <greg@gerg.ca>
parents: 924
diff changeset
   104
2097
c99e926d465a README: more change to have a pretty rendering on pypi
Pierre-Yves David <pierre-yves.david@ens-lyon.org>
parents: 2095
diff changeset
   105
    $ cd tests
c99e926d465a README: more change to have a pretty rendering on pypi
Pierre-Yves David <pierre-yves.david@ens-lyon.org>
parents: 2095
diff changeset
   106
    $ python $HGSRC/tests/run-tests.py
1526
c2a772ade409 README: update instructions for running tests.
Greg Ward <greg@gerg.ca>
parents: 1519
diff changeset
   107
2537
4a467331ec79 readme: clarify the branch policy
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 2535
diff changeset
   108
Branch policy
4a467331ec79 readme: clarify the branch policy
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 2535
diff changeset
   109
-------------
4a467331ec79 readme: clarify the branch policy
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 2535
diff changeset
   110
4a467331ec79 readme: clarify the branch policy
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 2535
diff changeset
   111
The evolve test are highly impacted by changes in core. To deal with this, we use named branches.
4a467331ec79 readme: clarify the branch policy
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 2535
diff changeset
   112
4a467331ec79 readme: clarify the branch policy
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 2535
diff changeset
   113
There are two main branches: "stable" and "default". Tests on these branch are
4a467331ec79 readme: clarify the branch policy
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 2535
diff changeset
   114
supposed to pass with the corresponding "default" and "stable" branch from core
2538
2b2addb23e96 packaging: mark as version 6.3.1.dev
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 2537
diff changeset
   115
Mercurial. The documentation is built from the tip of stable.
2537
4a467331ec79 readme: clarify the branch policy
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 2535
diff changeset
   116
4a467331ec79 readme: clarify the branch policy
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 2535
diff changeset
   117
In addition, we have compatibility branches to check tests on older version of
4a467331ec79 readme: clarify the branch policy
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 2535
diff changeset
   118
Mercurial. They are the "mercurial-x.y" branches. They are used to apply
4a467331ec79 readme: clarify the branch policy
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 2535
diff changeset
   119
expected test change only, no code change should happen there.