README
author Joerg Sonnenberger <joerg@bec.de>
Sun, 03 May 2020 01:01:19 +0200
changeset 5332 2570d2d4a268
parent 5195 85640f1feced
permissions -rw-r--r--
caches: preserve permissions of top-level .hg When using hg on a shared filesystem on UNIX, cache files normally inherit the permissions of the .hg directory. This is most commonly used to ensure everything is writable by all users. The sqlite3 cache files don't have a way to directly set the permission, so check if a special mode is necessary and try to apply them to newly created database files.
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
4877
77e5c733200a py3: remove smartquotes from README
Ian Moody <moz-ian@perix.co.uk>
parents: 4818
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
4046
669b32100eca readme: document the purpose of the evolve extension
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 4042
diff changeset
    82
Extension Purpose
669b32100eca readme: document the purpose of the evolve extension
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 4042
diff changeset
    83
=================
669b32100eca readme: document the purpose of the evolve extension
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 4042
diff changeset
    84
669b32100eca readme: document the purpose of the evolve extension
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 4042
diff changeset
    85
The goal of this extension is to provide an appropriate place for code and
669b32100eca readme: document the purpose of the evolve extension
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 4042
diff changeset
    86
concept related to changeset evolution to mature. In this extension we allow
669b32100eca readme: document the purpose of the evolve extension
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 4042
diff changeset
    87
for hackier code, unlocking quick experimentation and faster iterations.
669b32100eca readme: document the purpose of the evolve extension
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 4042
diff changeset
    88
669b32100eca readme: document the purpose of the evolve extension
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 4042
diff changeset
    89
In addition, the evolve extensions support a wider set of Mercurial version,
669b32100eca readme: document the purpose of the evolve extension
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 4042
diff changeset
    90
allowing us to reach a larger user base for feedback. The Evolve extension is
669b32100eca readme: document the purpose of the evolve extension
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 4042
diff changeset
    91
not tight to the Mercurial release cycle and can release new feature and bug
669b32100eca readme: document the purpose of the evolve extension
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 4042
diff changeset
    92
fix at a higher rate if necessary.
669b32100eca readme: document the purpose of the evolve extension
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 4042
diff changeset
    93
669b32100eca readme: document the purpose of the evolve extension
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 4042
diff changeset
    94
Once a concept is ready enough, its implementation is moved into Mercurial
669b32100eca readme: document the purpose of the evolve extension
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 4042
diff changeset
    95
core. The maturation period helped us to get a clearer picture of what was
669b32100eca readme: document the purpose of the evolve extension
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 4042
diff changeset
    96
needed. During the upstreaming process, we can use this clearer picture to
669b32100eca readme: document the purpose of the evolve extension
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 4042
diff changeset
    97
clean up the code and upgrade it to an appropriate quality for Mercurial core.
2020
143c8e4dc22d topic: merge the topic extension in the evolve repository
Pierre-Yves David <pierre-yves.david@ens-lyon.org>
parents: 1824
diff changeset
    98
4818
bce578f9012f python3: mention beta Python 3 support in README
Raphaël Gomès <rgomes@octobus.net>
parents: 4814
diff changeset
    99
Python 3 support
bce578f9012f python3: mention beta Python 3 support in README
Raphaël Gomès <rgomes@octobus.net>
parents: 4814
diff changeset
   100
================
bce578f9012f python3: mention beta Python 3 support in README
Raphaël Gomès <rgomes@octobus.net>
parents: 4814
diff changeset
   101
bce578f9012f python3: mention beta Python 3 support in README
Raphaël Gomès <rgomes@octobus.net>
parents: 4814
diff changeset
   102
Mercurial announced beta support for Python 3 starting with its 5.0 release.
bce578f9012f python3: mention beta Python 3 support in README
Raphaël Gomès <rgomes@octobus.net>
parents: 4814
diff changeset
   103
Since 9.1.0, ``evolve`` has beta support for Python 3.6+.
bce578f9012f python3: mention beta Python 3 support in README
Raphaël Gomès <rgomes@octobus.net>
parents: 4814
diff changeset
   104
bce578f9012f python3: mention beta Python 3 support in README
Raphaël Gomès <rgomes@octobus.net>
parents: 4814
diff changeset
   105
Support will stay in beta while Mercurial's support for Python 3 remains in
bce578f9012f python3: mention beta Python 3 support in README
Raphaël Gomès <rgomes@octobus.net>
parents: 4814
diff changeset
   106
beta and until it is a bit more battle-tested.
bce578f9012f python3: mention beta Python 3 support in README
Raphaël Gomès <rgomes@octobus.net>
parents: 4814
diff changeset
   107
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
   108
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
   109
