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