19 |
19 |
20 |
20 |
21 Abstraction from history rewriting UI |
21 Abstraction from history rewriting UI |
22 ``````````````````````````````````````````` |
22 ``````````````````````````````````````````` |
23 |
23 |
24 How Mercurial handle obsolete marker is independent from who decide to create |
24 How Mercurial handle obsolete marker is independent from what create |
25 them and what actual operation solve error case. Any of the existing history |
25 them and what actual operation solves error case. Any of the existing history |
26 rewriting UI (rebase, mq, histedit) can lay obsolete marker and resolve |
26 rewriting UI (rebase, mq, histedit) can lay obsolete marker and resolve |
27 situation created by other. To go further a hook system of obsolete marker |
27 situation created by other. To go further a hook system of obsolete marker |
28 creation would allow each mechanism to collaborate with other though a standard |
28 creation would allow each mechanism to collaborate with other though a standard |
29 and central mechanism. |
29 and central mechanism. |
30 |
30 |
|
31 Obsolete marker content |
|
32 ``````````````````````````` |
|
33 |
|
34 In the current implementation obsolete marker contains:: |
|
35 |
|
36 'id': "unique id of the obsolete marker" |
|
37 'subjects': "0-N newer version of changeset in "object" (as ordered list) |
|
38 'object': "old and obsolete version" |
|
39 'date': "When was this marker created ?" |
|
40 'user': "Who did that ?" |
|
41 'reason': "Why was it done" |
|
42 |
|
43 Grouping them for operation that create multiple markers are once may be a good |
|
44 idea. (would help, exchange and cancelation) |
31 |
45 |
32 Obsolete marker storage |
46 Obsolete marker storage |
33 ``````````````````````````` |
47 ``````````````````````````` |
34 |
48 |
35 Obsolete marker will most likely be stored outside standard history. They are |
49 Obsolete marker will most likely be stored outside standard history. They are |
74 ----------------------------------------------------- |
88 ----------------------------------------------------- |
75 |
89 |
76 An experimental implementatione exists. What have been done so far. |
90 An experimental implementatione exists. What have been done so far. |
77 |
91 |
78 |
92 |
79 * 1-1 obsolete marker stored outside history, |
93 * rich markers stored outside history, |
|
94 * obsolete markers exchange through pushkey, |
80 |
95 |
81 * compute obsolete-tip |
96 * compute obsolete-tip (newest version of a changeset) |
82 |
|
83 * obsolete marker exchange through pushkey, |
|
84 |
97 |
85 * compute obsolete, unstable, extinct and suspended set. |
98 * compute obsolete, unstable, extinct and suspended set. |
86 |
99 |
87 * hidden extinct changesets for UI. |
100 * hidden extinct changesets for UI. |
88 |
101 |
89 * Use secret phase to remove from discovery obsolete and unstable changeset (to |
102 * Require `--force` to push unstable history. |
90 be improved soon) |
103 |
|
104 * Use secret phase to remove extinct changesets from discovery. |
91 |
105 |
92 * alter rebase to use obsolete marker instead of stripping. (XXX break --keep for now) |
106 * alter rebase to use obsolete marker instead of stripping. (XXX break --keep for now) |
93 |
107 |
94 * Have an experimental mq-like extension to rewrite history (more on that later) |
108 * Have an experimental mq-like extension to rewrite history (more on that later) |
95 |
109 |