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