=================
238
b5d9841defc8 more read me update
Pierre-Yves David <pierre-yves.david@ens-lyon.org>
parents: 237
diff changeset
   110
3766
6352dc395ebf evolve: update the readme with more information about contribution
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 3071
diff changeset
   111
Discussion happens on the #hg-evolve IRC on freenode_.
6352dc395ebf evolve: update the readme with more information about contribution
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 3071
diff changeset
   112
6352dc395ebf evolve: update the readme with more information about contribution
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 3071
diff changeset
   113
.. _freenode: https://freenode.net/
6352dc395ebf evolve: update the readme with more information about contribution
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 3071
diff changeset
   114
2099
47017b3086d4 README: more update to prepare for pypi upload
Pierre-Yves David <pierre-yves.david@ens-lyon.org>
parents: 2097
diff changeset
   115
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
   116
47017b3086d4 README: more update to prepare for pypi upload
Pierre-Yves David <pierre-yves.david@ens-lyon.org>
parents: 2097
diff changeset
   117
.. _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
   118
4922
dacbd20b2f72 readme: update contribution guide
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 4877
diff changeset
   119
The recommended way is to create Merge Request on
5138
b8b234123fe6 readme: update heptapod link
Anton Shestakov <av6@dwimlabs.net>
parents: 5116
diff changeset
   120
https://foss.heptapod.net/mercurial/evolve. To do so, create an account and
4922
dacbd20b2f72 readme: update contribution guide
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 4877
diff changeset
   121
request access. You'll then be able to create topic based merge request.
dacbd20b2f72 readme: update contribution guide
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 4877
diff changeset
   122
dacbd20b2f72 readme: update contribution guide
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 4877
diff changeset
   123
Alternatively, you can use the patchbomb extension to send email to `mercurial
dacbd20b2f72 readme: update contribution guide
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 4877
diff changeset
   124
devel <https://www.mercurial-scm.org/mailman/listinfo/mercurial-devel>`_.
dacbd20b2f72 readme: update contribution guide
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 4877
diff changeset
   125
Please make sure to use the evolve-ext flag when doing so. You can use a
dacbd20b2f72 readme: update contribution guide
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 4877
diff changeset
   126
command like this::
1000
8043ae3612e4 readme: mention patchbomb usage and patch description guidelines on wiki
Faheem Mitha <faheem@faheem.info>
parents: 987
diff changeset
   127
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
   128
    $ 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
   129
3766
6352dc395ebf evolve: update the readme with more information about contribution
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 3071
diff changeset
   130
2099
47017b3086d4 README: more update to prepare for pypi upload
Pierre-Yves David <pierre-yves.david@ens-lyon.org>
parents: 2097
diff changeset
   131
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
   132
47017b3086d4 README: more update to prepare for pypi upload
Pierre-Yves David <pierre-yves.david@ens-lyon.org>
parents: 2097
diff changeset
   133
