Mercurial > evolve
comparison docs/index.rst @ 166:8f8a52cd0b9f
big doc update
author | Pierre-Yves David <pierre-yves.david@logilab.fr> |
---|---|
date | Tue, 27 Mar 2012 16:50:14 +0200 |
parents | ef6113f3d38e |
children | 64c886d26aab |
comparison
equal
deleted
inserted
replaced
165:ef6113f3d38e | 166:8f8a52cd0b9f |
---|---|
2 Safe Mutable History | 2 Safe Mutable History |
3 ======================================== | 3 ======================================== |
4 | 4 |
5 | 5 |
6 Here are various Materials on planned improvement to mercurial regarding | 6 Here are various Materials on planned improvement to mercurial regarding |
7 rewriting mutable history. | 7 rewriting history. |
8 | 8 |
9 The effort split in two part: | 9 The effort splits in two parts: |
10 | 10 |
11 * The **obsolete marker** concept aiming to provide and alternative to strip to | 11 * The **obsolete marker** concept aims to provide and alternative to ``strip`` |
12 get ride of changesets. | 12 to get ride of changesets. |
13 | 13 |
14 * A mercurial extension: **evolve** that rewrite using *obsolete marker* | 14 * The **evolve** mercurial extension to rewrite history using *obsolete marker* |
15 under the hood. | 15 under the hood. |
16 | 16 |
17 | 17 |
18 regarding mercurial internals, the first and most important step is the | 18 The first and most important step is by far the **obsolete marker**. However |
19 **obsolete marker**. However most user will never be directly exposed to the | 19 most user will never be directly exposed to the concept. For this reason |
20 concept. For this reason document about changeset evolution are put first. | 20 document about changeset evolution are put first. |
21 | 21 |
22 | 22 |
23 Evolve: A robust alternative to MQ | 23 Evolve: A robust alternative to MQ |
24 ==================================== | 24 ==================================== |
25 | 25 |
26 Evolve is an experimental history rewriting extensions that use the obsolete | 26 Evolve is an experimental history rewriting extensions that use obsolete |
27 marker. It is inspired from MQ and pbranch but have multiple advantage over | 27 markers. It is inspired from MQ and pbranch but have multiple advantage over |
28 them. | 28 them: |
29 | 29 |
30 * sticks to "Work where you are" philosophy (I'll need better wording | 30 * sticks to "Work where you are" philosophy (I'll need better wording |
31 for that) | 31 for that) |
32 | 32 |
33 * Handle any kind history. Even history with branch and merge. | 33 * Handle **non-linear history with branches and merges** |
34 | 34 |
35 * Use robust mercurial's merge mechanism | 35 * Use **robust merge** mechanism of mercurial. |
36 | 36 |
37 simple conflict are handled by real merge tools using appropriate ancestor. | 37 simple conflict are handled by real merge tools using appropriate ancestor. |
38 Conflict are much rarer and much more user friendly. | 38 Conflict are much rarer and much more user friendly. |
39 | 39 |
40 * All mutable history available at the same time | 40 * Mutable history **fully available all the time**. |
41 | 41 |
42 You are do not need to unapply and apply patche to access various part of you | 42 You are do not need to unapply and apply patche to access various part of you |
43 history. | 43 history. |
44 | 44 |
45 * Use plain changeset only. Evole create and exchange real changeset only. | 45 * Use **plain changeset** only. Evole create and exchange real changeset only. |
46 Mutable history can be used in all usual operation 'pull, push, log, diff …) | 46 Mutable history can be used in all usual operation 'pull, push, log, diff …) |
47 | 47 |
48 * Allow sharing and collaborating mutable history without fear of duplicate. | 48 * Allow **sharing and collaboration** mutable history without fear of duplicate. |
49 (thanks to obsolete marker). | 49 (thanks to obsolete marker). |
50 | 50 |
51 * Cover all mq usage but guard. | 51 * Cover all mq usage but guard. |
52 | 52 |
53 .. warning:: The evolve extention and the obsolete marker are at an experimental | 53 .. warning:: The evolve extention and the obsolete marker are at an experimental |
60 To enable the evolve extension use:: | 60 To enable the evolve extension use:: |
61 | 61 |
62 $ hg clone http://hg-dev.octopoid.net/hgwebdir.cgi/mutable-history/ | 62 $ hg clone http://hg-dev.octopoid.net/hgwebdir.cgi/mutable-history/ |
63 $ mutable-history/enable.sh > ~/.hgrc | 63 $ mutable-history/enable.sh > ~/.hgrc |
64 | 64 |
65 You will probably want to use the associated version of hgview (QT viewer only) | |
66 | |
67 $ hg clone http://hg-dev.octopoid.net/hgwebdir.cgi/hgview/ | |
68 $ cd hgview | |
69 $ python setup.py install --user | |
70 | |
71 | |
72 --- | |
73 | |
74 For more information see documents below | |
65 | 75 |
66 .. toctree:: | 76 .. toctree:: |
67 :maxdepth: 1 | 77 :maxdepth: 2 |
68 | 78 |
69 tutorial | 79 tutorial |
70 evolve-faq | 80 evolve-faq |
71 from-mq | 81 from-mq |
72 | 82 |
73 Smart changeset deletion: Obselete Marker | 83 Smart changeset deletion: Obselete Marker |
74 ========================================== | 84 ========================================== |
75 | 85 |
76 for dev and advanced user | 86 Obsolete marker is a powerful concept that allow mercurial to safely handle |
87 history rewriting operations. It is a new type of relation between Mercurial | |
88 changesets that track the result of history rewriting operations. | |
77 | 89 |
90 This concept is simple to define and provides a very solid base to: | |
91 | |
92 - Very fast history rewriting operations, | |
93 | |
94 - auditable and reversible history rewritting process, | |
95 | |
96 - clean final history, | |
97 | |
98 - share and collaborate on mutable part of the history, | |
99 | |
100 - gracefully handle history rewriting conflict, | |
101 | |
102 - allows various history rewriting UI to collaborate with a underlying common API. | |
103 | |
104 --- | |
105 | |
106 For more information see documents below | |
78 | 107 |
79 .. toctree:: | 108 .. toctree:: |
80 :maxdepth: 1 | 109 :maxdepth: 2 |
81 | 110 |
82 obs-concept | 111 obs-concept |
83 glossary | |
84 obs-implementation | 112 obs-implementation |
85 | 113 |
86 | 114 |
87 | 115 |
88 | 116 |
89 | 117 |
90 | 118 |
91 Know canveas | 119 Know canveas |
92 ================================= | 120 ================================= |
93 | 121 |
94 Big flashy warning on current remaining issue | 122 Here is a list of know issue that will be fixed later: |
123 | |
124 * Unstable changeset turns secret. | |
125 | |
126 * ``hg stabilize`` does not handle conflict. | |
127 | |
128 * Mercurial think you are pushing additional heads even when the new head | |
129 obsolete another one. You have to use hg push -f more than necessary. | |
130 | |
131 * ``hg update`` can move an obsolete parent | |
132 | |
133 * you need to provideto graft --continue -O if you started you graft using -O. | |
134 | |
135 | |
136 | |
137 | |
138 | |
139 Anexe | |
140 ================================= | |
141 | |
142 .. toctree:: | |
143 glossary |