docs/index.rst
changeset 227 abe52cf492ee
parent 194 b7145eed54fe
child 228 5a17c0d41a00
equal deleted inserted replaced
226:0892b91947ef 227:abe52cf492ee
     4 
     4 
     5 
     5 
     6 Here are various Materials on planned improvement to mercurial regarding
     6 Here are various Materials on planned improvement to mercurial regarding
     7 rewriting history.
     7 rewriting history.
     8 
     8 
     9 The effort  splits in two parts:
     9 First read about what challenge arise while rewriting history and how we plan to solve them once and for all.
       
    10 
       
    11 .. toctree::
       
    12    :maxdepth: 2
       
    13 
       
    14    unstability
       
    15 
       
    16 The effort is splits in two parts:
    10 
    17 
    11  * The **obsolete marker** concept aims to provide and alternative to ``strip``
    18  * The **obsolete marker** concept aims to provide and alternative to ``strip``
    12    to get ride of changesets.
    19    to get ride of changesets.
    13 
    20 
    14  * The **evolve** mercurial extension to rewrite history using *obsolete marker*
    21  * The **evolve** mercurial extension to rewrite history using *obsolete marker*
    25 
    32 
    26 Evolve is an experimental history rewriting extensions that use obsolete
    33 Evolve is an experimental history rewriting extensions that use obsolete
    27 markers. It is inspired from MQ and pbranch but have multiple advantage over
    34 markers. It is inspired from MQ and pbranch but have multiple advantage over
    28 them:
    35 them:
    29 
    36 
    30 * sticks to "Work where you are" philosophy (I'll need better wording
    37 * Focus on your current work.
    31   for that)
    38 
       
    39     You can focus your work on a single changeset and take care of adapting
       
    40     descendent changeset later.
    32 
    41 
    33 * Handle **non-linear history with branches and merges**
    42 * Handle **non-linear history with branches and merges**
    34 
    43 
    35 * Use **robust merge** mechanism of mercurial.
    44 * Rely internally on **robust merge** mechanism of mercurial.
    36 
    45 
    37   simple conflict are handled by real merge tools using appropriate ancestor.
    46   Simple conflict are handled by real merge tools using appropriate ancestor.
    38   Conflict are much rarer and much more user friendly.
    47   Conflict are much rarer and much more user friendly.
    39 
    48 
    40 *  Mutable history **fully available all the time**.
    49 *  Mutable history are **fully available all the time**.
    41 
    50 
    42   You are do not need to unapply and apply patche to access various part of you
    51   You are do not need to unapply and apply patche to access various part of you
    43   history.
    52   history.
    44 
    53 
    45 * Use **plain changeset** only. Evole create and exchange real changeset only. 
    54 * Use **plain changeset** only.
       
    55 
       
    56   Evolve create and exchange real changeset only, not patches.
    46   Mutable history can be used in all usual operation 'pull, push, log, diff …)
    57   Mutable history can be used in all usual operation 'pull, push, log, diff …)
    47 
    58 
    48 * Allow **sharing and collaboration** mutable history without fear of duplicate.
    59 * Allow **sharing and collaboration** mutable history without fear of duplicate.
    49   (thanks to obsolete marker).
    60   (thanks to obsolete marker).
    50 
    61 
    53 .. warning:: The evolve extention and the obsolete marker are at an experimental
    64 .. warning:: The evolve extention and the obsolete marker are at an experimental
    54             stage. While using obsolet you'll likely be exposed to complexe
    65             stage. While using obsolet you'll likely be exposed to complexe
    55             implication of the **obsolete marker** concept. I do not recommend
    66             implication of the **obsolete marker** concept. I do not recommend
    56             non power user to test this at this stage.
    67             non power user to test this at this stage.
    57 
    68 
       
    69             XXX make sure to read the XXX section before using it.
       
    70 
    58             Production ready version should hide such details to normal user.
    71             Production ready version should hide such details to normal user.
    59 
    72 
    60 To enable the evolve extension use::
    73 To enable the evolve extension use::
    61 
    74 
    62     $ hg clone http://hg-dev.octopoid.net/hgwebdir.cgi/mutable-history/
    75     $ hg clone http://hg-dev.octopoid.net/hgwebdir.cgi/mutable-history/
    63     $ mutable-history/enable.sh >> ~/.hgrc
    76     $ mutable-history/enable.sh >> ~/.hgrc
    64 
    77 
    65 You will probably want to use the associated version of hgview (QT viewer
    78 You will probably want to use the associated version of hgview (qt viewer
    66 only). ::
    79 recommended). ::
    67 
    80 
    68     $ hg clone http://hg-dev.octopoid.net/hgwebdir.cgi/hgview/
    81     $ hg clone http://hg-dev.octopoid.net/hgwebdir.cgi/hgview/
    69     $ cd hgview
    82     $ cd hgview
    70     $ python setup.py install --user
    83     $ python setup.py install --user
    71 
    84 
       
    85 works with mercurial 2.1 and 2.2 (recommended)
    72 
    86 
    73  ---
    87  ---
    74 
    88 
    75 For more information see documents below
    89 For more information see documents below:
    76 
    90 
    77 .. toctree::
    91 .. toctree::
    78    :maxdepth: 2
    92    :maxdepth: 2
    79 
    93 
    80    tutorial
    94    tutorial
   117 
   131 
   118 
   132 
   119 
   133 
   120 
   134 
   121 
   135 
   122 Know canveas
   136 Known limitation and bug
   123 =================================
   137 =================================
   124 
   138 
   125 Here is a list of know issue that will be fixed later:
   139 Here is a list of know issue that will be fixed later:
   126 
   140 
   127 * Unstable changeset turns secret.
       
   128 
   141 
   129 * ``hg stabilize`` does not handle conflict.
       
   130 
   142 
   131 * Mercurial think you are pushing additional heads even when the new head
   143 * ``hg stabilize`` does not handle merge conflict.
   132   obsolete another one. You have to use hg push -f more than necessary.
   144 
       
   145     You must fallback to graft or rebase when that happen.
       
   146 
       
   147 * rewritinf conflict are not detected yet``hg stabilize`` does not handle them.
   133 
   148 
   134 * ``hg update`` can move an obsolete parent
   149 * ``hg update`` can move an obsolete parent
   135 
   150 
   136 * you need to provideto graft --continue -O if you started you graft using -O.
   151 * you need to provide to `graft --continue -O` if you started you graft using `-O`.
   137 
       
   138 * hg graphlog show extinct changeset
       
   139 
       
   140 * hg heads show extinct changeset
       
   141 
   152 
   142 * hg merge considered extinct head as valid target. requiring you to manually
   153 * hg merge considered extinct head as valid target. requiring you to manually
   143   specify target all the time.
   154   specify target all the time.
   144 
   155 
   145 * obsolete relation exchange crash (as in traceback) on static http repo.
   156 * obsolete relation exchange crash (as in traceback) on static http repo.
       
   157 
       
   158 * Extinct changeset are turned secret by various commands.
       
   159 
       
   160 * Extinct changesets are hidden using the *hidden* feature of mercurial only
       
   161   supported by a few commands.
       
   162 
       
   163   Only ``hg log``, ``hgview`` and `hg glog` (2.2 only) support it. ``hg head`` or other visual viewer don't.
       
   164 
       
   165 * hg heads show extinct changeset
       
   166 
       
   167 Fixed in 2.2
       
   168 ---------------------------------
       
   169 
       
   170 * hg graphlog show extinct changeset
       
   171 
       
   172 * Mercurial 2.1 think you are pushing additional heads even when the new head
       
   173   obsolete another one. You have to use hg push -f more than necessary.
   146 
   174 
   147 
   175 
   148 
   176 
   149 
   177 
   150 
   178