Mercurial > evolve
annotate docs/troubles-handling.rst @ 6890:7ec9f4b04519 stable
topic: compatibility for revbranchcache being in a separate module now
The newer revbranchcache defaults to v2, so the name of the cache file is
different. Let's glob and hide it, since its actual contents look the same (at
least for the moment).
author | Anton Shestakov <av6@dwimlabs.net> |
---|---|
date | Sat, 28 Sep 2024 16:09:03 +0400 |
parents | 43a5371fa669 |
children |
rev | line source |
---|---|
5506
c408a31d8883
unstable-list: fix title level
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
5505
diff
changeset
|
1 ########################################################### |
5503
90074635c1f8
unstable-list: move copytright after the title
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
5500
diff
changeset
|
2 Possible troubles in rewriting history and their resolution |
5506
c408a31d8883
unstable-list: fix title level
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
5505
diff
changeset
|
3 ########################################################### |
5503
90074635c1f8
unstable-list: move copytright after the title
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
5500
diff
changeset
|
4 |
5482
3435822cd758
doc: add the bases of a developer doc for instability
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
diff
changeset
|
5 .. 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
|
6 .. 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
|
7 |
3435822cd758
doc: add the bases of a developer doc for instability
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
diff
changeset
|
8 |
5483
e82d336bf31e
unstable-list: add an introduction text
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
5482
diff
changeset
|
9 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
|
10 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
|
11 |
e82d336bf31e
unstable-list: add an introduction text
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
5482
diff
changeset
|
12 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
|
13 cover through the technical aspects of each "instability" a changeset can get |
5492
76963e896ea6
unstable-list: some cleanup
Sushil khanchi <sushilkhanchi97@gmail.com>
parents:
5491
diff
changeset
|
14 into. It aims at building an exhaustive list of each cases and sub-cases and the |
5483
e82d336bf31e
unstable-list: add an introduction text
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
5482
diff
changeset
|
15 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
|
16 |
e82d336bf31e
unstable-list: add an introduction text
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
5482
diff
changeset
|
17 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
|
18 unstable. |
e82d336bf31e
unstable-list: add an introduction text
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
5482
diff
changeset
|
19 |
5504
a2274a848008
unstable-list: add a general table of content
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
5503
diff
changeset
|
20 .. contents:: :depth: 4 |
a2274a848008
unstable-list: add a general table of content
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
5503
diff
changeset
|
21 |
5506
c408a31d8883
unstable-list: fix title level
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
5505
diff
changeset
|
22 ****** |
5482
3435822cd758
doc: add the bases of a developer doc for instability
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
diff
changeset
|
23 Orphan |
5506
c408a31d8883
unstable-list: fix title level
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
5505
diff
changeset
|
24 ****** |
5482
3435822cd758
doc: add the bases of a developer doc for instability
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
diff
changeset
|
25 |
3435822cd758
doc: add the bases of a developer doc for instability
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
diff
changeset
|
26 Basics |
5506
c408a31d8883
unstable-list: fix title level
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
5505
diff
changeset
|
27 ====== |
5482
3435822cd758
doc: add the bases of a developer doc for instability
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
diff
changeset
|
28 |
5484
e3302ad5ad77
unstable-list: add the basic about orphan changesets
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
5483
diff
changeset
|
29 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
|
30 |
e3302ad5ad77
unstable-list: add the basic about orphan changesets
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
5483
diff
changeset
|
31 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
|
32 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
|
33 |
e3302ad5ad77
unstable-list: add the basic about orphan changesets
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
5483
diff
changeset
|
34 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
|
35 "stabilised" fist. |
e3302ad5ad77
unstable-list: add the basic about orphan changesets
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
5483
diff
changeset
|
36 |
5482
3435822cd758
doc: add the bases of a developer doc for instability
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
diff
changeset
|
37 Cause of trouble |
5506
c408a31d8883
unstable-list: fix title level
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
5505
diff
changeset
|
38 ================ |
5482
3435822cd758
doc: add the bases of a developer doc for instability
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
diff
changeset
|
39 |
5492
76963e896ea6
unstable-list: some cleanup
Sushil khanchi <sushilkhanchi97@gmail.com>
parents:
5491
diff
changeset
|
40 Orphan can appears because the user locally rewrite changeset with descendants. |
5496
87aad54c0f1f
unstable-list: expand a bit the "cause of trouble" for phase divergence
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
5495
diff
changeset
|
41 In this case the orphan are created when the command run. They are few real use |
87aad54c0f1f
unstable-list: expand a bit the "cause of trouble" for phase divergence
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
5495
diff
changeset
|
42 case for such action and the user interface should focus on discouraging it. |
5485
457d8003e840
unstable-list: add information about when/why orphan appears
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
5484
diff
changeset
|
43 |
457d8003e840
unstable-list: add information about when/why orphan appears
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
5484
diff
changeset
|
44 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
|
45 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
|
46 obsolescence information of the ancestors is pulled in the local repository. |
5496
87aad54c0f1f
unstable-list: expand a bit the "cause of trouble" for phase divergence
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
5495
diff
changeset
|
47 This is the most common way to create phase divergences. |
5485
457d8003e840
unstable-list: add information about when/why orphan appears
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
5484
diff
changeset
|
48 |
5482
3435822cd758
doc: add the bases of a developer doc for instability
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
diff
changeset
|
49 Source of Complexity |
5506
c408a31d8883
unstable-list: fix title level
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
5505
diff
changeset
|
50 ==================== |
5482
3435822cd758
doc: add the bases of a developer doc for instability
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
diff
changeset
|
51 |
5486
381df06460e8
unstable-list: add list the source of complexity during resolution
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
5485
diff
changeset
|
52 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
|
53 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
|
54 |
381df06460e8
unstable-list: add list the source of complexity during resolution
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
5485
diff
changeset
|
55 * 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
|
56 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
|
57 * 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
|
58 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
|
59 * 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
|
60 * 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
|
61 variants: |
5492
76963e896ea6
unstable-list: some cleanup
Sushil khanchi <sushilkhanchi97@gmail.com>
parents:
5491
diff
changeset
|
62 |
76963e896ea6
unstable-list: some cleanup
Sushil khanchi <sushilkhanchi97@gmail.com>
parents:
5491
diff
changeset
|
63 * successors could be linear of spread across multiple branches, |
5486
381df06460e8
unstable-list: add list the source of complexity during resolution
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
5485
diff
changeset
|
64 * 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
|
65 * 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
|
66 * 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
|
67 * 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
|
68 |
5482
3435822cd758
doc: add the bases of a developer doc for instability
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
diff
changeset
|
69 Details of Sub cases |
5506
c408a31d8883
unstable-list: fix title level
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
5505
diff
changeset
|
70 ==================== |
5482
3435822cd758
doc: add the bases of a developer doc for instability
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
diff
changeset
|
71 |
5505
c7a5133e4a7c
unstable-list: add local table of content of each details section
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
5504
diff
changeset
|
72 .. contents:: |
c7a5133e4a7c
unstable-list: add local table of content of each details section
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
5504
diff
changeset
|
73 :local: |
c7a5133e4a7c
unstable-list: add local table of content of each details section
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
5504
diff
changeset
|
74 |
5487
7c543787d5c6
unstable-list: add a simple entry for the simplest orphan case
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
5486
diff
changeset
|
75 O-A: Linear changeset (one parent) |
5506
c408a31d8883
unstable-list: fix title level
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
5505
diff
changeset
|
76 ---------------------------------- |
5487
7c543787d5c6
unstable-list: add a simple entry for the simplest orphan case
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
5486
diff
changeset
|
77 |
7c543787d5c6
unstable-list: add a simple entry for the simplest orphan case
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
5486
diff
changeset
|
78 O-A1: parent has a single successors |
5506
c408a31d8883
unstable-list: fix title level
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
5505
diff
changeset
|
79 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ |
5487
7c543787d5c6
unstable-list: add a simple entry for the simplest orphan case
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
5486
diff
changeset
|
80 |
7c543787d5c6
unstable-list: add a simple entry for the simplest orphan case
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
5486
diff
changeset
|
81 |
5506
c408a31d8883
unstable-list: fix title level
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
5505
diff
changeset
|
82 **Stabilisation Strategy** |
5487
7c543787d5c6
unstable-list: add a simple entry for the simplest orphan case
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
5486
diff
changeset
|
83 |
7c543787d5c6
unstable-list: add a simple entry for the simplest orphan case
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
5486
diff
changeset
|
84 Solution is Clear. |
7c543787d5c6
unstable-list: add a simple entry for the simplest orphan case
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
5486
diff
changeset
|
85 |
7c543787d5c6
unstable-list: add a simple entry for the simplest orphan case
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
5486
diff
changeset
|
86 Relocate the orphan changeset onto the single successor of obsolete parent. |
7c543787d5c6
unstable-list: add a simple entry for the simplest orphan case
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
5486
diff
changeset
|
87 |
5506
c408a31d8883
unstable-list: fix title level
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
5505
diff
changeset
|
88 **Current Support Level** |
5487
7c543787d5c6
unstable-list: add a simple entry for the simplest orphan case
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
5486
diff
changeset
|
89 |
5492
76963e896ea6
unstable-list: some cleanup
Sushil khanchi <sushilkhanchi97@gmail.com>
parents:
5491
diff
changeset
|
90 Good: current implementation is expected to perform the planned stabilisation. |
5488
9920e8b4756d
unstable-list: add a entry about pruned parent
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
5487
diff
changeset
|
91 |
9920e8b4756d
unstable-list: add a entry about pruned parent
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
5487
diff
changeset
|
92 O-A2: parent is pruned (no successors) |
5506
c408a31d8883
unstable-list: fix title level
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
5505
diff
changeset
|
93 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ |
5488
9920e8b4756d
unstable-list: add a entry about pruned parent
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
5487
diff
changeset
|
94 |
5584
7f9149ccbf42
unstable-list: add new subsections for orphan when parent is pruned
Sushil khanchi <sushilkhanchi97@gmail.com>
parents:
5583
diff
changeset
|
95 Find nearest "not-pruned" ancestor and treat it (or its successor, if apply) as |
7f9149ccbf42
unstable-list: add new subsections for orphan when parent is pruned
Sushil khanchi <sushilkhanchi97@gmail.com>
parents:
5583
diff
changeset
|
96 a resolution parent. (re-run Orphan resolution starting from these parent). |
7f9149ccbf42
unstable-list: add new subsections for orphan when parent is pruned
Sushil khanchi <sushilkhanchi97@gmail.com>
parents:
5583
diff
changeset
|
97 In some cases, there can be multiple "not-pruned" ancestor and it could be ambiguous |
7f9149ccbf42
unstable-list: add new subsections for orphan when parent is pruned
Sushil khanchi <sushilkhanchi97@gmail.com>
parents:
5583
diff
changeset
|
98 for us to decide which one to pick. |
7f9149ccbf42
unstable-list: add new subsections for orphan when parent is pruned
Sushil khanchi <sushilkhanchi97@gmail.com>
parents:
5583
diff
changeset
|
99 |
7f9149ccbf42
unstable-list: add new subsections for orphan when parent is pruned
Sushil khanchi <sushilkhanchi97@gmail.com>
parents:
5583
diff
changeset
|
100 O-A2.1: set of "not-pruned" ancestor has single head |
7f9149ccbf42
unstable-list: add new subsections for orphan when parent is pruned
Sushil khanchi <sushilkhanchi97@gmail.com>
parents:
5583
diff
changeset
|
101 """""""""""""""""""""""""""""""""""""""""""""""""""" |
7f9149ccbf42
unstable-list: add new subsections for orphan when parent is pruned
Sushil khanchi <sushilkhanchi97@gmail.com>
parents:
5583
diff
changeset
|
102 |
5488
9920e8b4756d
unstable-list: add a entry about pruned parent
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
5487
diff
changeset
|
103 |
5506
c408a31d8883
unstable-list: fix title level
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
5505
diff
changeset
|
104 **Stabilisation Strategy** |
5488
9920e8b4756d
unstable-list: add a entry about pruned parent
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
5487
diff
changeset
|
105 |
5584
7f9149ccbf42
unstable-list: add new subsections for orphan when parent is pruned
Sushil khanchi <sushilkhanchi97@gmail.com>
parents:
5583
diff
changeset
|
106 This comes under `O-A3` and `O-A4` cases (since we re-run orphan resolution |
7f9149ccbf42
unstable-list: add new subsections for orphan when parent is pruned
Sushil khanchi <sushilkhanchi97@gmail.com>
parents:
5583
diff
changeset
|
107 assuming "not-pruned" ancestor as parent) |
5488
9920e8b4756d
unstable-list: add a entry about pruned parent
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
5487
diff
changeset
|
108 |
5506
c408a31d8883
unstable-list: fix title level
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
5505
diff
changeset
|
109 **Current Support Level** |
5488
9920e8b4756d
unstable-list: add a entry about pruned parent
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
5487
diff
changeset
|
110 |
5584
7f9149ccbf42
unstable-list: add new subsections for orphan when parent is pruned
Sushil khanchi <sushilkhanchi97@gmail.com>
parents:
5583
diff
changeset
|
111 Good: current implementation is expected to perform the planned stabilisation. |
5489
8b7036384f77
unstable-list: more entry for orphan SPLIT ME
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
5488
diff
changeset
|
112 |
5584
7f9149ccbf42
unstable-list: add new subsections for orphan when parent is pruned
Sushil khanchi <sushilkhanchi97@gmail.com>
parents:
5583
diff
changeset
|
113 O-A2.2: set of "not-pruned" ancestor has multiple heads |
7f9149ccbf42
unstable-list: add new subsections for orphan when parent is pruned
Sushil khanchi <sushilkhanchi97@gmail.com>
parents:
5583
diff
changeset
|
114 """"""""""""""""""""""""""""""""""""""""""""""""""""""" |
7f9149ccbf42
unstable-list: add new subsections for orphan when parent is pruned
Sushil khanchi <sushilkhanchi97@gmail.com>
parents:
5583
diff
changeset
|
115 |
7f9149ccbf42
unstable-list: add new subsections for orphan when parent is pruned
Sushil khanchi <sushilkhanchi97@gmail.com>
parents:
5583
diff
changeset
|
116 If a merge is pruned, we have multiple "not-pruned" ancestor for its immediate |
7f9149ccbf42
unstable-list: add new subsections for orphan when parent is pruned
Sushil khanchi <sushilkhanchi97@gmail.com>
parents:
5583
diff
changeset
|
117 child to stabilise. |
5489
8b7036384f77
unstable-list: more entry for orphan SPLIT ME
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
5488
diff
changeset
|
118 |
5492
76963e896ea6
unstable-list: some cleanup
Sushil khanchi <sushilkhanchi97@gmail.com>
parents:
5491
diff
changeset
|
119 |
5506
c408a31d8883
unstable-list: fix title level
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
5505
diff
changeset
|
120 **Stabilisation Strategy** |
5489
8b7036384f77
unstable-list: more entry for orphan SPLIT ME
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
5488
diff
changeset
|
121 |
5584
7f9149ccbf42
unstable-list: add new subsections for orphan when parent is pruned
Sushil khanchi <sushilkhanchi97@gmail.com>
parents:
5583
diff
changeset
|
122 XXX: yet to decide resolution |
7f9149ccbf42
unstable-list: add new subsections for orphan when parent is pruned
Sushil khanchi <sushilkhanchi97@gmail.com>
parents:
5583
diff
changeset
|
123 |
7f9149ccbf42
unstable-list: add new subsections for orphan when parent is pruned
Sushil khanchi <sushilkhanchi97@gmail.com>
parents:
5583
diff
changeset
|
124 **Current Support Level** |
7f9149ccbf42
unstable-list: add new subsections for orphan when parent is pruned
Sushil khanchi <sushilkhanchi97@gmail.com>
parents:
5583
diff
changeset
|
125 |
7f9149ccbf42
unstable-list: add new subsections for orphan when parent is pruned
Sushil khanchi <sushilkhanchi97@gmail.com>
parents:
5583
diff
changeset
|
126 O-A3: parent has multiple successors sets (divergence case) |
7f9149ccbf42
unstable-list: add new subsections for orphan when parent is pruned
Sushil khanchi <sushilkhanchi97@gmail.com>
parents:
5583
diff
changeset
|
127 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ |
7f9149ccbf42
unstable-list: add new subsections for orphan when parent is pruned
Sushil khanchi <sushilkhanchi97@gmail.com>
parents:
5583
diff
changeset
|
128 |
7f9149ccbf42
unstable-list: add new subsections for orphan when parent is pruned
Sushil khanchi <sushilkhanchi97@gmail.com>
parents:
5583
diff
changeset
|
129 |
7f9149ccbf42
unstable-list: add new subsections for orphan when parent is pruned
Sushil khanchi <sushilkhanchi97@gmail.com>
parents:
5583
diff
changeset
|
130 **Stabilisation Strategy** |
7f9149ccbf42
unstable-list: add new subsections for orphan when parent is pruned
Sushil khanchi <sushilkhanchi97@gmail.com>
parents:
5583
diff
changeset
|
131 |
7f9149ccbf42
unstable-list: add new subsections for orphan when parent is pruned
Sushil khanchi <sushilkhanchi97@gmail.com>
parents:
5583
diff
changeset
|
132 XXX: yet to decide resolution |
7f9149ccbf42
unstable-list: add new subsections for orphan when parent is pruned
Sushil khanchi <sushilkhanchi97@gmail.com>
parents:
5583
diff
changeset
|
133 |
5506
c408a31d8883
unstable-list: fix title level
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
5505
diff
changeset
|
134 **Current Support Level** |
5489
8b7036384f77
unstable-list: more entry for orphan SPLIT ME
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
5488
diff
changeset
|
135 |
8b7036384f77
unstable-list: more entry for orphan SPLIT ME
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
5488
diff
changeset
|
136 O-A4: parent is split into multiple successors |
5506
c408a31d8883
unstable-list: fix title level
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
5505
diff
changeset
|
137 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ |
5489
8b7036384f77
unstable-list: more entry for orphan SPLIT ME
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
5488
diff
changeset
|
138 |
5583
72a4aa791d97
unstable-list: some minor updates
Sushil khanchi <sushilkhanchi97@gmail.com>
parents:
5506
diff
changeset
|
139 O-A4.1: successors of parent are all on the same topological branch |
5506
c408a31d8883
unstable-list: fix title level
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
5505
diff
changeset
|
140 """""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""" |
5492
76963e896ea6
unstable-list: some cleanup
Sushil khanchi <sushilkhanchi97@gmail.com>
parents:
5491
diff
changeset
|
141 |
5489
8b7036384f77
unstable-list: more entry for orphan SPLIT ME
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
5488
diff
changeset
|
142 |
5506
c408a31d8883
unstable-list: fix title level
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
5505
diff
changeset
|
143 **Stabilisation Strategy** |
5492
76963e896ea6
unstable-list: some cleanup
Sushil khanchi <sushilkhanchi97@gmail.com>
parents:
5491
diff
changeset
|
144 |
76963e896ea6
unstable-list: some cleanup
Sushil khanchi <sushilkhanchi97@gmail.com>
parents:
5491
diff
changeset
|
145 Pick highest one as resolution parent. |
5489
8b7036384f77
unstable-list: more entry for orphan SPLIT ME
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
5488
diff
changeset
|
146 |
5506
c408a31d8883
unstable-list: fix title level
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
5505
diff
changeset
|
147 **Current Support Level** |
5489
8b7036384f77
unstable-list: more entry for orphan SPLIT ME
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
5488
diff
changeset
|
148 |
5492
76963e896ea6
unstable-list: some cleanup
Sushil khanchi <sushilkhanchi97@gmail.com>
parents:
5491
diff
changeset
|
149 Good: current implementation is expected to perform the planned stabilisation. |
5489
8b7036384f77
unstable-list: more entry for orphan SPLIT ME
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
5488
diff
changeset
|
150 |
5492
76963e896ea6
unstable-list: some cleanup
Sushil khanchi <sushilkhanchi97@gmail.com>
parents:
5491
diff
changeset
|
151 O-A4.2: parent is split into multiple topological branches (at least 2 heads) |
5506
c408a31d8883
unstable-list: fix title level
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
5505
diff
changeset
|
152 """"""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""" |
5492
76963e896ea6
unstable-list: some cleanup
Sushil khanchi <sushilkhanchi97@gmail.com>
parents:
5491
diff
changeset
|
153 |
76963e896ea6
unstable-list: some cleanup
Sushil khanchi <sushilkhanchi97@gmail.com>
parents:
5491
diff
changeset
|
154 In this case, the destination can be ambiguous. |
5489
8b7036384f77
unstable-list: more entry for orphan SPLIT ME
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
5488
diff
changeset
|
155 |
5506
c408a31d8883
unstable-list: fix title level
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
5505
diff
changeset
|
156 **Stabilisation Strategy** |
5489
8b7036384f77
unstable-list: more entry for orphan SPLIT ME
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
5488
diff
changeset
|
157 |
5492
76963e896ea6
unstable-list: some cleanup
Sushil khanchi <sushilkhanchi97@gmail.com>
parents:
5491
diff
changeset
|
158 prompt user to choose one. |
5489
8b7036384f77
unstable-list: more entry for orphan SPLIT ME
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
5488
diff
changeset
|
159 |
8b7036384f77
unstable-list: more entry for orphan SPLIT ME
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
5488
diff
changeset
|
160 (could we do better in some case?) |
8b7036384f77
unstable-list: more entry for orphan SPLIT ME
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
5488
diff
changeset
|
161 |
5506
c408a31d8883
unstable-list: fix title level
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
5505
diff
changeset
|
162 **Current Support Level** |
5489
8b7036384f77
unstable-list: more entry for orphan SPLIT ME
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
5488
diff
changeset
|
163 |
5492
76963e896ea6
unstable-list: some cleanup
Sushil khanchi <sushilkhanchi97@gmail.com>
parents:
5491
diff
changeset
|
164 Current implementation is expected to perform the planned stabilisation. |
5489
8b7036384f77
unstable-list: more entry for orphan SPLIT ME
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
5488
diff
changeset
|
165 |
8b7036384f77
unstable-list: more entry for orphan SPLIT ME
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
5488
diff
changeset
|
166 O-M: Parent are Merge (multiple parent) |
5506
c408a31d8883
unstable-list: fix title level
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
5505
diff
changeset
|
167 --------------------------------------- |
5489
8b7036384f77
unstable-list: more entry for orphan SPLIT ME
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
5488
diff
changeset
|
168 |
8b7036384f77
unstable-list: more entry for orphan SPLIT ME
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
5488
diff
changeset
|
169 O-M1: Only one parent is obsolete |
5506
c408a31d8883
unstable-list: fix title level
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
5505
diff
changeset
|
170 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ |
5489
8b7036384f77
unstable-list: more entry for orphan SPLIT ME
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
5488
diff
changeset
|
171 |
8b7036384f77
unstable-list: more entry for orphan SPLIT ME
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
5488
diff
changeset
|
172 XXX Simple case are probably as good as any `O-A` case. However special case are |
5492
76963e896ea6
unstable-list: some cleanup
Sushil khanchi <sushilkhanchi97@gmail.com>
parents:
5491
diff
changeset
|
173 probably ignored right now (e.g: successors of the obsolete parent is linear with |
5489
8b7036384f77
unstable-list: more entry for orphan SPLIT ME
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
5488
diff
changeset
|
174 the other parent). |
8b7036384f77
unstable-list: more entry for orphan SPLIT ME
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
5488
diff
changeset
|
175 |
8b7036384f77
unstable-list: more entry for orphan SPLIT ME
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
5488
diff
changeset
|
176 O-M2: both parent are obsolete |
5506
c408a31d8883
unstable-list: fix title level
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
5505
diff
changeset
|
177 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ |
5489
8b7036384f77
unstable-list: more entry for orphan SPLIT ME
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
5488
diff
changeset
|
178 |
8b7036384f77
unstable-list: more entry for orphan SPLIT ME
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
5488
diff
changeset
|
179 XXX currently we evolve one after the other. |
8b7036384f77
unstable-list: more entry for orphan SPLIT ME
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
5488
diff
changeset
|
180 |
5506
c408a31d8883
unstable-list: fix title level
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
5505
diff
changeset
|
181 **************** |
5482
3435822cd758
doc: add the bases of a developer doc for instability
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
diff
changeset
|
182 Phase-Divergence |
5506
c408a31d8883
unstable-list: fix title level
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
5505
diff
changeset
|
183 **************** |
5482
3435822cd758
doc: add the bases of a developer doc for instability
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
diff
changeset
|
184 |
3435822cd758
doc: add the bases of a developer doc for instability
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
diff
changeset
|
185 Basics |
5506
c408a31d8883
unstable-list: fix title level
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
5505
diff
changeset
|
186 ====== |
5482
3435822cd758
doc: add the bases of a developer doc for instability
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
diff
changeset
|
187 |
5493
1a7bb3ab027e
unstable-list: add basic section for phase-divergence
Sushil khanchi <sushilkhanchi97@gmail.com>
parents:
5492
diff
changeset
|
188 |
1a7bb3ab027e
unstable-list: add basic section for phase-divergence
Sushil khanchi <sushilkhanchi97@gmail.com>
parents:
5492
diff
changeset
|
189 It appears when a rewritten changeset got published. A phase-divergent changeset |
1a7bb3ab027e
unstable-list: add basic section for phase-divergence
Sushil khanchi <sushilkhanchi97@gmail.com>
parents:
5492
diff
changeset
|
190 has a public predecessor. |
1a7bb3ab027e
unstable-list: add basic section for phase-divergence
Sushil khanchi <sushilkhanchi97@gmail.com>
parents:
5492
diff
changeset
|
191 |
5494
ac7cb1b67c9b
unstable-list: simplify the basic
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
5493
diff
changeset
|
192 Solving phase divergence is done by extracting the changes made between the |
ac7cb1b67c9b
unstable-list: simplify the basic
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
5493
diff
changeset
|
193 public predecessors and the latest evolution of the changesets into a new |
5583
72a4aa791d97
unstable-list: some minor updates
Sushil khanchi <sushilkhanchi97@gmail.com>
parents:
5506
diff
changeset
|
194 changesets, descendants of the public predecessors. |
5493
1a7bb3ab027e
unstable-list: add basic section for phase-divergence
Sushil khanchi <sushilkhanchi97@gmail.com>
parents:
5492
diff
changeset
|
195 |
5482
3435822cd758
doc: add the bases of a developer doc for instability
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
diff
changeset
|
196 Cause of trouble |
5506
c408a31d8883
unstable-list: fix title level
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
5505
diff
changeset
|
197 ================ |
5482
3435822cd758
doc: add the bases of a developer doc for instability
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
diff
changeset
|
198 |
5495
d3cf24afa620
unstable-list: add cause-of-trouble section for phase-divergence
Sushil khanchi <sushilkhanchi97@gmail.com>
parents:
5494
diff
changeset
|
199 It can appear if a user locally change the phase of an obsolete changeset |
d3cf24afa620
unstable-list: add cause-of-trouble section for phase-divergence
Sushil khanchi <sushilkhanchi97@gmail.com>
parents:
5494
diff
changeset
|
200 (which has successors) to public. |
d3cf24afa620
unstable-list: add cause-of-trouble section for phase-divergence
Sushil khanchi <sushilkhanchi97@gmail.com>
parents:
5494
diff
changeset
|
201 |
d3cf24afa620
unstable-list: add cause-of-trouble section for phase-divergence
Sushil khanchi <sushilkhanchi97@gmail.com>
parents:
5494
diff
changeset
|
202 Phase-divergence can also happens when the users rewrite draft changeset that got |
d3cf24afa620
unstable-list: add cause-of-trouble section for phase-divergence
Sushil khanchi <sushilkhanchi97@gmail.com>
parents:
5494
diff
changeset
|
203 published in another repository. The phase divergence then "discovered" when the |
d3cf24afa620
unstable-list: add cause-of-trouble section for phase-divergence
Sushil khanchi <sushilkhanchi97@gmail.com>
parents:
5494
diff
changeset
|
204 publishing information of the predecessors is pulled in the local repository. |
d3cf24afa620
unstable-list: add cause-of-trouble section for phase-divergence
Sushil khanchi <sushilkhanchi97@gmail.com>
parents:
5494
diff
changeset
|
205 |
5482
3435822cd758
doc: add the bases of a developer doc for instability
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
diff
changeset
|
206 Source of Complexity |
5506
c408a31d8883
unstable-list: fix title level
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
5505
diff
changeset
|
207 ==================== |
5482
3435822cd758
doc: add the bases of a developer doc for instability
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
diff
changeset
|
208 |
5497
e7b70fe1297a
unstable-list: add source-of-complexity for phase-divergence
Sushil khanchi <sushilkhanchi97@gmail.com>
parents:
5496
diff
changeset
|
209 * public version is a merge |
5498
f5d44464d72e
unstable-list: expand and clarify the source of complexity for phase-div
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
5497
diff
changeset
|
210 * phase-divergent changeset is a merge |
f5d44464d72e
unstable-list: expand and clarify the source of complexity for phase-div
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
5497
diff
changeset
|
211 * public version was split (linear, over multiple topo branches, etc…) |
f5d44464d72e
unstable-list: expand and clarify the source of complexity for phase-div
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
5497
diff
changeset
|
212 * phase-divergent version was folded with others |
5497
e7b70fe1297a
unstable-list: add source-of-complexity for phase-divergence
Sushil khanchi <sushilkhanchi97@gmail.com>
parents:
5496
diff
changeset
|
213 * rebasing might lead to conflict. |
e7b70fe1297a
unstable-list: add source-of-complexity for phase-divergence
Sushil khanchi <sushilkhanchi97@gmail.com>
parents:
5496
diff
changeset
|
214 |
5482
3435822cd758
doc: add the bases of a developer doc for instability
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
diff
changeset
|
215 Details of Sub cases |
5506
c408a31d8883
unstable-list: fix title level
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
5505
diff
changeset
|
216 ==================== |
5482
3435822cd758
doc: add the bases of a developer doc for instability
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
diff
changeset
|
217 |
5505
c7a5133e4a7c
unstable-list: add local table of content of each details section
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
5504
diff
changeset
|
218 .. contents:: |
c7a5133e4a7c
unstable-list: add local table of content of each details section
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
5504
diff
changeset
|
219 :local: |
c7a5133e4a7c
unstable-list: add local table of content of each details section
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
5504
diff
changeset
|
220 |
5499
fb5a675f9676
unstable-list: mark the subsection as yet to document
Sushil khanchi <sushilkhanchi97@gmail.com>
parents:
5498
diff
changeset
|
221 #TODO: yet to document |
fb5a675f9676
unstable-list: mark the subsection as yet to document
Sushil khanchi <sushilkhanchi97@gmail.com>
parents:
5498
diff
changeset
|
222 |
5506
c408a31d8883
unstable-list: fix title level
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
5505
diff
changeset
|
223 ****************** |
5482
3435822cd758
doc: add the bases of a developer doc for instability
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
diff
changeset
|
224 Content-Divergence |
5506
c408a31d8883
unstable-list: fix title level
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
5505
diff
changeset
|
225 ****************** |
5482
3435822cd758
doc: add the bases of a developer doc for instability
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
diff
changeset
|
226 |
3435822cd758
doc: add the bases of a developer doc for instability
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
diff
changeset
|
227 Basics |
5506
c408a31d8883
unstable-list: fix title level
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
5505
diff
changeset
|
228 ====== |
5482
3435822cd758
doc: add the bases of a developer doc for instability
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
diff
changeset
|
229 |
5490
8f9dd2414416
unstable-list: add basic description of content divergence
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
5489
diff
changeset
|
230 |
8f9dd2414416
unstable-list: add basic description of content divergence
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
5489
diff
changeset
|
231 Independent rewrites of same changeset leads to content-divergence. So an |
8f9dd2414416
unstable-list: add basic description of content divergence
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
5489
diff
changeset
|
232 obsolete changeset have multiple "sets" of successors. And the content-divergent |
8f9dd2414416
unstable-list: add basic description of content divergence
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
5489
diff
changeset
|
233 changeset have some predecessors in common without the situation being the |
8f9dd2414416
unstable-list: add basic description of content divergence
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
5489
diff
changeset
|
234 result of a split. |
8f9dd2414416
unstable-list: add basic description of content divergence
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
5489
diff
changeset
|
235 |
5492
76963e896ea6
unstable-list: some cleanup
Sushil khanchi <sushilkhanchi97@gmail.com>
parents:
5491
diff
changeset
|
236 To stabilise the situation, we need to "merge" the changes introduced in each |
76963e896ea6
unstable-list: some cleanup
Sushil khanchi <sushilkhanchi97@gmail.com>
parents:
5491
diff
changeset
|
237 side of the divergence and create a new changeset, that will supersede both of |
76963e896ea6
unstable-list: some cleanup
Sushil khanchi <sushilkhanchi97@gmail.com>
parents:
5491
diff
changeset
|
238 the unstable one. The merged information can be both about file content and |
5490
8f9dd2414416
unstable-list: add basic description of content divergence
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
5489
diff
changeset
|
239 metadata (author, parent, etc). |
8f9dd2414416
unstable-list: add basic description of content divergence
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
5489
diff
changeset
|
240 |
8f9dd2414416
unstable-list: add basic description of content divergence
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
5489
diff
changeset
|
241 In practice there are a lot of corner case where this is "not that simple". |
8f9dd2414416
unstable-list: add basic description of content divergence
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
5489
diff
changeset
|
242 |
5482
3435822cd758
doc: add the bases of a developer doc for instability
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
diff
changeset
|
243 Cause of trouble |
5506
c408a31d8883
unstable-list: fix title level
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
5505
diff
changeset
|
244 ================ |
5482
3435822cd758
doc: add the bases of a developer doc for instability
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
diff
changeset
|
245 |
5500
43eb23c28782
unstable-list: add cause-of-trouble for content-divergence
Sushil khanchi <sushilkhanchi97@gmail.com>
parents:
5499
diff
changeset
|
246 It can appear locally if a user independently rewrite the same changeset multiple |
43eb23c28782
unstable-list: add cause-of-trouble for content-divergence
Sushil khanchi <sushilkhanchi97@gmail.com>
parents:
5499
diff
changeset
|
247 times. |
43eb23c28782
unstable-list: add cause-of-trouble for content-divergence
Sushil khanchi <sushilkhanchi97@gmail.com>
parents:
5499
diff
changeset
|
248 |
43eb23c28782
unstable-list: add cause-of-trouble for content-divergence
Sushil khanchi <sushilkhanchi97@gmail.com>
parents:
5499
diff
changeset
|
249 Content-divergence can also happens when the users rewrite draft changesets that got |
43eb23c28782
unstable-list: add cause-of-trouble for content-divergence
Sushil khanchi <sushilkhanchi97@gmail.com>
parents:
5499
diff
changeset
|
250 rewritten in another repository as well. The content divergence then "revealed" |
43eb23c28782
unstable-list: add cause-of-trouble for content-divergence
Sushil khanchi <sushilkhanchi97@gmail.com>
parents:
5499
diff
changeset
|
251 when the rewriting information is shared (pulled/pushed) with another repository. |
5491
1a238a9313da
unstable-list: some details about phase divergence
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
5490
diff
changeset
|
252 |
5482
3435822cd758
doc: add the bases of a developer doc for instability
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
diff
changeset
|
253 Source of Complexity |
5506
c408a31d8883
unstable-list: fix title level
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
5505
diff
changeset
|
254 ==================== |
5482
3435822cd758
doc: add the bases of a developer doc for instability
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
diff
changeset
|
255 |
5491
1a238a9313da
unstable-list: some details about phase divergence
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
5490
diff
changeset
|
256 |
1a238a9313da
unstable-list: some details about phase divergence
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
5490
diff
changeset
|
257 Before we perform a 3-way merge between the divergent changesets and common |
5583
72a4aa791d97
unstable-list: some minor updates
Sushil khanchi <sushilkhanchi97@gmail.com>
parents:
5506
diff
changeset
|
258 predecessor (which acts as the 3-way merge base), there are some situations we need to take care of, like: |
5491
1a238a9313da
unstable-list: some details about phase divergence
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
5490
diff
changeset
|
259 |
1a238a9313da
unstable-list: some details about phase divergence
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
5490
diff
changeset
|
260 * if divergent changesets moved, check which side moved in which direction, |
1a238a9313da
unstable-list: some details about phase divergence
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
5490
diff
changeset
|
261 and proceed accordingly |
1a238a9313da
unstable-list: some details about phase divergence
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
5490
diff
changeset
|
262 * they moved on different unrelated branches |
5492
76963e896ea6
unstable-list: some cleanup
Sushil khanchi <sushilkhanchi97@gmail.com>
parents:
5491
diff
changeset
|
263 * divergent changeset can be orphan as well |
5491
1a238a9313da
unstable-list: some details about phase divergence
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
5490
diff
changeset
|
264 * one side of divergence is in public phase |
5588
5cbb1f356137
unstable-list: add split and fold in content-divergence resolution
Sushil khanchi <sushilkhanchi97@gmail.com>
parents:
5587
diff
changeset
|
265 * divergent changeset is part of a split or fold |
5491
1a238a9313da
unstable-list: some details about phase divergence
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
5490
diff
changeset
|
266 |
5585
1bc58c156c89
unstable-list: add a "details of resolution" section for content-divergence
Sushil khanchi <sushilkhanchi97@gmail.com>
parents:
5584
diff
changeset
|
267 Details of resolution |
1bc58c156c89
unstable-list: add a "details of resolution" section for content-divergence
Sushil khanchi <sushilkhanchi97@gmail.com>
parents:
5584
diff
changeset
|
268 ===================== |
1bc58c156c89
unstable-list: add a "details of resolution" section for content-divergence
Sushil khanchi <sushilkhanchi97@gmail.com>
parents:
5584
diff
changeset
|
269 |
1bc58c156c89
unstable-list: add a "details of resolution" section for content-divergence
Sushil khanchi <sushilkhanchi97@gmail.com>
parents:
5584
diff
changeset
|
270 Resolution of content-divergence can be understand by dividing it in stages: |
1bc58c156c89
unstable-list: add a "details of resolution" section for content-divergence
Sushil khanchi <sushilkhanchi97@gmail.com>
parents:
5584
diff
changeset
|
271 |
5588
5cbb1f356137
unstable-list: add split and fold in content-divergence resolution
Sushil khanchi <sushilkhanchi97@gmail.com>
parents:
5587
diff
changeset
|
272 Special case: If one of the divergent changeset is part of a split or fold, we don't handle |
5cbb1f356137
unstable-list: add split and fold in content-divergence resolution
Sushil khanchi <sushilkhanchi97@gmail.com>
parents:
5587
diff
changeset
|
273 it right now. But when we are going to support it, it will probably have its own logic and |
5cbb1f356137
unstable-list: add split and fold in content-divergence resolution
Sushil khanchi <sushilkhanchi97@gmail.com>
parents:
5587
diff
changeset
|
274 seperate from generic resolution. |
5cbb1f356137
unstable-list: add split and fold in content-divergence resolution
Sushil khanchi <sushilkhanchi97@gmail.com>
parents:
5587
diff
changeset
|
275 |
5cbb1f356137
unstable-list: add split and fold in content-divergence resolution
Sushil khanchi <sushilkhanchi97@gmail.com>
parents:
5587
diff
changeset
|
276 Generic resolution: |
5cbb1f356137
unstable-list: add split and fold in content-divergence resolution
Sushil khanchi <sushilkhanchi97@gmail.com>
parents:
5587
diff
changeset
|
277 |
5585
1bc58c156c89
unstable-list: add a "details of resolution" section for content-divergence
Sushil khanchi <sushilkhanchi97@gmail.com>
parents:
5584
diff
changeset
|
278 The first stage of solving content-divergence is to find the changeset where the resolution |
1bc58c156c89
unstable-list: add a "details of resolution" section for content-divergence
Sushil khanchi <sushilkhanchi97@gmail.com>
parents:
5584
diff
changeset
|
279 changeset will be based on (which we call the resolution parent or the target parent) and |
1bc58c156c89
unstable-list: add a "details of resolution" section for content-divergence
Sushil khanchi <sushilkhanchi97@gmail.com>
parents:
5584
diff
changeset
|
280 relocate the divergent changesets on the resolution parent, if apply. |
1bc58c156c89
unstable-list: add a "details of resolution" section for content-divergence
Sushil khanchi <sushilkhanchi97@gmail.com>
parents:
5584
diff
changeset
|
281 |
1bc58c156c89
unstable-list: add a "details of resolution" section for content-divergence
Sushil khanchi <sushilkhanchi97@gmail.com>
parents:
5584
diff
changeset
|
282 In second stage, we deal with merging files of two divergent changesets using the 3-way merge. |
1bc58c156c89
unstable-list: add a "details of resolution" section for content-divergence
Sushil khanchi <sushilkhanchi97@gmail.com>
parents:
5584
diff
changeset
|
283 |
1bc58c156c89
unstable-list: add a "details of resolution" section for content-divergence
Sushil khanchi <sushilkhanchi97@gmail.com>
parents:
5584
diff
changeset
|
284 In third stage, we deal with merging the metadata changes and creating the resultant changeset. |
1bc58c156c89
unstable-list: add a "details of resolution" section for content-divergence
Sushil khanchi <sushilkhanchi97@gmail.com>
parents:
5584
diff
changeset
|
285 |
5482
3435822cd758
doc: add the bases of a developer doc for instability
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
diff
changeset
|
286 Details of Sub cases |
5506
c408a31d8883
unstable-list: fix title level
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
5505
diff
changeset
|
287 ==================== |
5505
c7a5133e4a7c
unstable-list: add local table of content of each details section
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
5504
diff
changeset
|
288 |
c7a5133e4a7c
unstable-list: add local table of content of each details section
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
5504
diff
changeset
|
289 .. contents:: |
c7a5133e4a7c
unstable-list: add local table of content of each details section
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
5504
diff
changeset
|
290 :local: |
5586
f701c75e53f6
unstable-list: add "finding the resolution parent" section
Sushil khanchi <sushilkhanchi97@gmail.com>
parents:
5585
diff
changeset
|
291 |
5588
5cbb1f356137
unstable-list: add split and fold in content-divergence resolution
Sushil khanchi <sushilkhanchi97@gmail.com>
parents:
5587
diff
changeset
|
292 D-S: One of the divergent changeset is part of a split or fold |
5cbb1f356137
unstable-list: add split and fold in content-divergence resolution
Sushil khanchi <sushilkhanchi97@gmail.com>
parents:
5587
diff
changeset
|
293 -------------------------------------------------------------- |
5cbb1f356137
unstable-list: add split and fold in content-divergence resolution
Sushil khanchi <sushilkhanchi97@gmail.com>
parents:
5587
diff
changeset
|
294 |
5cbb1f356137
unstable-list: add split and fold in content-divergence resolution
Sushil khanchi <sushilkhanchi97@gmail.com>
parents:
5587
diff
changeset
|
295 XXX: yet to decide resolution |
5cbb1f356137
unstable-list: add split and fold in content-divergence resolution
Sushil khanchi <sushilkhanchi97@gmail.com>
parents:
5587
diff
changeset
|
296 |
5586
f701c75e53f6
unstable-list: add "finding the resolution parent" section
Sushil khanchi <sushilkhanchi97@gmail.com>
parents:
5585
diff
changeset
|
297 D-A: Finding the resolution parent |
f701c75e53f6
unstable-list: add "finding the resolution parent" section
Sushil khanchi <sushilkhanchi97@gmail.com>
parents:
5585
diff
changeset
|
298 ---------------------------------- |
f701c75e53f6
unstable-list: add "finding the resolution parent" section
Sushil khanchi <sushilkhanchi97@gmail.com>
parents:
5585
diff
changeset
|
299 |
f701c75e53f6
unstable-list: add "finding the resolution parent" section
Sushil khanchi <sushilkhanchi97@gmail.com>
parents:
5585
diff
changeset
|
300 This section is responsible to decide where the resultant changeset should live. If it's unable to |
f701c75e53f6
unstable-list: add "finding the resolution parent" section
Sushil khanchi <sushilkhanchi97@gmail.com>
parents:
5585
diff
changeset
|
301 find the resolution parent, we abort the content-divergence resolution. Following are the possible |
f701c75e53f6
unstable-list: add "finding the resolution parent" section
Sushil khanchi <sushilkhanchi97@gmail.com>
parents:
5585
diff
changeset
|
302 situations between the two divergent changesets and current support for each situation. |
f701c75e53f6
unstable-list: add "finding the resolution parent" section
Sushil khanchi <sushilkhanchi97@gmail.com>
parents:
5585
diff
changeset
|
303 |
f701c75e53f6
unstable-list: add "finding the resolution parent" section
Sushil khanchi <sushilkhanchi97@gmail.com>
parents:
5585
diff
changeset
|
304 D-A1: one of the divergent changeset is public |
f701c75e53f6
unstable-list: add "finding the resolution parent" section
Sushil khanchi <sushilkhanchi97@gmail.com>
parents:
5585
diff
changeset
|
305 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ |
f701c75e53f6
unstable-list: add "finding the resolution parent" section
Sushil khanchi <sushilkhanchi97@gmail.com>
parents:
5585
diff
changeset
|
306 |
f701c75e53f6
unstable-list: add "finding the resolution parent" section
Sushil khanchi <sushilkhanchi97@gmail.com>
parents:
5585
diff
changeset
|
307 Set the parent of public changeset as resolution parent. |
f701c75e53f6
unstable-list: add "finding the resolution parent" section
Sushil khanchi <sushilkhanchi97@gmail.com>
parents:
5585
diff
changeset
|
308 |
f701c75e53f6
unstable-list: add "finding the resolution parent" section
Sushil khanchi <sushilkhanchi97@gmail.com>
parents:
5585
diff
changeset
|
309 Note: After we resolve content-divergence in this case, the resultant changeset will be |
f701c75e53f6
unstable-list: add "finding the resolution parent" section
Sushil khanchi <sushilkhanchi97@gmail.com>
parents:
5585
diff
changeset
|
310 phase-divergent with the public side; so then we resolve phase-divergence to completely |
f701c75e53f6
unstable-list: add "finding the resolution parent" section
Sushil khanchi <sushilkhanchi97@gmail.com>
parents:
5585
diff
changeset
|
311 resolve the instability. |
f701c75e53f6
unstable-list: add "finding the resolution parent" section
Sushil khanchi <sushilkhanchi97@gmail.com>
parents:
5585
diff
changeset
|
312 |
f701c75e53f6
unstable-list: add "finding the resolution parent" section
Sushil khanchi <sushilkhanchi97@gmail.com>
parents:
5585
diff
changeset
|
313 D-A2: both are on the same parent |
f701c75e53f6
unstable-list: add "finding the resolution parent" section
Sushil khanchi <sushilkhanchi97@gmail.com>
parents:
5585
diff
changeset
|
314 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ |
f701c75e53f6
unstable-list: add "finding the resolution parent" section
Sushil khanchi <sushilkhanchi97@gmail.com>
parents:
5585
diff
changeset
|
315 |
f701c75e53f6
unstable-list: add "finding the resolution parent" section
Sushil khanchi <sushilkhanchi97@gmail.com>
parents:
5585
diff
changeset
|
316 Set the parent (or its successor, if apply) as resolution parent. |
f701c75e53f6
unstable-list: add "finding the resolution parent" section
Sushil khanchi <sushilkhanchi97@gmail.com>
parents:
5585
diff
changeset
|
317 |
f701c75e53f6
unstable-list: add "finding the resolution parent" section
Sushil khanchi <sushilkhanchi97@gmail.com>
parents:
5585
diff
changeset
|
318 D-A3: both are on different parents |
f701c75e53f6
unstable-list: add "finding the resolution parent" section
Sushil khanchi <sushilkhanchi97@gmail.com>
parents:
5585
diff
changeset
|
319 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ |
f701c75e53f6
unstable-list: add "finding the resolution parent" section
Sushil khanchi <sushilkhanchi97@gmail.com>
parents:
5585
diff
changeset
|
320 |
f701c75e53f6
unstable-list: add "finding the resolution parent" section
Sushil khanchi <sushilkhanchi97@gmail.com>
parents:
5585
diff
changeset
|
321 D-A3.1: one side moved |
f701c75e53f6
unstable-list: add "finding the resolution parent" section
Sushil khanchi <sushilkhanchi97@gmail.com>
parents:
5585
diff
changeset
|
322 """""""""""""""""""""" |
f701c75e53f6
unstable-list: add "finding the resolution parent" section
Sushil khanchi <sushilkhanchi97@gmail.com>
parents:
5585
diff
changeset
|
323 |
f701c75e53f6
unstable-list: add "finding the resolution parent" section
Sushil khanchi <sushilkhanchi97@gmail.com>
parents:
5585
diff
changeset
|
324 Set the parent of moved changeset as resolution parent. |
f701c75e53f6
unstable-list: add "finding the resolution parent" section
Sushil khanchi <sushilkhanchi97@gmail.com>
parents:
5585
diff
changeset
|
325 |
5784
43a5371fa669
divergence-resolution: add support and doc for a special case in divergence
Sushil khanchi <sushilkhanchi97@gmail.com>
parents:
5607
diff
changeset
|
326 Special-case: When parent of moved one is obsolete with a successor |
43a5371fa669
divergence-resolution: add support and doc for a special case in divergence
Sushil khanchi <sushilkhanchi97@gmail.com>
parents:
5607
diff
changeset
|
327 ''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''' |
43a5371fa669
divergence-resolution: add support and doc for a special case in divergence
Sushil khanchi <sushilkhanchi97@gmail.com>
parents:
5607
diff
changeset
|
328 By default, evolution will set the successor of obsolete parent as resolution |
43a5371fa669
divergence-resolution: add support and doc for a special case in divergence
Sushil khanchi <sushilkhanchi97@gmail.com>
parents:
5607
diff
changeset
|
329 parent and will relocate both the divergent cset on it to perform 3-way merge. |
43a5371fa669
divergence-resolution: add support and doc for a special case in divergence
Sushil khanchi <sushilkhanchi97@gmail.com>
parents:
5607
diff
changeset
|
330 But if the following config is set to True, it will set the obsolete parent as |
43a5371fa669
divergence-resolution: add support and doc for a special case in divergence
Sushil khanchi <sushilkhanchi97@gmail.com>
parents:
5607
diff
changeset
|
331 resolution parent, so now resolved cset will be orphan, as it will be based on |
43a5371fa669
divergence-resolution: add support and doc for a special case in divergence
Sushil khanchi <sushilkhanchi97@gmail.com>
parents:
5607
diff
changeset
|
332 the obsolete parent. Some users might not like the evolve to automatically |
43a5371fa669
divergence-resolution: add support and doc for a special case in divergence
Sushil khanchi <sushilkhanchi97@gmail.com>
parents:
5607
diff
changeset
|
333 resovle this orphan instability as well (while they only wanted to resolve the |
43a5371fa669
divergence-resolution: add support and doc for a special case in divergence
Sushil khanchi <sushilkhanchi97@gmail.com>
parents:
5607
diff
changeset
|
334 divergence), which is why we are providing this config. |
43a5371fa669
divergence-resolution: add support and doc for a special case in divergence
Sushil khanchi <sushilkhanchi97@gmail.com>
parents:
5607
diff
changeset
|
335 |
43a5371fa669
divergence-resolution: add support and doc for a special case in divergence
Sushil khanchi <sushilkhanchi97@gmail.com>
parents:
5607
diff
changeset
|
336 `experimental.evolution.divergence-resolution-minimal=False(default)` |
43a5371fa669
divergence-resolution: add support and doc for a special case in divergence
Sushil khanchi <sushilkhanchi97@gmail.com>
parents:
5607
diff
changeset
|
337 |
43a5371fa669
divergence-resolution: add support and doc for a special case in divergence
Sushil khanchi <sushilkhanchi97@gmail.com>
parents:
5607
diff
changeset
|
338 (The default resolution that automatically evolve the orphan instability as well |
43a5371fa669
divergence-resolution: add support and doc for a special case in divergence
Sushil khanchi <sushilkhanchi97@gmail.com>
parents:
5607
diff
changeset
|
339 seems the best approach for now, but let's also gather user feedback, then we can decide accordingly) |
43a5371fa669
divergence-resolution: add support and doc for a special case in divergence
Sushil khanchi <sushilkhanchi97@gmail.com>
parents:
5607
diff
changeset
|
340 |
5586
f701c75e53f6
unstable-list: add "finding the resolution parent" section
Sushil khanchi <sushilkhanchi97@gmail.com>
parents:
5585
diff
changeset
|
341 D-A3.2: both moved forward; same branch |
f701c75e53f6
unstable-list: add "finding the resolution parent" section
Sushil khanchi <sushilkhanchi97@gmail.com>
parents:
5585
diff
changeset
|
342 """"""""""""""""""""""""""""""""""""""" |
f701c75e53f6
unstable-list: add "finding the resolution parent" section
Sushil khanchi <sushilkhanchi97@gmail.com>
parents:
5585
diff
changeset
|
343 |
f701c75e53f6
unstable-list: add "finding the resolution parent" section
Sushil khanchi <sushilkhanchi97@gmail.com>
parents:
5585
diff
changeset
|
344 Set the parent of ahead one as resolution parent. |
f701c75e53f6
unstable-list: add "finding the resolution parent" section
Sushil khanchi <sushilkhanchi97@gmail.com>
parents:
5585
diff
changeset
|
345 As most obvious is that, ahead one has the latest changes. |
f701c75e53f6
unstable-list: add "finding the resolution parent" section
Sushil khanchi <sushilkhanchi97@gmail.com>
parents:
5585
diff
changeset
|
346 |
f701c75e53f6
unstable-list: add "finding the resolution parent" section
Sushil khanchi <sushilkhanchi97@gmail.com>
parents:
5585
diff
changeset
|
347 D-A3.3: both moved backward; same branch |
f701c75e53f6
unstable-list: add "finding the resolution parent" section
Sushil khanchi <sushilkhanchi97@gmail.com>
parents:
5585
diff
changeset
|
348 """""""""""""""""""""""""""""""""""""""" |
f701c75e53f6
unstable-list: add "finding the resolution parent" section
Sushil khanchi <sushilkhanchi97@gmail.com>
parents:
5585
diff
changeset
|
349 |
f701c75e53f6
unstable-list: add "finding the resolution parent" section
Sushil khanchi <sushilkhanchi97@gmail.com>
parents:
5585
diff
changeset
|
350 XXX: yet to decide resolution |
f701c75e53f6
unstable-list: add "finding the resolution parent" section
Sushil khanchi <sushilkhanchi97@gmail.com>
parents:
5585
diff
changeset
|
351 |
f701c75e53f6
unstable-list: add "finding the resolution parent" section
Sushil khanchi <sushilkhanchi97@gmail.com>
parents:
5585
diff
changeset
|
352 D-A3.4: both moved opposite; same branch |
f701c75e53f6
unstable-list: add "finding the resolution parent" section
Sushil khanchi <sushilkhanchi97@gmail.com>
parents:
5585
diff
changeset
|
353 """""""""""""""""""""""""""""""""""""""" |
f701c75e53f6
unstable-list: add "finding the resolution parent" section
Sushil khanchi <sushilkhanchi97@gmail.com>
parents:
5585
diff
changeset
|
354 |
f701c75e53f6
unstable-list: add "finding the resolution parent" section
Sushil khanchi <sushilkhanchi97@gmail.com>
parents:
5585
diff
changeset
|
355 XXX: yet to decide resolution |
f701c75e53f6
unstable-list: add "finding the resolution parent" section
Sushil khanchi <sushilkhanchi97@gmail.com>
parents:
5585
diff
changeset
|
356 |
f701c75e53f6
unstable-list: add "finding the resolution parent" section
Sushil khanchi <sushilkhanchi97@gmail.com>
parents:
5585
diff
changeset
|
357 D-A3.5: both moved; one moved on different unrelated branch |
f701c75e53f6
unstable-list: add "finding the resolution parent" section
Sushil khanchi <sushilkhanchi97@gmail.com>
parents:
5585
diff
changeset
|
358 """"""""""""""""""""""""""""""""""""""""""""""""""""""""""" |
f701c75e53f6
unstable-list: add "finding the resolution parent" section
Sushil khanchi <sushilkhanchi97@gmail.com>
parents:
5585
diff
changeset
|
359 |
f701c75e53f6
unstable-list: add "finding the resolution parent" section
Sushil khanchi <sushilkhanchi97@gmail.com>
parents:
5585
diff
changeset
|
360 XXX: yet to decide resolution |
f701c75e53f6
unstable-list: add "finding the resolution parent" section
Sushil khanchi <sushilkhanchi97@gmail.com>
parents:
5585
diff
changeset
|
361 |
f701c75e53f6
unstable-list: add "finding the resolution parent" section
Sushil khanchi <sushilkhanchi97@gmail.com>
parents:
5585
diff
changeset
|
362 D-A3.6: both moved on two different unrelated branch |
f701c75e53f6
unstable-list: add "finding the resolution parent" section
Sushil khanchi <sushilkhanchi97@gmail.com>
parents:
5585
diff
changeset
|
363 """""""""""""""""""""""""""""""""""""""""""""""""""" |
f701c75e53f6
unstable-list: add "finding the resolution parent" section
Sushil khanchi <sushilkhanchi97@gmail.com>
parents:
5585
diff
changeset
|
364 |
f701c75e53f6
unstable-list: add "finding the resolution parent" section
Sushil khanchi <sushilkhanchi97@gmail.com>
parents:
5585
diff
changeset
|
365 XXX: yet to decide resolution |
f701c75e53f6
unstable-list: add "finding the resolution parent" section
Sushil khanchi <sushilkhanchi97@gmail.com>
parents:
5585
diff
changeset
|
366 |
5587
c2e71fc0efeb
unstable-list: add "merging files" section for content-divergence
Sushil khanchi <sushilkhanchi97@gmail.com>
parents:
5586
diff
changeset
|
367 |
c2e71fc0efeb
unstable-list: add "merging files" section for content-divergence
Sushil khanchi <sushilkhanchi97@gmail.com>
parents:
5586
diff
changeset
|
368 D-B: Merging files of divergent changesets |
c2e71fc0efeb
unstable-list: add "merging files" section for content-divergence
Sushil khanchi <sushilkhanchi97@gmail.com>
parents:
5586
diff
changeset
|
369 ------------------------------------------ |
c2e71fc0efeb
unstable-list: add "merging files" section for content-divergence
Sushil khanchi <sushilkhanchi97@gmail.com>
parents:
5586
diff
changeset
|
370 |
c2e71fc0efeb
unstable-list: add "merging files" section for content-divergence
Sushil khanchi <sushilkhanchi97@gmail.com>
parents:
5586
diff
changeset
|
371 While merging the files, there are few sub-cases that could arise |
c2e71fc0efeb
unstable-list: add "merging files" section for content-divergence
Sushil khanchi <sushilkhanchi97@gmail.com>
parents:
5586
diff
changeset
|
372 like file content conflict, rename information conflict, multiple newest |
c2e71fc0efeb
unstable-list: add "merging files" section for content-divergence
Sushil khanchi <sushilkhanchi97@gmail.com>
parents:
5586
diff
changeset
|
373 predecessor. Let's see them in detail. |
c2e71fc0efeb
unstable-list: add "merging files" section for content-divergence
Sushil khanchi <sushilkhanchi97@gmail.com>
parents:
5586
diff
changeset
|
374 |
c2e71fc0efeb
unstable-list: add "merging files" section for content-divergence
Sushil khanchi <sushilkhanchi97@gmail.com>
parents:
5586
diff
changeset
|
375 D-B1: File content conflict |
c2e71fc0efeb
unstable-list: add "merging files" section for content-divergence
Sushil khanchi <sushilkhanchi97@gmail.com>
parents:
5586
diff
changeset
|
376 ^^^^^^^^^^^^^^^^^^^^^^^^^^^ |
c2e71fc0efeb
unstable-list: add "merging files" section for content-divergence
Sushil khanchi <sushilkhanchi97@gmail.com>
parents:
5586
diff
changeset
|
377 |
c2e71fc0efeb
unstable-list: add "merging files" section for content-divergence
Sushil khanchi <sushilkhanchi97@gmail.com>
parents:
5586
diff
changeset
|
378 If there is a conflict in merging content of files we let the user to |
c2e71fc0efeb
unstable-list: add "merging files" section for content-divergence
Sushil khanchi <sushilkhanchi97@gmail.com>
parents:
5586
diff
changeset
|
379 resolve the conflict. |
c2e71fc0efeb
unstable-list: add "merging files" section for content-divergence
Sushil khanchi <sushilkhanchi97@gmail.com>
parents:
5586
diff
changeset
|
380 |
c2e71fc0efeb
unstable-list: add "merging files" section for content-divergence
Sushil khanchi <sushilkhanchi97@gmail.com>
parents:
5586
diff
changeset
|
381 D-B2: Rename information conflict |
c2e71fc0efeb
unstable-list: add "merging files" section for content-divergence
Sushil khanchi <sushilkhanchi97@gmail.com>
parents:
5586
diff
changeset
|
382 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ |
c2e71fc0efeb
unstable-list: add "merging files" section for content-divergence
Sushil khanchi <sushilkhanchi97@gmail.com>
parents:
5586
diff
changeset
|
383 |
c2e71fc0efeb
unstable-list: add "merging files" section for content-divergence
Sushil khanchi <sushilkhanchi97@gmail.com>
parents:
5586
diff
changeset
|
384 XXX: yet to explore |
c2e71fc0efeb
unstable-list: add "merging files" section for content-divergence
Sushil khanchi <sushilkhanchi97@gmail.com>
parents:
5586
diff
changeset
|
385 |
c2e71fc0efeb
unstable-list: add "merging files" section for content-divergence
Sushil khanchi <sushilkhanchi97@gmail.com>
parents:
5586
diff
changeset
|
386 D-B3: Multiple newest predecessor |
c2e71fc0efeb
unstable-list: add "merging files" section for content-divergence
Sushil khanchi <sushilkhanchi97@gmail.com>
parents:
5586
diff
changeset
|
387 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ |
c2e71fc0efeb
unstable-list: add "merging files" section for content-divergence
Sushil khanchi <sushilkhanchi97@gmail.com>
parents:
5586
diff
changeset
|
388 |
c2e71fc0efeb
unstable-list: add "merging files" section for content-divergence
Sushil khanchi <sushilkhanchi97@gmail.com>
parents:
5586
diff
changeset
|
389 XXX: yet to explore |
c2e71fc0efeb
unstable-list: add "merging files" section for content-divergence
Sushil khanchi <sushilkhanchi97@gmail.com>
parents:
5586
diff
changeset
|
390 |
5589
cbc886623dc1
unstable-list: add "merging metadata" section for content-divergence
Sushil khanchi <sushilkhanchi97@gmail.com>
parents:
5588
diff
changeset
|
391 |
cbc886623dc1
unstable-list: add "merging metadata" section for content-divergence
Sushil khanchi <sushilkhanchi97@gmail.com>
parents:
5588
diff
changeset
|
392 D-C: Merging metadata changes and create resultant changeset |
cbc886623dc1
unstable-list: add "merging metadata" section for content-divergence
Sushil khanchi <sushilkhanchi97@gmail.com>
parents:
5588
diff
changeset
|
393 ------------------------------------------------------------ |
cbc886623dc1
unstable-list: add "merging metadata" section for content-divergence
Sushil khanchi <sushilkhanchi97@gmail.com>
parents:
5588
diff
changeset
|
394 |
cbc886623dc1
unstable-list: add "merging metadata" section for content-divergence
Sushil khanchi <sushilkhanchi97@gmail.com>
parents:
5588
diff
changeset
|
395 While merging the metadata, there are few sub-cases that could arise |
cbc886623dc1
unstable-list: add "merging metadata" section for content-divergence
Sushil khanchi <sushilkhanchi97@gmail.com>
parents:
5588
diff
changeset
|
396 like branch name conflict, commit message conflict, commit author conflict. |
cbc886623dc1
unstable-list: add "merging metadata" section for content-divergence
Sushil khanchi <sushilkhanchi97@gmail.com>
parents:
5588
diff
changeset
|
397 If everything goes fine, we create the resultant changeset as a resolution of |
cbc886623dc1
unstable-list: add "merging metadata" section for content-divergence
Sushil khanchi <sushilkhanchi97@gmail.com>
parents:
5588
diff
changeset
|
398 content-divergence. |
5605
af1d71f3a028
unstable-list: add an item for solving named branch divergence
Sushil khanchi <sushilkhanchi97@gmail.com>
parents:
5589
diff
changeset
|
399 |
af1d71f3a028
unstable-list: add an item for solving named branch divergence
Sushil khanchi <sushilkhanchi97@gmail.com>
parents:
5589
diff
changeset
|
400 D-C1: Branch name conflict |
af1d71f3a028
unstable-list: add an item for solving named branch divergence
Sushil khanchi <sushilkhanchi97@gmail.com>
parents:
5589
diff
changeset
|
401 ^^^^^^^^^^^^^^^^^^^^^^^^^^ |
af1d71f3a028
unstable-list: add an item for solving named branch divergence
Sushil khanchi <sushilkhanchi97@gmail.com>
parents:
5589
diff
changeset
|
402 |
af1d71f3a028
unstable-list: add an item for solving named branch divergence
Sushil khanchi <sushilkhanchi97@gmail.com>
parents:
5589
diff
changeset
|
403 **Stabilisation Strategy** |
af1d71f3a028
unstable-list: add an item for solving named branch divergence
Sushil khanchi <sushilkhanchi97@gmail.com>
parents:
5589
diff
changeset
|
404 |
af1d71f3a028
unstable-list: add an item for solving named branch divergence
Sushil khanchi <sushilkhanchi97@gmail.com>
parents:
5589
diff
changeset
|
405 Merge branch names using the 3-way merge. If unable to merge, |
af1d71f3a028
unstable-list: add an item for solving named branch divergence
Sushil khanchi <sushilkhanchi97@gmail.com>
parents:
5589
diff
changeset
|
406 we prompt the user to select a branch. |
af1d71f3a028
unstable-list: add an item for solving named branch divergence
Sushil khanchi <sushilkhanchi97@gmail.com>
parents:
5589
diff
changeset
|
407 |
af1d71f3a028
unstable-list: add an item for solving named branch divergence
Sushil khanchi <sushilkhanchi97@gmail.com>
parents:
5589
diff
changeset
|
408 Possible improvement: If we are solving a long streak of divergence, each |
af1d71f3a028
unstable-list: add an item for solving named branch divergence
Sushil khanchi <sushilkhanchi97@gmail.com>
parents:
5589
diff
changeset
|
409 side having the same branch, we can probably infer the correct resolution |
af1d71f3a028
unstable-list: add an item for solving named branch divergence
Sushil khanchi <sushilkhanchi97@gmail.com>
parents:
5589
diff
changeset
|
410 from previous resolution. |
af1d71f3a028
unstable-list: add an item for solving named branch divergence
Sushil khanchi <sushilkhanchi97@gmail.com>
parents:
5589
diff
changeset
|
411 |
af1d71f3a028
unstable-list: add an item for solving named branch divergence
Sushil khanchi <sushilkhanchi97@gmail.com>
parents:
5589
diff
changeset
|
412 **Current Support Level** |
af1d71f3a028
unstable-list: add an item for solving named branch divergence
Sushil khanchi <sushilkhanchi97@gmail.com>
parents:
5589
diff
changeset
|
413 |
af1d71f3a028
unstable-list: add an item for solving named branch divergence
Sushil khanchi <sushilkhanchi97@gmail.com>
parents:
5589
diff
changeset
|
414 Good: current implementation is expected to perform the planned stabilisation. |
af1d71f3a028
unstable-list: add an item for solving named branch divergence
Sushil khanchi <sushilkhanchi97@gmail.com>
parents:
5589
diff
changeset
|
415 |
5606
4c2633a8d4d0
unstable-list: add an item about divergence on changeset description
Sushil khanchi <sushilkhanchi97@gmail.com>
parents:
5605
diff
changeset
|
416 D-C2: Commit description conflict |
4c2633a8d4d0
unstable-list: add an item about divergence on changeset description
Sushil khanchi <sushilkhanchi97@gmail.com>
parents:
5605
diff
changeset
|
417 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ |
4c2633a8d4d0
unstable-list: add an item about divergence on changeset description
Sushil khanchi <sushilkhanchi97@gmail.com>
parents:
5605
diff
changeset
|
418 |
4c2633a8d4d0
unstable-list: add an item about divergence on changeset description
Sushil khanchi <sushilkhanchi97@gmail.com>
parents:
5605
diff
changeset
|
419 **Stabilisation Strategy** |
4c2633a8d4d0
unstable-list: add an item about divergence on changeset description
Sushil khanchi <sushilkhanchi97@gmail.com>
parents:
5605
diff
changeset
|
420 |
4c2633a8d4d0
unstable-list: add an item about divergence on changeset description
Sushil khanchi <sushilkhanchi97@gmail.com>
parents:
5605
diff
changeset
|
421 Merge commit description using text merge tool from user. |
4c2633a8d4d0
unstable-list: add an item about divergence on changeset description
Sushil khanchi <sushilkhanchi97@gmail.com>
parents:
5605
diff
changeset
|
422 |
4c2633a8d4d0
unstable-list: add an item about divergence on changeset description
Sushil khanchi <sushilkhanchi97@gmail.com>
parents:
5605
diff
changeset
|
423 Possible improvement: They are currently no way to "interrupt" and resume that |
4c2633a8d4d0
unstable-list: add an item about divergence on changeset description
Sushil khanchi <sushilkhanchi97@gmail.com>
parents:
5605
diff
changeset
|
424 conflict resolution. Having some way to do that would be nice. |
4c2633a8d4d0
unstable-list: add an item about divergence on changeset description
Sushil khanchi <sushilkhanchi97@gmail.com>
parents:
5605
diff
changeset
|
425 |
4c2633a8d4d0
unstable-list: add an item about divergence on changeset description
Sushil khanchi <sushilkhanchi97@gmail.com>
parents:
5605
diff
changeset
|
426 **Current Support Level** |
4c2633a8d4d0
unstable-list: add an item about divergence on changeset description
Sushil khanchi <sushilkhanchi97@gmail.com>
parents:
5605
diff
changeset
|
427 |
4c2633a8d4d0
unstable-list: add an item about divergence on changeset description
Sushil khanchi <sushilkhanchi97@gmail.com>
parents:
5605
diff
changeset
|
428 Good: current implementation is expected to perform the planned stabilisation. |
5607
db1dd9fec06c
unstable-list: add an item about author divergence resolution
Sushil khanchi <sushilkhanchi97@gmail.com>
parents:
5606
diff
changeset
|
429 |
db1dd9fec06c
unstable-list: add an item about author divergence resolution
Sushil khanchi <sushilkhanchi97@gmail.com>
parents:
5606
diff
changeset
|
430 D-C3: Commit author conflict |
db1dd9fec06c
unstable-list: add an item about author divergence resolution
Sushil khanchi <sushilkhanchi97@gmail.com>
parents:
5606
diff
changeset
|
431 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^ |
db1dd9fec06c
unstable-list: add an item about author divergence resolution
Sushil khanchi <sushilkhanchi97@gmail.com>
parents:
5606
diff
changeset
|
432 |
db1dd9fec06c
unstable-list: add an item about author divergence resolution
Sushil khanchi <sushilkhanchi97@gmail.com>
parents:
5606
diff
changeset
|
433 **Stabilisation Strategy** |
db1dd9fec06c
unstable-list: add an item about author divergence resolution
Sushil khanchi <sushilkhanchi97@gmail.com>
parents:
5606
diff
changeset
|
434 |
db1dd9fec06c
unstable-list: add an item about author divergence resolution
Sushil khanchi <sushilkhanchi97@gmail.com>
parents:
5606
diff
changeset
|
435 Merge authors using 3-way merge. If unable to merge we concatenate |
db1dd9fec06c
unstable-list: add an item about author divergence resolution
Sushil khanchi <sushilkhanchi97@gmail.com>
parents:
5606
diff
changeset
|
436 the two, separated by comma. (for e.g. "John Doe, Malcolm X") |
db1dd9fec06c
unstable-list: add an item about author divergence resolution
Sushil khanchi <sushilkhanchi97@gmail.com>
parents:
5606
diff
changeset
|
437 |
db1dd9fec06c
unstable-list: add an item about author divergence resolution
Sushil khanchi <sushilkhanchi97@gmail.com>
parents:
5606
diff
changeset
|
438 **Current Support Level** |
db1dd9fec06c
unstable-list: add an item about author divergence resolution
Sushil khanchi <sushilkhanchi97@gmail.com>
parents:
5606
diff
changeset
|
439 |
db1dd9fec06c
unstable-list: add an item about author divergence resolution
Sushil khanchi <sushilkhanchi97@gmail.com>
parents:
5606
diff
changeset
|
440 Good: current implementation is expected to perform the planned stabilisation. |