Mercurial > evolve
annotate README.rst @ 5926:aca07ac01167
divergence-resolution: use last evolution date to choose p1 when merging
Before this patch, we choose the minimum revision as p1 while merging the
two divergent csets which had a drawback that if independent user resolve
the same divergence, their final resolved cset would have different hashes
(because of 'divergence_source_local' and 'divergence_source_other' extras).
Now, we decide the p1 on the basis of which of the two divergent cset
was rewritten more recently. This new logic removes the "different hash"
problem.
To save us from big output changes in the tests due to this change, I also
added the second factor i.e revision_number while sorting the csets wrt dates
(as date is same for all the csets in tests) to fallback to the old way of
picking the revision i.e choosing the minimum rev number.
And to demonstrate that now divergence resolution is independent of which
side user run the `hg evolve --content-div` resolved cset id won't change,
I have added a separate test file.
Flag --config devel.default-date='...' is being used here to record a
custom date in the obsmarkers.
author | Sushil khanchi <sushilkhanchi97@gmail.com> |
---|---|
date | Wed, 03 Mar 2021 12:40:59 +0530 |
parents | d77d61c9e5e9 |
children | 2068ff9ad72a |
rev | line source |
---|---|
560
4580ff7157ae
fix readme header
Pierre-Yves David <pierre-yves.david@logilab.fr>
parents:
556
diff
changeset
|
1 ============================= |
33 | 2 Mutable History For Mercurial |
3 ============================= | |
4 | |
2095
1c6bb9c117fc
README: rework install instruction
Pierre-Yves David <pierre-yves.david@ens-lyon.org>
parents:
2094
diff
changeset
|
5 Evolve Extension |
5415
3be5dba88c49
readme: various small fixes to formatting and spelling
Anton Shestakov <av6@dwimlabs.net>
parents:
5414
diff
changeset
|
6 ================ |
2095
1c6bb9c117fc
README: rework install instruction
Pierre-Yves David <pierre-yves.david@ens-lyon.org>
parents:
2094
diff
changeset
|
7 |
5415
3be5dba88c49
readme: various small fixes to formatting and spelling
Anton Shestakov <av6@dwimlabs.net>
parents:
5414
diff
changeset
|
8 This package supplies the evolve extension for Mercurial, |
2094
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 | 16 |
5416
e2fb20dd0df7
readme: link to ChangesetEvolution, reword a couple of list items
Anton Shestakov <av6@dwimlabs.net>
parents:
5415
diff
changeset
|
17 * enables the "`changeset evolution`_" feature of core 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
|
18 |
5416
e2fb20dd0df7
readme: link to ChangesetEvolution, reword a couple of list items
Anton Shestakov <av6@dwimlabs.net>
parents:
5415
diff
changeset
|
19 * provides a set of commands to rewrite history in a distributed way, |
e2fb20dd0df7
readme: link to ChangesetEvolution, reword a couple of list items
Anton Shestakov <av6@dwimlabs.net>
parents:
5415
diff
changeset
|
20 |
e2fb20dd0df7
readme: link to ChangesetEvolution, reword a couple of list items
Anton Shestakov <av6@dwimlabs.net>
parents:
5415
diff
changeset
|
21 * issues various warning messages when "troubles" from changeset evolution |
e2fb20dd0df7
readme: link to ChangesetEvolution, reword a couple of list items
Anton Shestakov <av6@dwimlabs.net>
parents:
5415
diff
changeset
|
22 appear in your repository, |
2094
e906723ab99f
README: rework the intro
Pierre-Yves David <pierre-yves.david@ens-lyon.org>
parents:
2075
diff
changeset
|
23 |
5416
e2fb20dd0df7
readme: link to ChangesetEvolution, reword a couple of list items
Anton Shestakov <av6@dwimlabs.net>
parents:
5415
diff
changeset
|
24 * provides an ``hg evolve`` command to deal with such troubles, |
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
|
25 |
5416
e2fb20dd0df7
readme: link to ChangesetEvolution, reword a couple of list items
Anton Shestakov <av6@dwimlabs.net>
parents:
5415
diff
changeset
|
26 * improves performance of obsolescence marker exchange and discovery during |
e2fb20dd0df7
readme: link to ChangesetEvolution, reword a couple of list items
Anton Shestakov <av6@dwimlabs.net>
parents:
5415
diff
changeset
|
27 push and pull. |
2099
47017b3086d4
README: more update to prepare for pypi upload
Pierre-Yves David <pierre-yves.david@ens-lyon.org>
parents:
2097
diff
changeset
|
28 |
5416
e2fb20dd0df7
readme: link to ChangesetEvolution, reword a couple of list items
Anton Shestakov <av6@dwimlabs.net>
parents:
5415
diff
changeset
|
29 .. _`changeset evolution`: https://www.mercurial-scm.org/wiki/ChangesetEvolution |
293
232990fbecb5
[doc] update readme
Pierre-Yves David <pierre-yves.david@logilab.fr>
parents:
267
diff
changeset
|
30 |
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
|
31 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
|
32 ------------- |
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 |
5415
3be5dba88c49
readme: various small fixes to formatting and spelling
Anton Shestakov <av6@dwimlabs.net>
parents:
5414
diff
changeset
|
34 We recommend reading the documentation first. An online version is available |
3be5dba88c49
readme: various small fixes to formatting and spelling
Anton Shestakov <av6@dwimlabs.net>
parents:
5414
diff
changeset
|
35 here: |
33 | 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 https://www.mercurial-scm.org/doc/evolution/ |
33 | 38 |
5417
bf56062dac5e
readme: mention docs/ in the documentation section
Anton Shestakov <av6@dwimlabs.net>
parents:
5416
diff
changeset
|
39 Source of the documentation can be found in ``docs/``. |
bf56062dac5e
readme: mention docs/ in the documentation section
Anton Shestakov <av6@dwimlabs.net>
parents:
5416
diff
changeset
|
40 |
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
|
41 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
|
42 ============== |
c99e926d465a
README: more change to have a pretty rendering on pypi
Pierre-Yves David <pierre-yves.david@ens-lyon.org>
parents:
2095
diff
changeset
|
43 |
c99e926d465a
README: more change to have a pretty rendering on pypi
Pierre-Yves David <pierre-yves.david@ens-lyon.org>
parents:
2095
diff
changeset
|
44 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
|
45 --------- |
2095
1c6bb9c117fc
README: rework install instruction
Pierre-Yves David <pierre-yves.david@ens-lyon.org>
parents:
2094
diff
changeset
|
46 |
5415
3be5dba88c49
readme: various small fixes to formatting and spelling
Anton Shestakov <av6@dwimlabs.net>
parents:
5414
diff
changeset
|
47 You can install the latest released version using pip:: |
324
ff070b9e22ef
readme: explain "instalation process"
Pierre-Yves David <pierre-yves.david@logilab.fr>
parents:
293
diff
changeset
|
48 |
2095
1c6bb9c117fc
README: rework install instruction
Pierre-Yves David <pierre-yves.david@ens-lyon.org>
parents:
2094
diff
changeset
|
49 $ pip install --user hg-evolve |
1c6bb9c117fc
README: rework install instruction
Pierre-Yves David <pierre-yves.david@ens-lyon.org>
parents:
2094
diff
changeset
|
50 |
5415
3be5dba88c49
readme: various small fixes to formatting and spelling
Anton Shestakov <av6@dwimlabs.net>
parents:
5414
diff
changeset
|
51 Then enable it in your hgrc:: |
2095
1c6bb9c117fc
README: rework install instruction
Pierre-Yves David <pierre-yves.david@ens-lyon.org>
parents:
2094
diff
changeset
|
52 |
5415
3be5dba88c49
readme: various small fixes to formatting and spelling
Anton Shestakov <av6@dwimlabs.net>
parents:
5414
diff
changeset
|
53 $ hg config --edit # add these two lines: |
2095
1c6bb9c117fc
README: rework install instruction
Pierre-Yves David <pierre-yves.david@ens-lyon.org>
parents:
2094
diff
changeset
|
54 [extensions] |
1c6bb9c117fc
README: rework install instruction
Pierre-Yves David <pierre-yves.david@ens-lyon.org>
parents:
2094
diff
changeset
|
55 evolve = |
33 | 56 |
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
|
57 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
|
58 ----------- |
739
dcda64966616
README: polish the language so it reads better
Greg Ward <greg@gerg.ca>
parents:
738
diff
changeset
|
59 |
2095
1c6bb9c117fc
README: rework install instruction
Pierre-Yves David <pierre-yves.david@ens-lyon.org>
parents:
2094
diff
changeset
|
60 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
|
61 |
1c6bb9c117fc
README: rework install instruction
Pierre-Yves David <pierre-yves.david@ens-lyon.org>
parents:
2094
diff
changeset
|
62 $ 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
|
63 $ cd evolve |
5415
3be5dba88c49
readme: various small fixes to formatting and spelling
Anton Shestakov <av6@dwimlabs.net>
parents:
5414
diff
changeset
|
64 # optionally `hg update <target revision>` |
2113
fed5369058a4
README: remove mention of make
Pierre-Yves David <pierre-yves.david@ens-lyon.org>
parents:
2102
diff
changeset
|
65 $ 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
|
66 |
5415
3be5dba88c49
readme: various small fixes to formatting and spelling
Anton Shestakov <av6@dwimlabs.net>
parents:
5414
diff
changeset
|
67 Then enable it in your hgrc:: |
2095
1c6bb9c117fc
README: rework install instruction
Pierre-Yves David <pierre-yves.david@ens-lyon.org>
parents:
2094
diff
changeset
|
68 |
5415
3be5dba88c49
readme: various small fixes to formatting and spelling
Anton Shestakov <av6@dwimlabs.net>
parents:
5414
diff
changeset
|
69 $ hg config --edit # add these two lines: |
2095
1c6bb9c117fc
README: rework install instruction
Pierre-Yves David <pierre-yves.david@ens-lyon.org>
parents:
2094
diff
changeset
|
70 [extensions] |
1c6bb9c117fc
README: rework install instruction
Pierre-Yves David <pierre-yves.david@ens-lyon.org>
parents:
2094
diff
changeset
|
71 evolve = |
1c6bb9c117fc
README: rework install instruction
Pierre-Yves David <pierre-yves.david@ens-lyon.org>
parents:
2094
diff
changeset
|
72 |
5418
bc12eb8f41cb
readme: it's possible to use evolve without installing
Anton Shestakov <av6@dwimlabs.net>
parents:
5417
diff
changeset
|
73 It's also possible to use evolve without installing it, in which case you will |
bc12eb8f41cb
readme: it's possible to use evolve without installing
Anton Shestakov <av6@dwimlabs.net>
parents:
5417
diff
changeset
|
74 need to provide the full path to ``hgext3rd/evolve/``, for example:: |
bc12eb8f41cb
readme: it's possible to use evolve without installing
Anton Shestakov <av6@dwimlabs.net>
parents:
5417
diff
changeset
|
75 |
bc12eb8f41cb
readme: it's possible to use evolve without installing
Anton Shestakov <av6@dwimlabs.net>
parents:
5417
diff
changeset
|
76 [extensions] |
bc12eb8f41cb
readme: it's possible to use evolve without installing
Anton Shestakov <av6@dwimlabs.net>
parents:
5417
diff
changeset
|
77 evolve = ~/evolve/hgext3rd/evolve |
2095
1c6bb9c117fc
README: rework install instruction
Pierre-Yves David <pierre-yves.david@ens-lyon.org>
parents:
2094
diff
changeset
|
78 |
5415
3be5dba88c49
readme: various small fixes to formatting and spelling
Anton Shestakov <av6@dwimlabs.net>
parents:
5414
diff
changeset
|
79 Server-only Setup |
2114
51ee2c721b32
README: tries to improve the title about server only
Pierre-Yves David <pierre-yves.david@ens-lyon.org>
parents:
2113
diff
changeset
|
80 ================= |
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 |
5419
13dbce3ef822
readme: split server-only section and reduce word count
Anton Shestakov <av6@dwimlabs.net>
parents:
5418
diff
changeset
|
82 It is possible to enable a smaller subset of the features aimed at servers that |
13dbce3ef822
readme: split server-only section and reduce word count
Anton Shestakov <av6@dwimlabs.net>
parents:
5418
diff
changeset
|
83 simply serve repositories:: |
2095
1c6bb9c117fc
README: rework install instruction
Pierre-Yves David <pierre-yves.david@ens-lyon.org>
parents:
2094
diff
changeset
|
84 |
5415
3be5dba88c49
readme: various small fixes to formatting and spelling
Anton Shestakov <av6@dwimlabs.net>
parents:
5414
diff
changeset
|
85 $ hg config --edit # add these two lines: |
2020
143c8e4dc22d
topic: merge the topic extension in the evolve repository
Pierre-Yves David <pierre-yves.david@ens-lyon.org>
parents:
1824
diff
changeset
|
86 [extensions] |
2099
47017b3086d4
README: more update to prepare for pypi upload
Pierre-Yves David <pierre-yves.david@ens-lyon.org>
parents:
2097
diff
changeset
|
87 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
|
88 |
5419
13dbce3ef822
readme: split server-only section and reduce word count
Anton Shestakov <av6@dwimlabs.net>
parents:
5418
diff
changeset
|
89 It skips the additions of the new commands and local UI messages that might add |
13dbce3ef822
readme: split server-only section and reduce word count
Anton Shestakov <av6@dwimlabs.net>
parents:
5418
diff
changeset
|
90 performance overhead. |
13dbce3ef822
readme: split server-only section and reduce word count
Anton Shestakov <av6@dwimlabs.net>
parents:
5418
diff
changeset
|
91 |
4046
669b32100eca
readme: document the purpose of the evolve extension
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
4042
diff
changeset
|
92 Extension Purpose |
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 |
669b32100eca
readme: document the purpose of the evolve extension
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
4042
diff
changeset
|
95 The goal of this extension is to provide an appropriate place for code and |
5423
ba213f62fd50
readme: improve the extension purpose section
Anton Shestakov <av6@dwimlabs.net>
parents:
5422
diff
changeset
|
96 concepts related to `changeset evolution`_ to mature. In this extension we |
ba213f62fd50
readme: improve the extension purpose section
Anton Shestakov <av6@dwimlabs.net>
parents:
5422
diff
changeset
|
97 allow hackier code, unlocking quick experimentation and faster iterations. |
4046
669b32100eca
readme: document the purpose of the evolve extension
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
4042
diff
changeset
|
98 |
5423
ba213f62fd50
readme: improve the extension purpose section
Anton Shestakov <av6@dwimlabs.net>
parents:
5422
diff
changeset
|
99 In addition, evolve extension supports a wide range of Mercurial versions, |
ba213f62fd50
readme: improve the extension purpose section
Anton Shestakov <av6@dwimlabs.net>
parents:
5422
diff
changeset
|
100 allowing us to reach a larger user base for feedback. The extension is not tied |
ba213f62fd50
readme: improve the extension purpose section
Anton Shestakov <av6@dwimlabs.net>
parents:
5422
diff
changeset
|
101 to the Mercurial release cycle and can release new features and bug fixes at a |
ba213f62fd50
readme: improve the extension purpose section
Anton Shestakov <av6@dwimlabs.net>
parents:
5422
diff
changeset
|
102 higher rate if necessary. |
4046
669b32100eca
readme: document the purpose of the evolve extension
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
4042
diff
changeset
|
103 |
5423
ba213f62fd50
readme: improve the extension purpose section
Anton Shestakov <av6@dwimlabs.net>
parents:
5422
diff
changeset
|
104 Once a concept is deemed ready, its implementation is moved into core |
ba213f62fd50
readme: improve the extension purpose section
Anton Shestakov <av6@dwimlabs.net>
parents:
5422
diff
changeset
|
105 Mercurial. The maturation period helped us to get a clearer picture of what was |
4046
669b32100eca
readme: document the purpose of the evolve extension
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
4042
diff
changeset
|
106 needed. During the upstreaming process, we can use this clearer picture to |
5423
ba213f62fd50
readme: improve the extension purpose section
Anton Shestakov <av6@dwimlabs.net>
parents:
5422
diff
changeset
|
107 clean up the code and upgrade it to an appropriate quality for core Mercurial. |
2020
143c8e4dc22d
topic: merge the topic extension in the evolve repository
Pierre-Yves David <pierre-yves.david@ens-lyon.org>
parents:
1824
diff
changeset
|
108 |
5415
3be5dba88c49
readme: various small fixes to formatting and spelling
Anton Shestakov <av6@dwimlabs.net>
parents:
5414
diff
changeset
|
109 Python 3 Support |
4818
bce578f9012f
python3: mention beta Python 3 support in README
Raphaël Gomès <rgomes@octobus.net>
parents:
4814
diff
changeset
|
110 ================ |
bce578f9012f
python3: mention beta Python 3 support in README
Raphaël Gomès <rgomes@octobus.net>
parents:
4814
diff
changeset
|
111 |
5420
5a7a5de347b5
readme: update py3 support section
Anton Shestakov <av6@dwimlabs.net>
parents:
5419
diff
changeset
|
112 Mercurial announced official `support for Python 3`_ starting with its 5.2 |
5a7a5de347b5
readme: update py3 support section
Anton Shestakov <av6@dwimlabs.net>
parents:
5419
diff
changeset
|
113 release. Since 9.3.0, evolve has official support for Python 3.6+. |
4818
bce578f9012f
python3: mention beta Python 3 support in README
Raphaël Gomès <rgomes@octobus.net>
parents:
4814
diff
changeset
|
114 |
5420
5a7a5de347b5
readme: update py3 support section
Anton Shestakov <av6@dwimlabs.net>
parents:
5419
diff
changeset
|
115 .. _`support for Python 3`: https://www.mercurial-scm.org/wiki/Python3 |
4818
bce578f9012f
python3: mention beta Python 3 support in README
Raphaël Gomès <rgomes@octobus.net>
parents:
4814
diff
changeset
|
116 |
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
|
117 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
|
118 ================= |
238
b5d9841defc8
more read me update
Pierre-Yves David <pierre-yves.david@ens-lyon.org>
parents:
237
diff
changeset
|
119 |
3766
6352dc395ebf
evolve: update the readme with more information about contribution
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
3071
diff
changeset
|
120 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
|
121 |
6352dc395ebf
evolve: update the readme with more information about contribution
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
3071
diff
changeset
|
122 .. _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
|
123 |
5415
3be5dba88c49
readme: various small fixes to formatting and spelling
Anton Shestakov <av6@dwimlabs.net>
parents:
5414
diff
changeset
|
124 Bugs are to be reported on the Mercurial's bug tracker (component: |
3be5dba88c49
readme: various small fixes to formatting and spelling
Anton Shestakov <av6@dwimlabs.net>
parents:
5414
diff
changeset
|
125 `evolution`_). |
2099
47017b3086d4
README: more update to prepare for pypi upload
Pierre-Yves David <pierre-yves.david@ens-lyon.org>
parents:
2097
diff
changeset
|
126 |
47017b3086d4
README: more update to prepare for pypi upload
Pierre-Yves David <pierre-yves.david@ens-lyon.org>
parents:
2097
diff
changeset
|
127 .. _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
|
128 |
5421
f287f6b082f8
readme: improve wording in the contributing section
Anton Shestakov <av6@dwimlabs.net>
parents:
5420
diff
changeset
|
129 The recommended way to submit a patch is to create a Merge Request on |
5138
b8b234123fe6
readme: update heptapod link
Anton Shestakov <av6@dwimlabs.net>
parents:
5116
diff
changeset
|
130 https://foss.heptapod.net/mercurial/evolve. To do so, create an account and |
5421
f287f6b082f8
readme: improve wording in the contributing section
Anton Shestakov <av6@dwimlabs.net>
parents:
5420
diff
changeset
|
131 request access. You'll then be able to create a topic-based merge request. |
4922
dacbd20b2f72
readme: update contribution guide
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
4877
diff
changeset
|
132 |
dacbd20b2f72
readme: update contribution guide
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
4877
diff
changeset
|
133 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
|
134 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
|
135 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
|
136 command like this:: |
1000
8043ae3612e4
readme: mention patchbomb usage and patch description guidelines on wiki
Faheem Mitha <faheem@faheem.info>
parents:
987
diff
changeset
|
137 |
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
|
138 $ 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
|
139 |
2099
47017b3086d4
README: more update to prepare for pypi upload
Pierre-Yves David <pierre-yves.david@ens-lyon.org>
parents:
2097
diff
changeset
|
140 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
|
141 |
47017b3086d4
README: more update to prepare for pypi upload
Pierre-Yves David <pierre-yves.david@ens-lyon.org>
parents:
2097
diff
changeset
|
142 .. _`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
|
143 |
5415
3be5dba88c49
readme: various small fixes to formatting and spelling
Anton Shestakov <av6@dwimlabs.net>
parents:
5414
diff
changeset
|
144 Please don't forget to update and run the tests when you fix a bug or add a |
3be5dba88c49
readme: various small fixes to formatting and spelling
Anton Shestakov <av6@dwimlabs.net>
parents:
5414
diff
changeset
|
145 feature. To run the tests, you need a working copy of Mercurial, say in |
3be5dba88c49
readme: various small fixes to formatting and spelling
Anton Shestakov <av6@dwimlabs.net>
parents:
5414
diff
changeset
|
146 $HGSRC:: |
926
14d91c36f88b
README: document how to run the tests
Greg Ward <greg@gerg.ca>
parents:
924
diff
changeset
|
147 |
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
|
148 $ 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
|
149 $ python $HGSRC/tests/run-tests.py |
1526
c2a772ade409
README: update instructions for running tests.
Greg Ward <greg@gerg.ca>
parents:
1519
diff
changeset
|
150 |
5195
85640f1feced
readme: mention compat string format
Anton Shestakov <av6@dwimlabs.net>
parents:
5194
diff
changeset
|
151 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
|
152 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
|
153 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
|
154 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
|
155 be:: |
85640f1feced
readme: mention compat string format
Anton Shestakov <av6@dwimlabs.net>
parents:
5194
diff
changeset
|
156 |
85640f1feced
readme: mention compat string format
Anton Shestakov <av6@dwimlabs.net>
parents:
5194
diff
changeset
|
157 # hg <= 5.2 (02802fa87b74) |
85640f1feced
readme: mention compat string format
Anton Shestakov <av6@dwimlabs.net>
parents:
5194
diff
changeset
|
158 |
85640f1feced
readme: mention compat string format
Anton Shestakov <av6@dwimlabs.net>
parents:
5194
diff
changeset
|
159 See also tests/test-check-compat-strings.t. |
85640f1feced
readme: mention compat string format
Anton Shestakov <av6@dwimlabs.net>
parents:
5194
diff
changeset
|
160 |
2537
4a467331ec79
readme: clarify the branch policy
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
2535
diff
changeset
|
161 Branch policy |
4a467331ec79
readme: clarify the branch policy
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
2535
diff
changeset
|
162 ------------- |
4a467331ec79
readme: clarify the branch policy
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
2535
diff
changeset
|
163 |
5421
f287f6b082f8
readme: improve wording in the contributing section
Anton Shestakov <av6@dwimlabs.net>
parents:
5420
diff
changeset
|
164 The evolve tests are highly impacted by changes in core Mercurial. To deal with |
f287f6b082f8
readme: improve wording in the contributing section
Anton Shestakov <av6@dwimlabs.net>
parents:
5420
diff
changeset
|
165 this, we use named branches. |
2537
4a467331ec79
readme: clarify the branch policy
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
2535
diff
changeset
|
166 |
5194
f478ac0a818f
readme: copywrite the section about branch policy, wrap long lines
Anton Shestakov <av6@dwimlabs.net>
parents:
5138
diff
changeset
|
167 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
|
168 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
|
169 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
|
170 |
5194
f478ac0a818f
readme: copywrite the section about branch policy, wrap long lines
Anton Shestakov <av6@dwimlabs.net>
parents:
5138
diff
changeset
|
171 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
|
172 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
|
173 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
|
174 |
5194
f478ac0a818f
readme: copywrite the section about branch policy, wrap long lines
Anton Shestakov <av6@dwimlabs.net>
parents:
5138
diff
changeset
|
175 Test output changes from a changeset in core should add the following line to |
5415
3be5dba88c49
readme: various small fixes to formatting and spelling
Anton Shestakov <av6@dwimlabs.net>
parents:
5414
diff
changeset
|
176 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
|
177 |
5415
3be5dba88c49
readme: various small fixes to formatting and spelling
Anton Shestakov <av6@dwimlabs.net>
parents:
5414
diff
changeset
|
178 CORE-TEST-OUTPUT-UPDATE: <changeset hash> |
4814
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 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
|
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 |
5598
d1f6cf85bfec
readme: fix syntax of format-source link
Sietse Brouwer <sbbrouwer@gmail.com>
parents:
5195
diff
changeset
|
183 Format-source helps smooth out the pain of merging after auto-formatting. |
d1f6cf85bfec
readme: fix syntax of format-source link
Sietse Brouwer <sbbrouwer@gmail.com>
parents:
5195
diff
changeset
|
184 Follow the installation instructions at the `format-source`_ repo. |
4814
48b30ff742cb
python3: use format-source to run byteify-strings in .py files
Raphaël Gomès <rgomes@octobus.net>
parents:
4046
diff
changeset
|
185 |
5414
15b7c822cc46
readme: update link to format-source
Anton Shestakov <av6@dwimlabs.net>
parents:
5398
diff
changeset
|
186 .. _`format-source`: https://foss.heptapod.net/mercurial/format-source |
4814
48b30ff742cb
python3: use format-source to run byteify-strings in .py files
Raphaël Gomès <rgomes@octobus.net>
parents:
4046
diff
changeset
|
187 |
5422
39cd95b6f566
readme: shorter path to byteify-strings.py and not editing per-user config
Anton Shestakov <av6@dwimlabs.net>
parents:
5421
diff
changeset
|
188 Then update your per-repo config file:: |
4814
48b30ff742cb
python3: use format-source to run byteify-strings in .py files
Raphaël Gomès <rgomes@octobus.net>
parents:
4046
diff
changeset
|
189 |
5415
3be5dba88c49
readme: various small fixes to formatting and spelling
Anton Shestakov <av6@dwimlabs.net>
parents:
5414
diff
changeset
|
190 $ hg config --local --edit # add these lines: |
4814
48b30ff742cb
python3: use format-source to run byteify-strings in .py files
Raphaël Gomès <rgomes@octobus.net>
parents:
4046
diff
changeset
|
191 [extensions] |
48b30ff742cb
python3: use format-source to run byteify-strings in .py files
Raphaël Gomès <rgomes@octobus.net>
parents:
4046
diff
changeset
|
192 formatsource = |
48b30ff742cb
python3: use format-source to run byteify-strings in .py files
Raphaël Gomès <rgomes@octobus.net>
parents:
4046
diff
changeset
|
193 |
48b30ff742cb
python3: use format-source to run byteify-strings in .py files
Raphaël Gomès <rgomes@octobus.net>
parents:
4046
diff
changeset
|
194 [format-source] |
5422
39cd95b6f566
readme: shorter path to byteify-strings.py and not editing per-user config
Anton Shestakov <av6@dwimlabs.net>
parents:
5421
diff
changeset
|
195 byteify-strings = python3 ~/hg/contrib/byteify-strings.py --dictiter --treat-as-kwargs kwargs opts commitopts TROUBLES --allow-attr-methods |
4814
48b30ff742cb
python3: use format-source to run byteify-strings in .py files
Raphaël Gomès <rgomes@octobus.net>
parents:
4046
diff
changeset
|
196 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
|
197 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
|
198 |
2392fe0e745a
packaging: create a release check list
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
4922
diff
changeset
|
199 Release Checklist |
2392fe0e745a
packaging: create a release check list
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
4922
diff
changeset
|
200 ================= |
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 * 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
|
203 |
2392fe0e745a
packaging: create a release check list
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
4922
diff
changeset
|
204 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
|
205 compatibility branches. |
2392fe0e745a
packaging: create a release check list
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
4922
diff
changeset
|
206 |
2392fe0e745a
packaging: create a release check list
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
4922
diff
changeset
|
207 * 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
|
208 (no diff within `hgext3rd/`), |
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 * 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
|
211 |
2392fe0e745a
packaging: create a release check list
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
4922
diff
changeset
|
212 - hgext3rd/evolve/metadata.py |
2392fe0e745a
packaging: create a release check list
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
4922
diff
changeset
|
213 - hgext3rd/topic/__init__.py |
2392fe0e745a
packaging: create a release check list
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
4922
diff
changeset
|
214 - hgext3rd/pullbundle.py |
2392fe0e745a
packaging: create a release check list
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
4922
diff
changeset
|
215 |
2392fe0e745a
packaging: create a release check list
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
4922
diff
changeset
|
216 * 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
|
217 |
2392fe0e745a
packaging: create a release check list
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
4922
diff
changeset
|
218 * 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
|
219 |
2392fe0e745a
packaging: create a release check list
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
4922
diff
changeset
|
220 * 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
|
221 |
2392fe0e745a
packaging: create a release check list
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
4922
diff
changeset
|
222 - hgext3rd/evolve/metadata.py |
2392fe0e745a
packaging: create a release check list
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
4922
diff
changeset
|
223 - hgext3rd/topic/__init__.py |
2392fe0e745a
packaging: create a release check list
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
4922
diff
changeset
|
224 - hgext3rd/pullbundle.py (if touched) |
2392fe0e745a
packaging: create a release check list
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
4922
diff
changeset
|
225 |
2392fe0e745a
packaging: create a release check list
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
4922
diff
changeset
|
226 * create a new Debian entry: |
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 - 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
|
229 - debchange --release |
2392fe0e745a
packaging: create a release check list
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
4922
diff
changeset
|
230 |
2392fe0e745a
packaging: create a release check list
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
4922
diff
changeset
|
231 * 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
|
232 |
2392fe0e745a
packaging: create a release check list
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
4922
diff
changeset
|
233 - 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
|
234 - python setup.py sdist |
2392fe0e745a
packaging: create a release check list
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
4922
diff
changeset
|
235 |
2392fe0e745a
packaging: create a release check list
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
4922
diff
changeset
|
236 * tag the commit, |
2392fe0e745a
packaging: create a release check list
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
4922
diff
changeset
|
237 |
2392fe0e745a
packaging: create a release check list
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
4922
diff
changeset
|
238 * push and publish the tag, |
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 * upload the tarball to PyPI, |
2392fe0e745a
packaging: create a release check list
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
4922
diff
changeset
|
241 |
2392fe0e745a
packaging: create a release check list
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
4922
diff
changeset
|
242 * 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
|
243 mercurial@mercurial-scm.org too), |
2392fe0e745a
packaging: create a release check list
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
4922
diff
changeset
|
244 |
2392fe0e745a
packaging: create a release check list
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
4922
diff
changeset
|
245 * 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
|
246 example): |
2392fe0e745a
packaging: create a release check list
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
4922
diff
changeset
|
247 |
2392fe0e745a
packaging: create a release check list
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
4922
diff
changeset
|
248 - hgext3rd/evolve/metadata.py |
2392fe0e745a
packaging: create a release check list
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
4922
diff
changeset
|
249 - hgext3rd/topic/__init__.py |
2392fe0e745a
packaging: create a release check list
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
4922
diff
changeset
|
250 - hgext3rd/pullbundle.py |
2392fe0e745a
packaging: create a release check list
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
4922
diff
changeset
|
251 |
2392fe0e745a
packaging: create a release check list
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
4922
diff
changeset
|
252 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
|
253 `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
|
254 |
2392fe0e745a
packaging: create a release check list
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
4922
diff
changeset
|
255 * merge stable into default. |