.. _`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
   134
8043ae3612e4 readme: mention patchbomb usage and patch description guidelines on wiki
Faheem Mitha <faheem@faheem.info>
parents: 987
diff changeset
   135
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
   136
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
   137
say in $HGSRC::
926
14d91c36f88b README: document how to run the tests
Greg Ward <greg@gerg.ca>
parents: 924
diff changeset
   138
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
   139
    $ 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
   140
    $ python $HGSRC/tests/run-tests.py
1526
c2a772ade409 README: update instructions for running tests.
Greg Ward <greg@gerg.ca>
parents: 1519
diff changeset
   141
5195
85640f1feced readme: mention compat string format
Anton Shestakov <av6@dwimlabs.net>
parents: 5194
diff changeset
   142
When certain blocks of code need to cope with API changes in core Mercurial,
85640f1feced readme: mention compat string format
Anton Shestakov <av6@dwimlabs.net>
parents: 5194
diff changeset
   143
they should have comments in the ``hg <= x.y (commit hash)`` format. For
85640f1feced readme: mention compat string format
Anton Shestakov <av6@dwimlabs.net>
parents: 5194
diff changeset
   144
example, if a function needs another code path because of changes introduced in
85640f1feced readme: mention compat string format
Anton Shestakov <av6@dwimlabs.net>
parents: 5194
diff changeset
   145
02802fa87b74 that was first included in Mercurial 5.3, then the comment should
85640f1feced readme: mention compat string format
Anton Shestakov <av6@dwimlabs.net>
parents: 5194
diff changeset
   146
be::
85640f1feced readme: mention compat string format
Anton Shestakov <av6@dwimlabs.net>
parents: 5194
diff changeset
   147
85640f1feced readme: mention compat string format
Anton Shestakov <av6@dwimlabs.net>
parents: 5194
diff changeset
   148
    # hg <= 5.2 (02802fa87b74)
85640f1feced readme: mention compat string format
Anton Shestakov <av6@dwimlabs.net>
parents: 5194
diff changeset
   149
85640f1feced readme: mention compat string format
Anton Shestakov <av6@dwimlabs.net>
parents: 5194
diff changeset
   150
See also tests/test-check-compat-strings.t.
85640f1feced readme: mention compat string format
Anton Shestakov <av6@dwimlabs.net>
parents: 5194
diff changeset
   151
2537
4a467331ec79 readme: clarify the branch policy
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 2535
diff changeset
   152
Branch policy
4a467331ec79 readme: clarify the branch policy
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 2535
diff changeset
   153
-------------
4a467331ec79 readme: clarify the branch policy
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 2535
diff changeset
   154
5194
f478ac0a818f readme: copywrite the section about branch policy, wrap long lines
Anton Shestakov <av6@dwimlabs.net>
parents: 5138
diff changeset
   155
The evolve tests are highly impacted by changes in core. To deal with this, we
f478ac0a818f readme: copywrite the section about branch policy, wrap long lines
Anton Shestakov <av6@dwimlabs.net>
parents: 5138
diff changeset
   156
use named branches.
2537
4a467331ec79 readme: clarify the branch policy
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 2535
diff changeset
   157
5194
f478ac0a818f readme: copywrite the section about branch policy, wrap long lines
Anton Shestakov <av6@dwimlabs.net>
parents: 5138
diff changeset
   158
There are two main branches: "stable" and "default". Tests on these branches
f478ac0a818f readme: copywrite the section about branch policy, wrap long lines
Anton Shestakov <av6@dwimlabs.net>
parents: 5138
diff changeset
   159
are supposed to pass with the corresponding "default" and "stable" branch from
f478ac0a818f readme: copywrite the section about branch policy, wrap long lines
Anton Shestakov <av6@dwimlabs.net>
parents: 5138
diff changeset
   160
core 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
   161
5194
f478ac0a818f readme: copywrite the section about branch policy, wrap long lines
Anton Shestakov <av6@dwimlabs.net>
parents: 5138
diff changeset
   162
In addition, we have compatibility branches to check tests on older versions of
2537
4a467331ec79 readme: clarify the branch policy
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 2535
diff changeset
   163
Mercurial. They are the "mercurial-x.y" branches. They are used to apply
5194
f478ac0a818f readme: copywrite the section about branch policy, wrap long lines
Anton Shestakov <av6@dwimlabs.net>
parents: 5138
diff changeset
   164
expected test changes only, no code changes should happen there.
4042
75e4c451b753 readme: document the tag we use on output change
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 3766
diff changeset
   165
5194
f478ac0a818f readme: copywrite the section about branch policy, wrap long lines
Anton Shestakov <av6@dwimlabs.net>
parents: 5138
diff changeset
   166
Test output changes from a changeset in core should add the following line to
f478ac0a818f readme: copywrite the section about branch policy, wrap long lines
Anton Shestakov <av6@dwimlabs.net>
parents: 5138
diff changeset
   167
their patch description:
4042
75e4c451b753 readme: document the tag we use on output change
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 3766
diff changeset
   168
75e4c451b753 readme: document the tag we use on output change
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 3766
diff changeset
   169
CORE-TEST-OUTPUT-UPDATE: <CORE-NODE-ID>
4814
48b30ff742cb python3: use format-source to run byteify-strings in .py files
Raphaël Gomès <rgomes@octobus.net>
parents: 4046
diff changeset
   170
48b30ff742cb python3: use format-source to run byteify-strings in .py files
Raphaël Gomès <rgomes@octobus.net>
parents: 4046
diff changeset
   171
48b30ff742cb python3: use format-source to run byteify-strings in .py files
Raphaël Gomès <rgomes@octobus.net>
parents: 4046
diff changeset
   172
Format-source config
48b30ff742cb python3: use format-source to run byteify-strings in .py files
Raphaël Gomès <rgomes@octobus.net>
parents: 4046
diff changeset
   173
====================
48b30ff742cb python3: use format-source to run byteify-strings in .py files
Raphaël Gomès <rgomes@octobus.net>
parents: 4046
diff changeset
   174
48b30ff742cb python3: use format-source to run byteify-strings in .py files
Raphaël Gomès <rgomes@octobus.net>
parents: 4046
diff changeset
   175
Format source helps smooth out the pain of merging after auto-formatting.
48b30ff742cb python3: use format-source to run byteify-strings in .py files
Raphaël Gomès <rgomes@octobus.net>
parents: 4046
diff changeset
   176
Follow the instructions for install here:
48b30ff742cb python3: use format-source to run byteify-strings in .py files
Raphaël Gomès <rgomes@octobus.net>
parents: 4046
diff changeset
   177
48b30ff742cb python3: use format-source to run byteify-strings in .py files
Raphaël Gomès <rgomes@octobus.net>
parents: 4046
diff changeset
   178
.. _`format-source`: https://bitbucket.org/octobus/format-source
48b30ff742cb python3: use format-source to run byteify-strings in .py files
Raphaël Gomès <rgomes@octobus.net>
parents: 4046
diff changeset
   179
48b30ff742cb python3: use format-source to run byteify-strings in .py files
Raphaël Gomès <rgomes@octobus.net>
parents: 4046
diff changeset
   180
Then update both your global and repo config files::
48b30ff742cb python3: use format-source to run byteify-strings in .py files
Raphaël Gomès <rgomes@octobus.net>
parents: 4046
diff changeset
   181
48b30ff742cb python3: use format-source to run byteify-strings in .py files
Raphaël Gomès <rgomes@octobus.net>
parents: 4046
diff changeset
   182
    $ hg config -l # add the lines below
48b30ff742cb python3: use format-source to run byteify-strings in .py files
Raphaël Gomès <rgomes@octobus.net>
parents: 4046
diff changeset
   183
    [extensions]
48b30ff742cb python3: use format-source to run byteify-strings in .py files
Raphaël Gomès <rgomes@octobus.net>
parents: 4046
diff changeset
   184
    formatsource =
48b30ff742cb python3: use format-source to run byteify-strings in .py files
Raphaël Gomès <rgomes@octobus.net>
parents: 4046
diff changeset
   185
48b30ff742cb python3: use format-source to run byteify-strings in .py files
Raphaël Gomès <rgomes@octobus.net>
parents: 4046
diff changeset
   186
    [format-source]
48b30ff742cb python3: use format-source to run byteify-strings in .py files
Raphaël Gomès <rgomes@octobus.net>
parents: 4046
diff changeset
   187
    byteify-strings = python3 ~/workspace/octobus/mercurial-devel/contrib/byteify-strings.py --dictiter --treat-as-kwargs kwargs opts commitopts TROUBLES --allow-attr-methods
48b30ff742cb python3: use format-source to run byteify-strings in .py files
Raphaël Gomès <rgomes@octobus.net>
parents: 4046
diff changeset
   188
    byteify-strings:mode.input = file
48b30ff742cb python3: use format-source to run byteify-strings in .py files
Raphaël Gomès <rgomes@octobus.net>
parents: 4046
diff changeset
   189
    byteify-strings:mode.output = pipe
5116
2392fe0e745a packaging: create a release check list
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 4922
diff changeset
   190
2392fe0e745a packaging: create a release check list
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 4922
diff changeset
   191
Release Checklist
2392fe0e745a packaging: create a release check list
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 4922
diff changeset
   192
=================
2392fe0e745a packaging: create a release check list
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 4922
diff changeset
   193
2392fe0e745a packaging: create a release check list
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 4922
diff changeset
   194
* make sure the tests are happy on all supported versions,
2392fe0e745a packaging: create a release check list
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 4922
diff changeset
   195
2392fe0e745a packaging: create a release check list
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 4922
diff changeset
   196
  You can use the `contrib/merge-test-compat.sh` to merge with the test
2392fe0e745a packaging: create a release check list
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 4922
diff changeset
   197
  compatibility branches.
2392fe0e745a packaging: create a release check list
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 4922
diff changeset
   198
2392fe0e745a packaging: create a release check list
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 4922
diff changeset
   199
* make sure there is no code difference between the compat branches and stable
2392fe0e745a packaging: create a release check list
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 4922
diff changeset
   200
  (no diff within `hgext3rd/`),
2392fe0e745a packaging: create a release check list
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 4922
diff changeset
   201
2392fe0e745a packaging: create a release check list
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 4922
diff changeset
   202
* update the `testedwith` variable for all extensions (remove '.dev'):
2392fe0e745a packaging: create a release check list
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 4922
diff changeset
   203
2392fe0e745a packaging: create a release check list
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 4922
diff changeset
   204
  - hgext3rd/evolve/metadata.py
2392fe0e745a packaging: create a release check list
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 4922
diff changeset
   205
  - hgext3rd/topic/__init__.py
2392fe0e745a packaging: create a release check list
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 4922
diff changeset
   206
  - hgext3rd/pullbundle.py
2392fe0e745a packaging: create a release check list
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 4922
diff changeset
   207
2392fe0e745a packaging: create a release check list
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 4922
diff changeset
   208
* make sure the changelog is up to date,
2392fe0e745a packaging: create a release check list
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 4922
diff changeset
   209
2392fe0e745a packaging: create a release check list
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 4922
diff changeset
   210
* add a date to the changelog entry for the target version,
2392fe0e745a packaging: create a release check list
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 4922
diff changeset
   211
2392fe0e745a packaging: create a release check list
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 4922
diff changeset
   212
* update the `__version__` field of all relevant extensions:
2392fe0e745a packaging: create a release check list
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 4922
diff changeset
   213
2392fe0e745a packaging: create a release check list
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 4922
diff changeset
   214
  - hgext3rd/evolve/metadata.py
2392fe0e745a packaging: create a release check list
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 4922
diff changeset
   215
  - hgext3rd/topic/__init__.py
2392fe0e745a packaging: create a release check list
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 4922
diff changeset
   216
  - hgext3rd/pullbundle.py (if touched)
2392fe0e745a packaging: create a release check list
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 4922
diff changeset
   217
2392fe0e745a packaging: create a release check list
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 4922
diff changeset
   218
* create a new Debian entry:
2392fe0e745a packaging: create a release check list
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 4922
diff changeset
   219
2392fe0e745a packaging: create a release check list
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 4922
diff changeset
   220
  - debchange --newversion x.y.z-1 "new upstream release"
2392fe0e745a packaging: create a release check list
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 4922
diff changeset
   221
  - debchange --release
2392fe0e745a packaging: create a release check list
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 4922
diff changeset
   222
2392fe0e745a packaging: create a release check list
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 4922
diff changeset
   223
* sanity check install and sdist targets of setup.py:
2392fe0e745a packaging: create a release check list
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 4922
diff changeset
   224
2392fe0e745a packaging: create a release check list
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 4922
diff changeset
   225
  - python setup.py install --home=$(mktemp -d)
2392fe0e745a packaging: create a release check list
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 4922
diff changeset
   226
  - python setup.py sdist
2392fe0e745a packaging: create a release check list
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 4922
diff changeset
   227
2392fe0e745a packaging: create a release check list
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 4922
diff changeset
   228
* tag the commit,
2392fe0e745a packaging: create a release check list
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 4922
diff changeset
   229
2392fe0e745a packaging: create a release check list
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 4922
diff changeset
   230
* push and publish the tag,
2392fe0e745a packaging: create a release check list
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 4922
diff changeset
   231
2392fe0e745a packaging: create a release check list
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 4922
diff changeset
   232
* upload the tarball to PyPI,
2392fe0e745a packaging: create a release check list
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 4922
diff changeset
   233
2392fe0e745a packaging: create a release check list
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 4922
diff changeset
   234
* make an announcement on evolve-testers@mercurial-scm.org (possibly on
2392fe0e745a packaging: create a release check list
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 4922
diff changeset
   235
  mercurial@mercurial-scm.org too),
2392fe0e745a packaging: create a release check list
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 4922
diff changeset
   236
2392fe0e745a packaging: create a release check list
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 4922
diff changeset
   237
* bump versions of all extensions and add '.dev' (see existing commits as an
2392fe0e745a packaging: create a release check list
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 4922
diff changeset
   238
  example):
2392fe0e745a packaging: create a release check list
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 4922
diff changeset
   239
2392fe0e745a packaging: create a release check list
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 4922
diff changeset
   240
  - hgext3rd/evolve/metadata.py
2392fe0e745a packaging: create a release check list
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 4922
diff changeset
   241
  - hgext3rd/topic/__init__.py
2392fe0e745a packaging: create a release check list
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 4922
diff changeset
   242
  - hgext3rd/pullbundle.py
2392fe0e745a packaging: create a release check list
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 4922
diff changeset
   243
2392fe0e745a packaging: create a release check list
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 4922
diff changeset
   244
  The version we use on the stable branch during development should be
2392fe0e745a packaging: create a release check list
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 4922
diff changeset
   245
  `x.y.z+1.dev`. The version of the default branch should be `x.y+1.0.dev`.
2392fe0e745a packaging: create a release check list
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 4922
diff changeset
   246
2392fe0e745a packaging: create a release check list
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 4922
diff changeset
   247
* merge stable into default.