Mercurial > evolve
comparison docs/index.rst @ 227:abe52cf492ee
doc: several update and review.
author | Pierre-Yves.David@ens-lyon.org |
---|---|
date | Wed, 09 May 2012 13:08:46 +0200 |
parents | b7145eed54fe |
children | 5a17c0d41a00 |
comparison
equal
deleted
inserted
replaced
226:0892b91947ef | 227:abe52cf492ee |
---|---|
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 history. | 7 rewriting history. |
8 | 8 |
9 The effort splits in two parts: | 9 First read about what challenge arise while rewriting history and how we plan to solve them once and for all. |
10 | |
11 .. toctree:: | |
12 :maxdepth: 2 | |
13 | |
14 unstability | |
15 | |
16 The effort is splits in two parts: | |
10 | 17 |
11 * The **obsolete marker** concept aims to provide and alternative to ``strip`` | 18 * The **obsolete marker** concept aims to provide and alternative to ``strip`` |
12 to get ride of changesets. | 19 to get ride of changesets. |
13 | 20 |
14 * The **evolve** mercurial extension to rewrite history using *obsolete marker* | 21 * The **evolve** mercurial extension to rewrite history using *obsolete marker* |
25 | 32 |
26 Evolve is an experimental history rewriting extensions that use obsolete | 33 Evolve is an experimental history rewriting extensions that use obsolete |
27 markers. It is inspired from MQ and pbranch but have multiple advantage over | 34 markers. It is inspired from MQ and pbranch but have multiple advantage over |
28 them: | 35 them: |
29 | 36 |
30 * sticks to "Work where you are" philosophy (I'll need better wording | 37 * Focus on your current work. |
31 for that) | 38 |
39 You can focus your work on a single changeset and take care of adapting | |
40 descendent changeset later. | |
32 | 41 |
33 * Handle **non-linear history with branches and merges** | 42 * Handle **non-linear history with branches and merges** |
34 | 43 |
35 * Use **robust merge** mechanism of mercurial. | 44 * Rely internally on **robust merge** mechanism of mercurial. |
36 | 45 |
37 simple conflict are handled by real merge tools using appropriate ancestor. | 46 Simple conflict are handled by real merge tools using appropriate ancestor. |
38 Conflict are much rarer and much more user friendly. | 47 Conflict are much rarer and much more user friendly. |
39 | 48 |
40 * Mutable history **fully available all the time**. | 49 * Mutable history are **fully available all the time**. |
41 | 50 |
42 You are do not need to unapply and apply patche to access various part of you | 51 You are do not need to unapply and apply patche to access various part of you |
43 history. | 52 history. |
44 | 53 |
45 * Use **plain changeset** only. Evole create and exchange real changeset only. | 54 * Use **plain changeset** only. |
55 | |
56 Evolve create and exchange real changeset only, not patches. | |
46 Mutable history can be used in all usual operation 'pull, push, log, diff …) | 57 Mutable history can be used in all usual operation 'pull, push, log, diff …) |
47 | 58 |
48 * Allow **sharing and collaboration** mutable history without fear of duplicate. | 59 * Allow **sharing and collaboration** mutable history without fear of duplicate. |
49 (thanks to obsolete marker). | 60 (thanks to obsolete marker). |
50 | 61 |
53 .. warning:: The evolve extention and the obsolete marker are at an experimental | 64 .. warning:: The evolve extention and the obsolete marker are at an experimental |
54 stage. While using obsolet you'll likely be exposed to complexe | 65 stage. While using obsolet you'll likely be exposed to complexe |
55 implication of the **obsolete marker** concept. I do not recommend | 66 implication of the **obsolete marker** concept. I do not recommend |
56 non power user to test this at this stage. | 67 non power user to test this at this stage. |
57 | 68 |
69 XXX make sure to read the XXX section before using it. | |
70 | |
58 Production ready version should hide such details to normal user. | 71 Production ready version should hide such details to normal user. |
59 | 72 |
60 To enable the evolve extension use:: | 73 To enable the evolve extension use:: |
61 | 74 |
62 $ hg clone http://hg-dev.octopoid.net/hgwebdir.cgi/mutable-history/ | 75 $ hg clone http://hg-dev.octopoid.net/hgwebdir.cgi/mutable-history/ |
63 $ mutable-history/enable.sh >> ~/.hgrc | 76 $ mutable-history/enable.sh >> ~/.hgrc |
64 | 77 |
65 You will probably want to use the associated version of hgview (QT viewer | 78 You will probably want to use the associated version of hgview (qt viewer |
66 only). :: | 79 recommended). :: |
67 | 80 |
68 $ hg clone http://hg-dev.octopoid.net/hgwebdir.cgi/hgview/ | 81 $ hg clone http://hg-dev.octopoid.net/hgwebdir.cgi/hgview/ |
69 $ cd hgview | 82 $ cd hgview |
70 $ python setup.py install --user | 83 $ python setup.py install --user |
71 | 84 |
85 works with mercurial 2.1 and 2.2 (recommended) | |
72 | 86 |
73 --- | 87 --- |
74 | 88 |
75 For more information see documents below | 89 For more information see documents below: |
76 | 90 |
77 .. toctree:: | 91 .. toctree:: |
78 :maxdepth: 2 | 92 :maxdepth: 2 |
79 | 93 |
80 tutorial | 94 tutorial |
117 | 131 |
118 | 132 |
119 | 133 |
120 | 134 |
121 | 135 |
122 Know canveas | 136 Known limitation and bug |
123 ================================= | 137 ================================= |
124 | 138 |
125 Here is a list of know issue that will be fixed later: | 139 Here is a list of know issue that will be fixed later: |
126 | 140 |
127 * Unstable changeset turns secret. | |
128 | 141 |
129 * ``hg stabilize`` does not handle conflict. | |
130 | 142 |
131 * Mercurial think you are pushing additional heads even when the new head | 143 * ``hg stabilize`` does not handle merge conflict. |
132 obsolete another one. You have to use hg push -f more than necessary. | 144 |
145 You must fallback to graft or rebase when that happen. | |
146 | |
147 * rewritinf conflict are not detected yet``hg stabilize`` does not handle them. | |
133 | 148 |
134 * ``hg update`` can move an obsolete parent | 149 * ``hg update`` can move an obsolete parent |
135 | 150 |
136 * you need to provideto graft --continue -O if you started you graft using -O. | 151 * you need to provide to `graft --continue -O` if you started you graft using `-O`. |
137 | |
138 * hg graphlog show extinct changeset | |
139 | |
140 * hg heads show extinct changeset | |
141 | 152 |
142 * hg merge considered extinct head as valid target. requiring you to manually | 153 * hg merge considered extinct head as valid target. requiring you to manually |
143 specify target all the time. | 154 specify target all the time. |
144 | 155 |
145 * obsolete relation exchange crash (as in traceback) on static http repo. | 156 * obsolete relation exchange crash (as in traceback) on static http repo. |
157 | |
158 * Extinct changeset are turned secret by various commands. | |
159 | |
160 * Extinct changesets are hidden using the *hidden* feature of mercurial only | |
161 supported by a few commands. | |
162 | |
163 Only ``hg log``, ``hgview`` and `hg glog` (2.2 only) support it. ``hg head`` or other visual viewer don't. | |
164 | |
165 * hg heads show extinct changeset | |
166 | |
167 Fixed in 2.2 | |
168 --------------------------------- | |
169 | |
170 * hg graphlog show extinct changeset | |
171 | |
172 * Mercurial 2.1 think you are pushing additional heads even when the new head | |
173 obsolete another one. You have to use hg push -f more than necessary. | |
146 | 174 |
147 | 175 |
148 | 176 |
149 | 177 |
150 | 178 |