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