Mercurial > evolve
annotate docs/troubles-handling.rst @ 5486:381df06460e8
unstable-list: add list the source of complexity during resolution
All I and Sushil could think about.
author | Pierre-Yves David <pierre-yves.david@octobus.net> |
---|---|
date | Fri, 14 Aug 2020 18:10:10 +0200 |
parents | 457d8003e840 |
children | 7c543787d5c6 |
rev | line source |
---|---|
5482
3435822cd758
doc: add the bases of a developer doc for instability
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
diff
changeset
|
1 .. Copyright 2020 Sushil Khanchi <sushilkhanchi97@gmail.com> |
3435822cd758
doc: add the bases of a developer doc for instability
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
diff
changeset
|
2 .. Octobus SAS <contact@octobus.net> |
3435822cd758
doc: add the bases of a developer doc for instability
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
diff
changeset
|
3 |
3435822cd758
doc: add the bases of a developer doc for instability
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
diff
changeset
|
4 ----------------------------------------------------------- |
3435822cd758
doc: add the bases of a developer doc for instability
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
diff
changeset
|
5 Possible troubles in rewriting history and their resolution |
3435822cd758
doc: add the bases of a developer doc for instability
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
diff
changeset
|
6 ----------------------------------------------------------- |
3435822cd758
doc: add the bases of a developer doc for instability
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
diff
changeset
|
7 |
5483
e82d336bf31e
unstable-list: add an introduction text
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
5482
diff
changeset
|
8 Rewriting history, and especially rewriting draft history that have been |
e82d336bf31e
unstable-list: add an introduction text
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
5482
diff
changeset
|
9 exchanged can lead to "unstable" situation. |
e82d336bf31e
unstable-list: add an introduction text
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
5482
diff
changeset
|
10 |
e82d336bf31e
unstable-list: add an introduction text
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
5482
diff
changeset
|
11 This document is intended for developer of the changeset evolution concept. It |
e82d336bf31e
unstable-list: add an introduction text
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
5482
diff
changeset
|
12 cover through the technical aspects of each "instability" a changeset can get |
e82d336bf31e
unstable-list: add an introduction text
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
5482
diff
changeset
|
13 into. A aims at building an exhaustive list of each cases and sub-cases and the |
e82d336bf31e
unstable-list: add an introduction text
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
5482
diff
changeset
|
14 status of automatic resolution for these cases. |
e82d336bf31e
unstable-list: add an introduction text
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
5482
diff
changeset
|
15 |
e82d336bf31e
unstable-list: add an introduction text
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
5482
diff
changeset
|
16 Public changeset are part of the permanent history and are never considered |
e82d336bf31e
unstable-list: add an introduction text
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
5482
diff
changeset
|
17 unstable. |
e82d336bf31e
unstable-list: add an introduction text
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
5482
diff
changeset
|
18 |
5482
3435822cd758
doc: add the bases of a developer doc for instability
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
diff
changeset
|
19 Orphan |
3435822cd758
doc: add the bases of a developer doc for instability
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
diff
changeset
|
20 ######### |
3435822cd758
doc: add the bases of a developer doc for instability
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
diff
changeset
|
21 |
3435822cd758
doc: add the bases of a developer doc for instability
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
diff
changeset
|
22 Basics |
3435822cd758
doc: add the bases of a developer doc for instability
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
diff
changeset
|
23 ****** |
3435822cd758
doc: add the bases of a developer doc for instability
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
diff
changeset
|
24 |
5484
e3302ad5ad77
unstable-list: add the basic about orphan changesets
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
5483
diff
changeset
|
25 A changeset is orphan when there is at least one obsolete ancestor. |
e3302ad5ad77
unstable-list: add the basic about orphan changesets
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
5483
diff
changeset
|
26 |
e3302ad5ad77
unstable-list: add the basic about orphan changesets
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
5483
diff
changeset
|
27 As a resolution, we need to find a new appropriate parents for the |
e3302ad5ad77
unstable-list: add the basic about orphan changesets
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
5483
diff
changeset
|
28 changeset and rebase the orphan there. |
e3302ad5ad77
unstable-list: add the basic about orphan changesets
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
5483
diff
changeset
|
29 |
e3302ad5ad77
unstable-list: add the basic about orphan changesets
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
5483
diff
changeset
|
30 If the parents of an orphan changeset are orphan themself, they will have to be |
e3302ad5ad77
unstable-list: add the basic about orphan changesets
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
5483
diff
changeset
|
31 "stabilised" fist. |
e3302ad5ad77
unstable-list: add the basic about orphan changesets
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
5483
diff
changeset
|
32 |
5482
3435822cd758
doc: add the bases of a developer doc for instability
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
diff
changeset
|
33 Cause of trouble |
3435822cd758
doc: add the bases of a developer doc for instability
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
diff
changeset
|
34 **************** |
3435822cd758
doc: add the bases of a developer doc for instability
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
diff
changeset
|
35 |
5485
457d8003e840
unstable-list: add information about when/why orphan appears
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
5484
diff
changeset
|
36 Orphan can appears because the use locally rewrite changeset with descendants. |
457d8003e840
unstable-list: add information about when/why orphan appears
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
5484
diff
changeset
|
37 In this case the orphan are created when the command run. |
457d8003e840
unstable-list: add information about when/why orphan appears
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
5484
diff
changeset
|
38 |
457d8003e840
unstable-list: add information about when/why orphan appears
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
5484
diff
changeset
|
39 Orphan can also happens when the users created new changeset on draft that got |
457d8003e840
unstable-list: add information about when/why orphan appears
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
5484
diff
changeset
|
40 rewritten in another repository. The orphan are then "discovered" when the |
457d8003e840
unstable-list: add information about when/why orphan appears
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
5484
diff
changeset
|
41 obsolescence information of the ancestors is pulled in the local repository. |
457d8003e840
unstable-list: add information about when/why orphan appears
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
5484
diff
changeset
|
42 |
5482
3435822cd758
doc: add the bases of a developer doc for instability
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
diff
changeset
|
43 Source of Complexity |
3435822cd758
doc: add the bases of a developer doc for instability
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
diff
changeset
|
44 ******************** |
3435822cd758
doc: add the bases of a developer doc for instability
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
diff
changeset
|
45 |
5486
381df06460e8
unstable-list: add list the source of complexity during resolution
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
5485
diff
changeset
|
46 There can be different situations we need to take care of when dealing with |
381df06460e8
unstable-list: add list the source of complexity during resolution
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
5485
diff
changeset
|
47 resolution of an orphan changeset, like: |
381df06460e8
unstable-list: add list the source of complexity during resolution
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
5485
diff
changeset
|
48 |
381df06460e8
unstable-list: add list the source of complexity during resolution
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
5485
diff
changeset
|
49 * parents might not be obsolete (yet) and orphan themself. They will need to be |
381df06460e8
unstable-list: add list the source of complexity during resolution
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
5485
diff
changeset
|
50 resolved first. |
381df06460e8
unstable-list: add list the source of complexity during resolution
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
5485
diff
changeset
|
51 * obsolete parent has conflicting rewrites (content-divergence), so there might |
381df06460e8
unstable-list: add list the source of complexity during resolution
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
5485
diff
changeset
|
52 not be an obvious "good spot" to rebase the changeset too. |
381df06460e8
unstable-list: add list the source of complexity during resolution
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
5485
diff
changeset
|
53 * obsolete parent could have been prune, so it has not direct successors, |
381df06460e8
unstable-list: add list the source of complexity during resolution
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
5485
diff
changeset
|
54 * obsolete parent was split in multiple changesets. This comes with multiple |
381df06460e8
unstable-list: add list the source of complexity during resolution
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
5485
diff
changeset
|
55 variants: |
381df06460e8
unstable-list: add list the source of complexity during resolution
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
5485
diff
changeset
|
56 * successors could be linear of spread accross multiple branches, |
381df06460e8
unstable-list: add list the source of complexity during resolution
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
5485
diff
changeset
|
57 * successors could have been reordered after the initial split, |
381df06460e8
unstable-list: add list the source of complexity during resolution
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
5485
diff
changeset
|
58 * Some of the successors could have been pruned. |
381df06460e8
unstable-list: add list the source of complexity during resolution
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
5485
diff
changeset
|
59 * the orphan changeset can be a merge and orphan may come any numbers of parents |
381df06460e8
unstable-list: add list the source of complexity during resolution
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
5485
diff
changeset
|
60 * rebasing might lead to conflict. |
381df06460e8
unstable-list: add list the source of complexity during resolution
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
5485
diff
changeset
|
61 |
5482
3435822cd758
doc: add the bases of a developer doc for instability
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
diff
changeset
|
62 Details of Sub cases |
3435822cd758
doc: add the bases of a developer doc for instability
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
diff
changeset
|
63 ******************** |
3435822cd758
doc: add the bases of a developer doc for instability
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
diff
changeset
|
64 |
3435822cd758
doc: add the bases of a developer doc for instability
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
diff
changeset
|
65 Phase-Divergence |
3435822cd758
doc: add the bases of a developer doc for instability
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
diff
changeset
|
66 ################## |
3435822cd758
doc: add the bases of a developer doc for instability
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
diff
changeset
|
67 |
3435822cd758
doc: add the bases of a developer doc for instability
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
diff
changeset
|
68 Basics |
3435822cd758
doc: add the bases of a developer doc for instability
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
diff
changeset
|
69 ****** |
3435822cd758
doc: add the bases of a developer doc for instability
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
diff
changeset
|
70 |
3435822cd758
doc: add the bases of a developer doc for instability
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
diff
changeset
|
71 Cause of trouble |
3435822cd758
doc: add the bases of a developer doc for instability
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
diff
changeset
|
72 **************** |
3435822cd758
doc: add the bases of a developer doc for instability
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
diff
changeset
|
73 |
3435822cd758
doc: add the bases of a developer doc for instability
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
diff
changeset
|
74 Source of Complexity |
3435822cd758
doc: add the bases of a developer doc for instability
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
diff
changeset
|
75 ******************** |
3435822cd758
doc: add the bases of a developer doc for instability
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
diff
changeset
|
76 |
3435822cd758
doc: add the bases of a developer doc for instability
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
diff
changeset
|
77 Details of Sub cases |
3435822cd758
doc: add the bases of a developer doc for instability
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
diff
changeset
|
78 ******************** |
3435822cd758
doc: add the bases of a developer doc for instability
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
diff
changeset
|
79 |
3435822cd758
doc: add the bases of a developer doc for instability
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
diff
changeset
|
80 Content-Divergence |
3435822cd758
doc: add the bases of a developer doc for instability
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
diff
changeset
|
81 ################## |
3435822cd758
doc: add the bases of a developer doc for instability
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
diff
changeset
|
82 |
3435822cd758
doc: add the bases of a developer doc for instability
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
diff
changeset
|
83 Basics |
3435822cd758
doc: add the bases of a developer doc for instability
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
diff
changeset
|
84 ****** |
3435822cd758
doc: add the bases of a developer doc for instability
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
diff
changeset
|
85 |
3435822cd758
doc: add the bases of a developer doc for instability
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
diff
changeset
|
86 Cause of trouble |
3435822cd758
doc: add the bases of a developer doc for instability
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
diff
changeset
|
87 **************** |
3435822cd758
doc: add the bases of a developer doc for instability
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
diff
changeset
|
88 |
3435822cd758
doc: add the bases of a developer doc for instability
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
diff
changeset
|
89 Source of Complexity |
3435822cd758
doc: add the bases of a developer doc for instability
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
diff
changeset
|
90 ******************** |
3435822cd758
doc: add the bases of a developer doc for instability
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
diff
changeset
|
91 |
3435822cd758
doc: add the bases of a developer doc for instability
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
diff
changeset
|
92 Details of Sub cases |
3435822cd758
doc: add the bases of a developer doc for instability
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
diff
changeset
|
93 ******************** |