Mercurial > evolve
annotate docs/index.rst @ 165:ef6113f3d38e
title reorganisation
author | Pierre-Yves David <pierre-yves.david@logilab.fr> |
---|---|
date | Mon, 26 Mar 2012 18:24:39 +0200 |
parents | c81d286c4a5b |
children | 8f8a52cd0b9f |
rev | line source |
---|---|
161
4e3f25ba5401
More doc and index with sphynx
Pierre-Yves David <pierre-yves.david@logilab.fr>
parents:
diff
changeset
|
1 ======================================== |
4e3f25ba5401
More doc and index with sphynx
Pierre-Yves David <pierre-yves.david@logilab.fr>
parents:
diff
changeset
|
2 Safe Mutable History |
4e3f25ba5401
More doc and index with sphynx
Pierre-Yves David <pierre-yves.david@logilab.fr>
parents:
diff
changeset
|
3 ======================================== |
4e3f25ba5401
More doc and index with sphynx
Pierre-Yves David <pierre-yves.david@logilab.fr>
parents:
diff
changeset
|
4 |
4e3f25ba5401
More doc and index with sphynx
Pierre-Yves David <pierre-yves.david@logilab.fr>
parents:
diff
changeset
|
5 |
4e3f25ba5401
More doc and index with sphynx
Pierre-Yves David <pierre-yves.david@logilab.fr>
parents:
diff
changeset
|
6 Here are various Materials on planned improvement to mercurial regarding |
4e3f25ba5401
More doc and index with sphynx
Pierre-Yves David <pierre-yves.david@logilab.fr>
parents:
diff
changeset
|
7 rewriting mutable history. |
4e3f25ba5401
More doc and index with sphynx
Pierre-Yves David <pierre-yves.david@logilab.fr>
parents:
diff
changeset
|
8 |
164
c81d286c4a5b
improved intro about evolve
Pierre-Yves David <pierre-yves.david@logilab.fr>
parents:
163
diff
changeset
|
9 The effort split in two part: |
161
4e3f25ba5401
More doc and index with sphynx
Pierre-Yves David <pierre-yves.david@logilab.fr>
parents:
diff
changeset
|
10 |
163
92b073d13f2d
more doc update
Pierre-Yves David <pierre-yves.david@logilab.fr>
parents:
161
diff
changeset
|
11 * The **obsolete marker** concept aiming to provide and alternative to strip to |
92b073d13f2d
more doc update
Pierre-Yves David <pierre-yves.david@logilab.fr>
parents:
161
diff
changeset
|
12 get ride of changesets. |
161
4e3f25ba5401
More doc and index with sphynx
Pierre-Yves David <pierre-yves.david@logilab.fr>
parents:
diff
changeset
|
13 |
163
92b073d13f2d
more doc update
Pierre-Yves David <pierre-yves.david@logilab.fr>
parents:
161
diff
changeset
|
14 * A mercurial extension: **evolve** that rewrite using *obsolete marker* |
92b073d13f2d
more doc update
Pierre-Yves David <pierre-yves.david@logilab.fr>
parents:
161
diff
changeset
|
15 under the hood. |
92b073d13f2d
more doc update
Pierre-Yves David <pierre-yves.david@logilab.fr>
parents:
161
diff
changeset
|
16 |
161
4e3f25ba5401
More doc and index with sphynx
Pierre-Yves David <pierre-yves.david@logilab.fr>
parents:
diff
changeset
|
17 |
163
92b073d13f2d
more doc update
Pierre-Yves David <pierre-yves.david@logilab.fr>
parents:
161
diff
changeset
|
18 regarding mercurial internals, the first and most important step is the |
92b073d13f2d
more doc update
Pierre-Yves David <pierre-yves.david@logilab.fr>
parents:
161
diff
changeset
|
19 **obsolete marker**. However most user will never be directly exposed to the |
92b073d13f2d
more doc update
Pierre-Yves David <pierre-yves.david@logilab.fr>
parents:
161
diff
changeset
|
20 concept. For this reason document about changeset evolution are put first. |
161
4e3f25ba5401
More doc and index with sphynx
Pierre-Yves David <pierre-yves.david@logilab.fr>
parents:
diff
changeset
|
21 |
163
92b073d13f2d
more doc update
Pierre-Yves David <pierre-yves.david@logilab.fr>
parents:
161
diff
changeset
|
22 |
92b073d13f2d
more doc update
Pierre-Yves David <pierre-yves.david@logilab.fr>
parents:
161
diff
changeset
|
23 Evolve: A robust alternative to MQ |
92b073d13f2d
more doc update
Pierre-Yves David <pierre-yves.david@logilab.fr>
parents:
161
diff
changeset
|
24 ==================================== |
161
4e3f25ba5401
More doc and index with sphynx
Pierre-Yves David <pierre-yves.david@logilab.fr>
parents:
diff
changeset
|
25 |
164
c81d286c4a5b
improved intro about evolve
Pierre-Yves David <pierre-yves.david@logilab.fr>
parents:
163
diff
changeset
|
26 Evolve is an experimental history rewriting extensions that use the obsolete |
c81d286c4a5b
improved intro about evolve
Pierre-Yves David <pierre-yves.david@logilab.fr>
parents:
163
diff
changeset
|
27 marker. It is inspired from MQ and pbranch but have multiple advantage over |
c81d286c4a5b
improved intro about evolve
Pierre-Yves David <pierre-yves.david@logilab.fr>
parents:
163
diff
changeset
|
28 them. |
161
4e3f25ba5401
More doc and index with sphynx
Pierre-Yves David <pierre-yves.david@logilab.fr>
parents:
diff
changeset
|
29 |
164
c81d286c4a5b
improved intro about evolve
Pierre-Yves David <pierre-yves.david@logilab.fr>
parents:
163
diff
changeset
|
30 * sticks to "Work where you are" philosophy (I'll need better wording |
c81d286c4a5b
improved intro about evolve
Pierre-Yves David <pierre-yves.david@logilab.fr>
parents:
163
diff
changeset
|
31 for that) |
c81d286c4a5b
improved intro about evolve
Pierre-Yves David <pierre-yves.david@logilab.fr>
parents:
163
diff
changeset
|
32 |
c81d286c4a5b
improved intro about evolve
Pierre-Yves David <pierre-yves.david@logilab.fr>
parents:
163
diff
changeset
|
33 * Handle any kind history. Even history with branch and merge. |
c81d286c4a5b
improved intro about evolve
Pierre-Yves David <pierre-yves.david@logilab.fr>
parents:
163
diff
changeset
|
34 |
c81d286c4a5b
improved intro about evolve
Pierre-Yves David <pierre-yves.david@logilab.fr>
parents:
163
diff
changeset
|
35 * Use robust mercurial's merge mechanism |
c81d286c4a5b
improved intro about evolve
Pierre-Yves David <pierre-yves.david@logilab.fr>
parents:
163
diff
changeset
|
36 |
c81d286c4a5b
improved intro about evolve
Pierre-Yves David <pierre-yves.david@logilab.fr>
parents:
163
diff
changeset
|
37 simple conflict are handled by real merge tools using appropriate ancestor. |
c81d286c4a5b
improved intro about evolve
Pierre-Yves David <pierre-yves.david@logilab.fr>
parents:
163
diff
changeset
|
38 Conflict are much rarer and much more user friendly. |
161
4e3f25ba5401
More doc and index with sphynx
Pierre-Yves David <pierre-yves.david@logilab.fr>
parents:
diff
changeset
|
39 |
164
c81d286c4a5b
improved intro about evolve
Pierre-Yves David <pierre-yves.david@logilab.fr>
parents:
163
diff
changeset
|
40 * All mutable history available at the same time |
c81d286c4a5b
improved intro about evolve
Pierre-Yves David <pierre-yves.david@logilab.fr>
parents:
163
diff
changeset
|
41 |
c81d286c4a5b
improved intro about evolve
Pierre-Yves David <pierre-yves.david@logilab.fr>
parents:
163
diff
changeset
|
42 You are do not need to unapply and apply patche to access various part of you |
c81d286c4a5b
improved intro about evolve
Pierre-Yves David <pierre-yves.david@logilab.fr>
parents:
163
diff
changeset
|
43 history. |
163
92b073d13f2d
more doc update
Pierre-Yves David <pierre-yves.david@logilab.fr>
parents:
161
diff
changeset
|
44 |
164
c81d286c4a5b
improved intro about evolve
Pierre-Yves David <pierre-yves.david@logilab.fr>
parents:
163
diff
changeset
|
45 * Use plain changeset only. Evole create and exchange real changeset only. |
c81d286c4a5b
improved intro about evolve
Pierre-Yves David <pierre-yves.david@logilab.fr>
parents:
163
diff
changeset
|
46 Mutable history can be used in all usual operation 'pull, push, log, diff …) |
c81d286c4a5b
improved intro about evolve
Pierre-Yves David <pierre-yves.david@logilab.fr>
parents:
163
diff
changeset
|
47 |
c81d286c4a5b
improved intro about evolve
Pierre-Yves David <pierre-yves.david@logilab.fr>
parents:
163
diff
changeset
|
48 * Allow sharing and collaborating mutable history without fear of duplicate. |
c81d286c4a5b
improved intro about evolve
Pierre-Yves David <pierre-yves.david@logilab.fr>
parents:
163
diff
changeset
|
49 (thanks to obsolete marker). |
c81d286c4a5b
improved intro about evolve
Pierre-Yves David <pierre-yves.david@logilab.fr>
parents:
163
diff
changeset
|
50 |
c81d286c4a5b
improved intro about evolve
Pierre-Yves David <pierre-yves.david@logilab.fr>
parents:
163
diff
changeset
|
51 * Cover all mq usage but guard. |
c81d286c4a5b
improved intro about evolve
Pierre-Yves David <pierre-yves.david@logilab.fr>
parents:
163
diff
changeset
|
52 |
c81d286c4a5b
improved intro about evolve
Pierre-Yves David <pierre-yves.david@logilab.fr>
parents:
163
diff
changeset
|
53 .. warning:: The evolve extention and the obsolete marker are at an experimental |
163
92b073d13f2d
more doc update
Pierre-Yves David <pierre-yves.david@logilab.fr>
parents:
161
diff
changeset
|
54 stage. While using obsolet you'll likely be exposed to complexe |
92b073d13f2d
more doc update
Pierre-Yves David <pierre-yves.david@logilab.fr>
parents:
161
diff
changeset
|
55 implication of the **obsolete marker** concept. I do not recommend |
92b073d13f2d
more doc update
Pierre-Yves David <pierre-yves.david@logilab.fr>
parents:
161
diff
changeset
|
56 non power user to test this at this stage. |
92b073d13f2d
more doc update
Pierre-Yves David <pierre-yves.david@logilab.fr>
parents:
161
diff
changeset
|
57 |
92b073d13f2d
more doc update
Pierre-Yves David <pierre-yves.david@logilab.fr>
parents:
161
diff
changeset
|
58 Production ready version should hide such details to normal user. |
92b073d13f2d
more doc update
Pierre-Yves David <pierre-yves.david@logilab.fr>
parents:
161
diff
changeset
|
59 |
92b073d13f2d
more doc update
Pierre-Yves David <pierre-yves.david@logilab.fr>
parents:
161
diff
changeset
|
60 To enable the evolve extension use:: |
92b073d13f2d
more doc update
Pierre-Yves David <pierre-yves.david@logilab.fr>
parents:
161
diff
changeset
|
61 |
92b073d13f2d
more doc update
Pierre-Yves David <pierre-yves.david@logilab.fr>
parents:
161
diff
changeset
|
62 $ hg clone http://hg-dev.octopoid.net/hgwebdir.cgi/mutable-history/ |
92b073d13f2d
more doc update
Pierre-Yves David <pierre-yves.david@logilab.fr>
parents:
161
diff
changeset
|
63 $ mutable-history/enable.sh > ~/.hgrc |
161
4e3f25ba5401
More doc and index with sphynx
Pierre-Yves David <pierre-yves.david@logilab.fr>
parents:
diff
changeset
|
64 |
4e3f25ba5401
More doc and index with sphynx
Pierre-Yves David <pierre-yves.david@logilab.fr>
parents:
diff
changeset
|
65 |
4e3f25ba5401
More doc and index with sphynx
Pierre-Yves David <pierre-yves.david@logilab.fr>
parents:
diff
changeset
|
66 .. toctree:: |
4e3f25ba5401
More doc and index with sphynx
Pierre-Yves David <pierre-yves.david@logilab.fr>
parents:
diff
changeset
|
67 :maxdepth: 1 |
4e3f25ba5401
More doc and index with sphynx
Pierre-Yves David <pierre-yves.david@logilab.fr>
parents:
diff
changeset
|
68 |
4e3f25ba5401
More doc and index with sphynx
Pierre-Yves David <pierre-yves.david@logilab.fr>
parents:
diff
changeset
|
69 tutorial |
4e3f25ba5401
More doc and index with sphynx
Pierre-Yves David <pierre-yves.david@logilab.fr>
parents:
diff
changeset
|
70 evolve-faq |
4e3f25ba5401
More doc and index with sphynx
Pierre-Yves David <pierre-yves.david@logilab.fr>
parents:
diff
changeset
|
71 from-mq |
4e3f25ba5401
More doc and index with sphynx
Pierre-Yves David <pierre-yves.david@logilab.fr>
parents:
diff
changeset
|
72 |
165
ef6113f3d38e
title reorganisation
Pierre-Yves David <pierre-yves.david@logilab.fr>
parents:
164
diff
changeset
|
73 Smart changeset deletion: Obselete Marker |
ef6113f3d38e
title reorganisation
Pierre-Yves David <pierre-yves.david@logilab.fr>
parents:
164
diff
changeset
|
74 ========================================== |
161
4e3f25ba5401
More doc and index with sphynx
Pierre-Yves David <pierre-yves.david@logilab.fr>
parents:
diff
changeset
|
75 |
4e3f25ba5401
More doc and index with sphynx
Pierre-Yves David <pierre-yves.david@logilab.fr>
parents:
diff
changeset
|
76 for dev and advanced user |
4e3f25ba5401
More doc and index with sphynx
Pierre-Yves David <pierre-yves.david@logilab.fr>
parents:
diff
changeset
|
77 |
4e3f25ba5401
More doc and index with sphynx
Pierre-Yves David <pierre-yves.david@logilab.fr>
parents:
diff
changeset
|
78 |
4e3f25ba5401
More doc and index with sphynx
Pierre-Yves David <pierre-yves.david@logilab.fr>
parents:
diff
changeset
|
79 .. toctree:: |
4e3f25ba5401
More doc and index with sphynx
Pierre-Yves David <pierre-yves.david@logilab.fr>
parents:
diff
changeset
|
80 :maxdepth: 1 |
4e3f25ba5401
More doc and index with sphynx
Pierre-Yves David <pierre-yves.david@logilab.fr>
parents:
diff
changeset
|
81 |
4e3f25ba5401
More doc and index with sphynx
Pierre-Yves David <pierre-yves.david@logilab.fr>
parents:
diff
changeset
|
82 obs-concept |
4e3f25ba5401
More doc and index with sphynx
Pierre-Yves David <pierre-yves.david@logilab.fr>
parents:
diff
changeset
|
83 glossary |
4e3f25ba5401
More doc and index with sphynx
Pierre-Yves David <pierre-yves.david@logilab.fr>
parents:
diff
changeset
|
84 obs-implementation |
4e3f25ba5401
More doc and index with sphynx
Pierre-Yves David <pierre-yves.david@logilab.fr>
parents:
diff
changeset
|
85 |
4e3f25ba5401
More doc and index with sphynx
Pierre-Yves David <pierre-yves.david@logilab.fr>
parents:
diff
changeset
|
86 |
165
ef6113f3d38e
title reorganisation
Pierre-Yves David <pierre-yves.david@logilab.fr>
parents:
164
diff
changeset
|
87 |
ef6113f3d38e
title reorganisation
Pierre-Yves David <pierre-yves.david@logilab.fr>
parents:
164
diff
changeset
|
88 |
ef6113f3d38e
title reorganisation
Pierre-Yves David <pierre-yves.david@logilab.fr>
parents:
164
diff
changeset
|
89 |
ef6113f3d38e
title reorganisation
Pierre-Yves David <pierre-yves.david@logilab.fr>
parents:
164
diff
changeset
|
90 |
ef6113f3d38e
title reorganisation
Pierre-Yves David <pierre-yves.david@logilab.fr>
parents:
164
diff
changeset
|
91 Know canveas |
ef6113f3d38e
title reorganisation
Pierre-Yves David <pierre-yves.david@logilab.fr>
parents:
164
diff
changeset
|
92 ================================= |
ef6113f3d38e
title reorganisation
Pierre-Yves David <pierre-yves.david@logilab.fr>
parents:
164
diff
changeset
|
93 |
ef6113f3d38e
title reorganisation
Pierre-Yves David <pierre-yves.david@logilab.fr>
parents:
164
diff
changeset
|
94 Big flashy warning on current remaining issue |