Mercurial > evolve
annotate README @ 3801:ee78135b2f45
evolve: merge commit messages while resolving content-divergence (issue5877)
While resolving content-divergence, there can be divergence in commit messages
too which should be resolved.
This patch uses the hg's internal merge API's to merge commit messages of
divergent changesets with predecessor as the base.
In case of conflicts, we fallback to divergent's commit message which should be
changed in future. We should pop up the editor with the commit message and the
conflict markers and let user fix that.
Tests are added for the functionality added.
author | Pulkit Goyal <7895pulkit@gmail.com> |
---|---|
date | Mon, 04 Jun 2018 01:28:02 +0530 |
parents | 6352dc395ebf |
children | 75e4c451b753 |
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 |
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 | 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 | 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 | 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 | 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 |
3766
6352dc395ebf
evolve: update the readme with more information about contribution
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
3071
diff
changeset
|
86 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
|
87 |
6352dc395ebf
evolve: update the readme with more information about contribution
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
3071
diff
changeset
|
88 .. _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
|
89 |
2099
47017b3086d4
README: more update to prepare for pypi upload
Pierre-Yves David <pierre-yves.david@ens-lyon.org>
parents:
2097
diff
changeset
|
90 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
|
91 |
47017b3086d4
README: more update to prepare for pypi upload
Pierre-Yves David <pierre-yves.david@ens-lyon.org>
parents:
2097
diff
changeset
|
92 .. _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
|
93 |
3766
6352dc395ebf
evolve: update the readme with more information about contribution
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
3071
diff
changeset
|
94 You can use the patchbomb extension to send email to `mercurial devel |
2115
53fe0a1c9d4c
README: add a link to mercurial devel
Pierre-Yves David <pierre-yves.david@ens-lyon.org>
parents:
2114
diff
changeset
|
95 <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
|
96 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
|
97 this:: |
1000
8043ae3612e4
readme: mention patchbomb usage and patch description guidelines on wiki
Faheem Mitha <faheem@faheem.info>
parents:
987
diff
changeset
|
98 |
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
|
99 $ 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
|
100 |
3766
6352dc395ebf
evolve: update the readme with more information about contribution
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
3071
diff
changeset
|
101 Some of development happens on a public bitbucket repository (`evolve-devel`_) using the topic extension. |
6352dc395ebf
evolve: update the readme with more information about contribution
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
3071
diff
changeset
|
102 |
6352dc395ebf
evolve: update the readme with more information about contribution
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
3071
diff
changeset
|
103 .. _`evolve-devel`: https://bitbucket.org/octobus/evolve-devel |
6352dc395ebf
evolve: update the readme with more information about contribution
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
3071
diff
changeset
|
104 |
2099
47017b3086d4
README: more update to prepare for pypi upload
Pierre-Yves David <pierre-yves.david@ens-lyon.org>
parents:
2097
diff
changeset
|
105 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
|
106 |
47017b3086d4
README: more update to prepare for pypi upload
Pierre-Yves David <pierre-yves.david@ens-lyon.org>
parents:
2097
diff
changeset
|
107 .. _`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
|
108 |
8043ae3612e4
readme: mention patchbomb usage and patch description guidelines on wiki
Faheem Mitha <faheem@faheem.info>
parents:
987
diff
changeset
|
109 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
|
110 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
|
111 say in $HGSRC:: |
926
14d91c36f88b
README: document how to run the tests
Greg Ward <greg@gerg.ca>
parents:
924
diff
changeset
|
112 |
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
|
113 $ 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
|
114 $ python $HGSRC/tests/run-tests.py |
1526
c2a772ade409
README: update instructions for running tests.
Greg Ward <greg@gerg.ca>
parents:
1519
diff
changeset
|
115 |
2537
4a467331ec79
readme: clarify the branch policy
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
2535
diff
changeset
|
116 Branch policy |
4a467331ec79
readme: clarify the branch policy
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
2535
diff
changeset
|
117 ------------- |
4a467331ec79
readme: clarify the branch policy
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
2535
diff
changeset
|
118 |
4a467331ec79
readme: clarify the branch policy
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
2535
diff
changeset
|
119 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
|
120 |
4a467331ec79
readme: clarify the branch policy
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
2535
diff
changeset
|
121 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
|
122 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
|
123 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
|
124 |
4a467331ec79
readme: clarify the branch policy
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
2535
diff
changeset
|
125 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
|
126 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
|
127 expected test change only, no code change should happen there. |