README
author Pierre-Yves David <pierre-yves.david@logilab.fr>
Thu, 08 Sep 2011 18:20:01 +0200
changeset 54 ad1a4fb0fc49
parent 48 5fd7b64aa8c5
child 59 02fba620d139
permissions -rw-r--r--
Make states more resilient to missing head In particuliar pushkey is now more robust (with a very naif approach)
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
33
dca86448d736 Add some doc.
Pierre-Yves David <pierre-yves.david@logilab.fr>
parents:
diff changeset
     1
=============================
dca86448d736 Add some doc.
Pierre-Yves David <pierre-yves.david@logilab.fr>
parents:
diff changeset
     2
Mutable History For Mercurial
dca86448d736 Add some doc.
Pierre-Yves David <pierre-yves.david@logilab.fr>
parents:
diff changeset
     3
=============================
dca86448d736 Add some doc.
Pierre-Yves David <pierre-yves.david@logilab.fr>
parents:
diff changeset
     4
35
0f98f87881bd Spelling fixes
Julien Cristau <julien.cristau@logilab.fr>
parents: 34
diff changeset
     5
This repository holds three experimental extensions that introduce concepts
0f98f87881bd Spelling fixes
Julien Cristau <julien.cristau@logilab.fr>
parents: 34
diff changeset
     6
related to history rewriting in mercurial.
33
dca86448d736 Add some doc.
Pierre-Yves David <pierre-yves.david@logilab.fr>
parents:
diff changeset
     7
dca86448d736 Add some doc.
Pierre-Yves David <pierre-yves.david@logilab.fr>
parents:
diff changeset
     8
:states:
dca86448d736 Add some doc.
Pierre-Yves David <pierre-yves.david@logilab.fr>
parents:
diff changeset
     9
35
0f98f87881bd Spelling fixes
Julien Cristau <julien.cristau@logilab.fr>
parents: 34
diff changeset
    10
    Introduce a state concept. It allows to track which changesets have been
0f98f87881bd Spelling fixes
Julien Cristau <julien.cristau@logilab.fr>
parents: 34
diff changeset
    11
    made public and immutable and which you want to keep local.
33
dca86448d736 Add some doc.
Pierre-Yves David <pierre-yves.david@logilab.fr>
parents:
diff changeset
    12
dca86448d736 Add some doc.
Pierre-Yves David <pierre-yves.david@logilab.fr>
parents:
diff changeset
    13
:obsolete:
dca86448d736 Add some doc.
Pierre-Yves David <pierre-yves.david@logilab.fr>
parents:
diff changeset
    14
35
0f98f87881bd Spelling fixes
Julien Cristau <julien.cristau@logilab.fr>
parents: 34
diff changeset
    15
    Introduce an ``obsolete`` concept that tracks new versions of rewritten
0f98f87881bd Spelling fixes
Julien Cristau <julien.cristau@logilab.fr>
parents: 34
diff changeset
    16
    changesets.
33
dca86448d736 Add some doc.
Pierre-Yves David <pierre-yves.david@logilab.fr>
parents:
diff changeset
    17
dca86448d736 Add some doc.
Pierre-Yves David <pierre-yves.david@logilab.fr>
parents:
diff changeset
    18
:rewrite:
35
0f98f87881bd Spelling fixes
Julien Cristau <julien.cristau@logilab.fr>
parents: 34
diff changeset
    19
    A collection of commands to rewrite the mutable part of the history.
33
dca86448d736 Add some doc.
Pierre-Yves David <pierre-yves.david@logilab.fr>
parents:
diff changeset
    20
dca86448d736 Add some doc.
Pierre-Yves David <pierre-yves.david@logilab.fr>
parents:
diff changeset
    21
dca86448d736 Add some doc.
Pierre-Yves David <pierre-yves.david@logilab.fr>
parents:
diff changeset
    22
dca86448d736 Add some doc.
Pierre-Yves David <pierre-yves.david@logilab.fr>
parents:
diff changeset
    23
**These extensions are experimental and are not meant for production.**
dca86448d736 Add some doc.
Pierre-Yves David <pierre-yves.david@logilab.fr>
parents:
diff changeset
    24
dca86448d736 Add some doc.
Pierre-Yves David <pierre-yves.david@logilab.fr>
parents:
diff changeset
    25
dca86448d736 Add some doc.
Pierre-Yves David <pierre-yves.david@logilab.fr>
parents:
diff changeset
    26
States Extension
35
0f98f87881bd Spelling fixes
Julien Cristau <julien.cristau@logilab.fr>
parents: 34
diff changeset
    27
================
33
dca86448d736 Add some doc.
Pierre-Yves David <pierre-yves.david@logilab.fr>
parents:
diff changeset
    28
dca86448d736 Add some doc.
Pierre-Yves David <pierre-yves.david@logilab.fr>
parents:
diff changeset
    29
state: experimentally functional
dca86448d736 Add some doc.
Pierre-Yves David <pierre-yves.david@logilab.fr>
parents:
diff changeset
    30
dca86448d736 Add some doc.
Pierre-Yves David <pierre-yves.david@logilab.fr>
parents:
diff changeset
    31
(see http://mercurial.selenic.com/wiki/StatesPlan)
dca86448d736 Add some doc.
Pierre-Yves David <pierre-yves.david@logilab.fr>
parents:
diff changeset
    32
35
0f98f87881bd Spelling fixes
Julien Cristau <julien.cristau@logilab.fr>
parents: 34
diff changeset
    33
This extension adds the state concept. A changeset now has one of the following
0f98f87881bd Spelling fixes
Julien Cristau <julien.cristau@logilab.fr>
parents: 34
diff changeset
    34
*states*:
33
dca86448d736 Add some doc.
Pierre-Yves David <pierre-yves.david@logilab.fr>
parents:
diff changeset
    35
dca86448d736 Add some doc.
Pierre-Yves David <pierre-yves.david@logilab.fr>
parents:
diff changeset
    36
:published:
dca86448d736 Add some doc.
Pierre-Yves David <pierre-yves.david@logilab.fr>
parents:
diff changeset
    37
35
0f98f87881bd Spelling fixes
Julien Cristau <julien.cristau@logilab.fr>
parents: 34
diff changeset
    38
    Changesets in the ``published`` state are the core of the history.  They are
0f98f87881bd Spelling fixes
Julien Cristau <julien.cristau@logilab.fr>
parents: 34
diff changeset
    39
    changesets that you published to the world. People can expect them to always
0f98f87881bd Spelling fixes
Julien Cristau <julien.cristau@logilab.fr>
parents: 34
diff changeset
    40
    exist. They are changesets as you know them. **By default all changesets
33
dca86448d736 Add some doc.
Pierre-Yves David <pierre-yves.david@logilab.fr>
parents:
diff changeset
    41
    are published**
dca86448d736 Add some doc.
Pierre-Yves David <pierre-yves.david@logilab.fr>
parents:
diff changeset
    42
35
0f98f87881bd Spelling fixes
Julien Cristau <julien.cristau@logilab.fr>
parents: 34
diff changeset
    43
    * They are exchanged with other repositories (included in pull//push).
33
dca86448d736 Add some doc.
Pierre-Yves David <pierre-yves.david@logilab.fr>
parents:
diff changeset
    44
35
0f98f87881bd Spelling fixes
Julien Cristau <julien.cristau@logilab.fr>
parents: 34
diff changeset
    45
    * They are not mutable, extensions rewriting history should refuse to
33
dca86448d736 Add some doc.
Pierre-Yves David <pierre-yves.david@logilab.fr>
parents:
diff changeset
    46
      rewrite them.
dca86448d736 Add some doc.
Pierre-Yves David <pierre-yves.david@logilab.fr>
parents:
diff changeset
    47
dca86448d736 Add some doc.
Pierre-Yves David <pierre-yves.david@logilab.fr>
parents:
diff changeset
    48
:ready:
dca86448d736 Add some doc.
Pierre-Yves David <pierre-yves.david@logilab.fr>
parents:
diff changeset
    49
35
0f98f87881bd Spelling fixes
Julien Cristau <julien.cristau@logilab.fr>
parents: 34
diff changeset
    50
    Changesets in the ``ready`` state have not yet been accepted in the
0f98f87881bd Spelling fixes
Julien Cristau <julien.cristau@logilab.fr>
parents: 34
diff changeset
    51
    immutable history. You can share them with others for review, testing or
33
dca86448d736 Add some doc.
Pierre-Yves David <pierre-yves.david@logilab.fr>
parents:
diff changeset
    52
    improvement. Any ``ready`` changeset can either be included in the
35
0f98f87881bd Spelling fixes
Julien Cristau <julien.cristau@logilab.fr>
parents: 34
diff changeset
    53
    published history (and become immutable) or be rewritten and never make it
0f98f87881bd Spelling fixes
Julien Cristau <julien.cristau@logilab.fr>
parents: 34
diff changeset
    54
    to the published history.
33
dca86448d736 Add some doc.
Pierre-Yves David <pierre-yves.david@logilab.fr>
parents:
diff changeset
    55
35
0f98f87881bd Spelling fixes
Julien Cristau <julien.cristau@logilab.fr>
parents: 34
diff changeset
    56
    * They are exchanged with other repositories (included in pull//push).
0f98f87881bd Spelling fixes
Julien Cristau <julien.cristau@logilab.fr>
parents: 34
diff changeset
    57
    * They are mutable, extensions rewriting history accept to work on them.
33
dca86448d736 Add some doc.
Pierre-Yves David <pierre-yves.david@logilab.fr>
parents:
diff changeset
    58
dca86448d736 Add some doc.
Pierre-Yves David <pierre-yves.david@logilab.fr>
parents:
diff changeset
    59
:draft:
dca86448d736 Add some doc.
Pierre-Yves David <pierre-yves.david@logilab.fr>
parents:
diff changeset
    60
35
0f98f87881bd Spelling fixes
Julien Cristau <julien.cristau@logilab.fr>
parents: 34
diff changeset
    61
    Changesets in the ``draft`` state are heavy work in progress you are not
0f98f87881bd Spelling fixes
Julien Cristau <julien.cristau@logilab.fr>
parents: 34
diff changeset
    62
    yet willing to share with others.
33
dca86448d736 Add some doc.
Pierre-Yves David <pierre-yves.david@logilab.fr>
parents:
diff changeset
    63
35
0f98f87881bd Spelling fixes
Julien Cristau <julien.cristau@logilab.fr>
parents: 34
diff changeset
    64
    * They are not exchanged with other repositories. pull//push do not see them.
0f98f87881bd Spelling fixes
Julien Cristau <julien.cristau@logilab.fr>
parents: 34
diff changeset
    65
    * They are mutable, extensions rewriting history accept to work on them.
33
dca86448d736 Add some doc.
Pierre-Yves David <pierre-yves.david@logilab.fr>
parents:
diff changeset
    66
dca86448d736 Add some doc.
Pierre-Yves David <pierre-yves.david@logilab.fr>
parents:
diff changeset
    67
35
0f98f87881bd Spelling fixes
Julien Cristau <julien.cristau@logilab.fr>
parents: 34
diff changeset
    68
States of changesets have to be consistent with each other. A ``published``
33
dca86448d736 Add some doc.
Pierre-Yves David <pierre-yves.david@logilab.fr>
parents:
diff changeset
    69
changeset can only have ``published`` ancestors. A ``ready`` changeset can only
35
0f98f87881bd Spelling fixes
Julien Cristau <julien.cristau@logilab.fr>
parents: 34
diff changeset
    70
have ``published`` or ``ready`` ancestors.
33
dca86448d736 Add some doc.
Pierre-Yves David <pierre-yves.david@logilab.fr>
parents:
diff changeset
    71
dca86448d736 Add some doc.
Pierre-Yves David <pierre-yves.david@logilab.fr>
parents:
diff changeset
    72
dca86448d736 Add some doc.
Pierre-Yves David <pierre-yves.david@logilab.fr>
parents:
diff changeset
    73
Usage and Feature
dca86448d736 Add some doc.
Pierre-Yves David <pierre-yves.david@logilab.fr>
parents:
diff changeset
    74
------------------
dca86448d736 Add some doc.
Pierre-Yves David <pierre-yves.david@logilab.fr>
parents:
diff changeset
    75
35
0f98f87881bd Spelling fixes
Julien Cristau <julien.cristau@logilab.fr>
parents: 34
diff changeset
    76
By default all changesets in the repository are ``published``. Other states must
0f98f87881bd Spelling fixes
Julien Cristau <julien.cristau@logilab.fr>
parents: 34
diff changeset
    77
be explicitly activated. When a state is not activated, changesets in this state
0f98f87881bd Spelling fixes
Julien Cristau <julien.cristau@logilab.fr>
parents: 34
diff changeset
    78
are handled as changesets of the state before it (``draft`` are handled as
0f98f87881bd Spelling fixes
Julien Cristau <julien.cristau@logilab.fr>
parents: 34
diff changeset
    79
``ready``, ``ready`` are handled as ``published``).
33
dca86448d736 Add some doc.
Pierre-Yves David <pierre-yves.david@logilab.fr>
parents:
diff changeset
    80
35
0f98f87881bd Spelling fixes
Julien Cristau <julien.cristau@logilab.fr>
parents: 34
diff changeset
    81
Changesets will automatically move to ``published`` state when:
33
dca86448d736 Add some doc.
Pierre-Yves David <pierre-yves.david@logilab.fr>
parents:
diff changeset
    82
35
0f98f87881bd Spelling fixes
Julien Cristau <julien.cristau@logilab.fr>
parents: 34
diff changeset
    83
* pushed to a repo that doesn't support the ``ready`` state.
33
dca86448d736 Add some doc.
Pierre-Yves David <pierre-yves.david@logilab.fr>
parents:
diff changeset
    84
dca86448d736 Add some doc.
Pierre-Yves David <pierre-yves.david@logilab.fr>
parents:
diff changeset
    85
* Tagged by a non local tag.
dca86448d736 Add some doc.
Pierre-Yves David <pierre-yves.david@logilab.fr>
parents:
diff changeset
    86
dca86448d736 Add some doc.
Pierre-Yves David <pierre-yves.david@logilab.fr>
parents:
diff changeset
    87
Commands
dca86448d736 Add some doc.
Pierre-Yves David <pierre-yves.david@logilab.fr>
parents:
diff changeset
    88
........
dca86448d736 Add some doc.
Pierre-Yves David <pierre-yves.david@logilab.fr>
parents:
diff changeset
    89
35
0f98f87881bd Spelling fixes
Julien Cristau <julien.cristau@logilab.fr>
parents: 34
diff changeset
    90
The extension adds a ``hg states`` command to choose which states are used by a
33
dca86448d736 Add some doc.
Pierre-Yves David <pierre-yves.david@logilab.fr>
parents:
diff changeset
    91
repository, see ``hg help states for details``.
dca86448d736 Add some doc.
Pierre-Yves David <pierre-yves.david@logilab.fr>
parents:
diff changeset
    92
35
0f98f87881bd Spelling fixes
Julien Cristau <julien.cristau@logilab.fr>
parents: 34
diff changeset
    93
A command is also added for each active state. The command has the name of the
0f98f87881bd Spelling fixes
Julien Cristau <julien.cristau@logilab.fr>
parents: 34
diff changeset
    94
state and is used to manually change the state of a changeset. This is mainly
0f98f87881bd Spelling fixes
Julien Cristau <julien.cristau@logilab.fr>
parents: 34
diff changeset
    95
useful to move changesets from ``draft`` to ``ready``.:: 
33
dca86448d736 Add some doc.
Pierre-Yves David <pierre-yves.david@logilab.fr>
parents:
diff changeset
    96
dca86448d736 Add some doc.
Pierre-Yves David <pierre-yves.david@logilab.fr>
parents:
diff changeset
    97
    hg ready tip
dca86448d736 Add some doc.
Pierre-Yves David <pierre-yves.david@logilab.fr>
parents:
diff changeset
    98
dca86448d736 Add some doc.
Pierre-Yves David <pierre-yves.david@logilab.fr>
parents:
diff changeset
    99
Template
dca86448d736 Add some doc.
Pierre-Yves David <pierre-yves.david@logilab.fr>
parents:
diff changeset
   100
........
dca86448d736 Add some doc.
Pierre-Yves David <pierre-yves.david@logilab.fr>
parents:
diff changeset
   101
35
0f98f87881bd Spelling fixes
Julien Cristau <julien.cristau@logilab.fr>
parents: 34
diff changeset
   102
A new template keyword ``{state}`` has been added.
33
dca86448d736 Add some doc.
Pierre-Yves David <pierre-yves.david@logilab.fr>
parents:
diff changeset
   103
dca86448d736 Add some doc.
Pierre-Yves David <pierre-yves.david@logilab.fr>
parents:
diff changeset
   104
Revset
dca86448d736 Add some doc.
Pierre-Yves David <pierre-yves.david@logilab.fr>
parents:
diff changeset
   105
........
dca86448d736 Add some doc.
Pierre-Yves David <pierre-yves.david@logilab.fr>
parents:
diff changeset
   106
35
0f98f87881bd Spelling fixes
Julien Cristau <julien.cristau@logilab.fr>
parents: 34
diff changeset
   107
We add new ``readyheads()`` and ``publishedheads()`` revset directives. This
0f98f87881bd Spelling fixes
Julien Cristau <julien.cristau@logilab.fr>
parents: 34
diff changeset
   108
returns the heads of each state **as if all of them were activated**.
33
dca86448d736 Add some doc.
Pierre-Yves David <pierre-yves.david@logilab.fr>
parents:
diff changeset
   109
dca86448d736 Add some doc.
Pierre-Yves David <pierre-yves.david@logilab.fr>
parents:
diff changeset
   110
FAQ
dca86448d736 Add some doc.
Pierre-Yves David <pierre-yves.david@logilab.fr>
parents:
diff changeset
   111
---
dca86448d736 Add some doc.
Pierre-Yves David <pierre-yves.david@logilab.fr>
parents:
diff changeset
   112
35
0f98f87881bd Spelling fixes
Julien Cristau <julien.cristau@logilab.fr>
parents: 34
diff changeset
   113
Why to you store activate state outside ``.hg/hgrc``?
0f98f87881bd Spelling fixes
Julien Cristau <julien.cristau@logilab.fr>
parents: 34
diff changeset
   114
.....................................................
33
dca86448d736 Add some doc.
Pierre-Yves David <pierre-yves.david@logilab.fr>
parents:
diff changeset
   115
36
6531b01b2763 Complete a Readme sentence.
Pierre-Yves David <pierre-yves.david@logilab.fr>
parents: 35
diff changeset
   116
``.hg/hgrc`` might be ignored for trust reason. We don't want the trust issue
6531b01b2763 Complete a Readme sentence.
Pierre-Yves David <pierre-yves.david@logilab.fr>
parents: 35
diff changeset
   117
to interfer with enabled state information.
33
dca86448d736 Add some doc.
Pierre-Yves David <pierre-yves.david@logilab.fr>
parents:
diff changeset
   118
35
0f98f87881bd Spelling fixes
Julien Cristau <julien.cristau@logilab.fr>
parents: 34
diff changeset
   119
Why is the ``dead`` state missing?
0f98f87881bd Spelling fixes
Julien Cristau <julien.cristau@logilab.fr>
parents: 34
diff changeset
   120
.....................................................
33
dca86448d736 Add some doc.
Pierre-Yves David <pierre-yves.david@logilab.fr>
parents:
diff changeset
   121
35
0f98f87881bd Spelling fixes
Julien Cristau <julien.cristau@logilab.fr>
parents: 34
diff changeset
   122
1. The ``dead`` state has a different behaviour that requires more work to be
0f98f87881bd Spelling fixes
Julien Cristau <julien.cristau@logilab.fr>
parents: 34
diff changeset
   123
implemented.
33
dca86448d736 Add some doc.
Pierre-Yves David <pierre-yves.david@logilab.fr>
parents:
diff changeset
   124
35
0f98f87881bd Spelling fixes
Julien Cristau <julien.cristau@logilab.fr>
parents: 34
diff changeset
   125
2. I believe that the use cases of ``dead changeset`` are better covered by the
33
dca86448d736 Add some doc.
Pierre-Yves David <pierre-yves.david@logilab.fr>
parents:
diff changeset
   126
``obsolete`` extension.
dca86448d736 Add some doc.
Pierre-Yves David <pierre-yves.david@logilab.fr>
parents:
diff changeset
   127
dca86448d736 Add some doc.
Pierre-Yves David <pierre-yves.david@logilab.fr>
parents:
diff changeset
   128
To Do
dca86448d736 Add some doc.
Pierre-Yves David <pierre-yves.david@logilab.fr>
parents:
diff changeset
   129
-----
dca86448d736 Add some doc.
Pierre-Yves David <pierre-yves.david@logilab.fr>
parents:
diff changeset
   130
48
5fd7b64aa8c5 update README
Pierre-Yves David <pierre-yves.david@logilab.fr>
parents: 36
diff changeset
   131
* be robust to unknown changeset in boundary
5fd7b64aa8c5 update README
Pierre-Yves David <pierre-yves.david@logilab.fr>
parents: 36
diff changeset
   132
35
0f98f87881bd Spelling fixes
Julien Cristau <julien.cristau@logilab.fr>
parents: 34
diff changeset
   133
* Moving boundary backward (code exists in the ``liquid`` extension done at the
33
dca86448d736 Add some doc.
Pierre-Yves David <pierre-yves.david@logilab.fr>
parents:
diff changeset
   134
  CPH sprint)
dca86448d736 Add some doc.
Pierre-Yves David <pierre-yves.david@logilab.fr>
parents:
diff changeset
   135
35
0f98f87881bd Spelling fixes
Julien Cristau <julien.cristau@logilab.fr>
parents: 34
diff changeset
   136
* support for default value in configuration (for init and clone)
33
dca86448d736 Add some doc.
Pierre-Yves David <pierre-yves.david@logilab.fr>
parents:
diff changeset
   137
35
0f98f87881bd Spelling fixes
Julien Cristau <julien.cristau@logilab.fr>
parents: 34
diff changeset
   138
* stronger pull//push support (unknown remote heads confuse the current code)
33
dca86448d736 Add some doc.
Pierre-Yves David <pierre-yves.david@logilab.fr>
parents:
diff changeset
   139
35
0f98f87881bd Spelling fixes
Julien Cristau <julien.cristau@logilab.fr>
parents: 34
diff changeset
   140
* display the number of changesets that change state when activating a state.
33
dca86448d736 Add some doc.
Pierre-Yves David <pierre-yves.david@logilab.fr>
parents:
diff changeset
   141
35
0f98f87881bd Spelling fixes
Julien Cristau <julien.cristau@logilab.fr>
parents: 34
diff changeset
   142
* have a switch to select if changesets do change state on state activation.
33
dca86448d736 Add some doc.
Pierre-Yves David <pierre-yves.david@logilab.fr>
parents:
diff changeset
   143
dca86448d736 Add some doc.
Pierre-Yves David <pierre-yves.david@logilab.fr>
parents:
diff changeset
   144
* proper revset directive.
dca86448d736 Add some doc.
Pierre-Yves David <pierre-yves.david@logilab.fr>
parents:
diff changeset
   145
48
5fd7b64aa8c5 update README
Pierre-Yves David <pierre-yves.david@logilab.fr>
parents: 36
diff changeset
   146
    - for changeset in states
5fd7b64aa8c5 update README
Pierre-Yves David <pierre-yves.david@logilab.fr>
parents: 36
diff changeset
   147
    - for "in use" changeset heads.
5fd7b64aa8c5 update README
Pierre-Yves David <pierre-yves.david@logilab.fr>
parents: 36
diff changeset
   148
5fd7b64aa8c5 update README
Pierre-Yves David <pierre-yves.david@logilab.fr>
parents: 36
diff changeset
   149
33
dca86448d736 Add some doc.
Pierre-Yves David <pierre-yves.david@logilab.fr>
parents:
diff changeset
   150
dca86448d736 Add some doc.
Pierre-Yves David <pierre-yves.david@logilab.fr>
parents:
diff changeset
   151
dca86448d736 Add some doc.
Pierre-Yves David <pierre-yves.david@logilab.fr>
parents:
diff changeset
   152
dca86448d736 Add some doc.
Pierre-Yves David <pierre-yves.david@logilab.fr>
parents:
diff changeset
   153
Obsolete Extension
dca86448d736 Add some doc.
Pierre-Yves David <pierre-yves.david@logilab.fr>
parents:
diff changeset
   154
======================
dca86448d736 Add some doc.
Pierre-Yves David <pierre-yves.david@logilab.fr>
parents:
diff changeset
   155
dca86448d736 Add some doc.
Pierre-Yves David <pierre-yves.david@logilab.fr>
parents:
diff changeset
   156
state: in progress
dca86448d736 Add some doc.
Pierre-Yves David <pierre-yves.david@logilab.fr>
parents:
diff changeset
   157
35
0f98f87881bd Spelling fixes
Julien Cristau <julien.cristau@logilab.fr>
parents: 34
diff changeset
   158
This extension introduces the *obsolete* concept. It adds a new *obsolete*
0f98f87881bd Spelling fixes
Julien Cristau <julien.cristau@logilab.fr>
parents: 34
diff changeset
   159
relation between two changesets. A relation ``<changeset B> obsolete <changeset
0f98f87881bd Spelling fixes
Julien Cristau <julien.cristau@logilab.fr>
parents: 34
diff changeset
   160
A>`` is set to denote that ``<changeset B>`` is new version of ``<changeset
0f98f87881bd Spelling fixes
Julien Cristau <julien.cristau@logilab.fr>
parents: 34
diff changeset
   161
A>``.
34
f28116682827 Add a few information about obsolete relation.
Pierre-Yves David <pierre-yves.david@logilab.fr>
parents: 33
diff changeset
   162
f28116682827 Add a few information about obsolete relation.
Pierre-Yves David <pierre-yves.david@logilab.fr>
parents: 33
diff changeset
   163
The *obsolete* relation act as a **perpendicular history** to the standard
35
0f98f87881bd Spelling fixes
Julien Cristau <julien.cristau@logilab.fr>
parents: 34
diff changeset
   164
changeset history. Standard changeset history versions files. The *obsolete*
0f98f87881bd Spelling fixes
Julien Cristau <julien.cristau@logilab.fr>
parents: 34
diff changeset
   165
relation versions changesets.
34
f28116682827 Add a few information about obsolete relation.
Pierre-Yves David <pierre-yves.david@logilab.fr>
parents: 33
diff changeset
   166
33
dca86448d736 Add some doc.
Pierre-Yves David <pierre-yves.david@logilab.fr>
parents:
diff changeset
   167
Usage and Feature
dca86448d736 Add some doc.
Pierre-Yves David <pierre-yves.david@logilab.fr>
parents:
diff changeset
   168
------------------
dca86448d736 Add some doc.
Pierre-Yves David <pierre-yves.david@logilab.fr>
parents:
diff changeset
   169
35
0f98f87881bd Spelling fixes
Julien Cristau <julien.cristau@logilab.fr>
parents: 34
diff changeset
   170
obsolete changesets are hidden.
33
dca86448d736 Add some doc.
Pierre-Yves David <pierre-yves.david@logilab.fr>
parents:
diff changeset
   171
dca86448d736 Add some doc.
Pierre-Yves David <pierre-yves.david@logilab.fr>
parents:
diff changeset
   172
Commands
dca86448d736 Add some doc.
Pierre-Yves David <pierre-yves.david@logilab.fr>
parents:
diff changeset
   173
........
dca86448d736 Add some doc.
Pierre-Yves David <pierre-yves.david@logilab.fr>
parents:
diff changeset
   174
dca86448d736 Add some doc.
Pierre-Yves David <pierre-yves.david@logilab.fr>
parents:
diff changeset
   175
35
0f98f87881bd Spelling fixes
Julien Cristau <julien.cristau@logilab.fr>
parents: 34
diff changeset
   176
a ``debugobsolete`` command has been added.
33
dca86448d736 Add some doc.
Pierre-Yves David <pierre-yves.david@logilab.fr>
parents:
diff changeset
   177
dca86448d736 Add some doc.
Pierre-Yves David <pierre-yves.david@logilab.fr>
parents:
diff changeset
   178
dca86448d736 Add some doc.
Pierre-Yves David <pierre-yves.david@logilab.fr>
parents:
diff changeset
   179
To Do
dca86448d736 Add some doc.
Pierre-Yves David <pierre-yves.david@logilab.fr>
parents:
diff changeset
   180
-----
dca86448d736 Add some doc.
Pierre-Yves David <pierre-yves.david@logilab.fr>
parents:
diff changeset
   181
dca86448d736 Add some doc.
Pierre-Yves David <pierre-yves.david@logilab.fr>
parents:
diff changeset
   182
* do not exchange them
dca86448d736 Add some doc.
Pierre-Yves David <pierre-yves.david@logilab.fr>
parents:
diff changeset
   183
dca86448d736 Add some doc.
Pierre-Yves David <pierre-yves.david@logilab.fr>
parents:
diff changeset
   184
* handle non-obsolete children
dca86448d736 Add some doc.
Pierre-Yves David <pierre-yves.david@logilab.fr>
parents:
diff changeset
   185
dca86448d736 Add some doc.
Pierre-Yves David <pierre-yves.david@logilab.fr>
parents:
diff changeset
   186
* exchange the obsolete information
dca86448d736 Add some doc.
Pierre-Yves David <pierre-yves.david@logilab.fr>
parents:
diff changeset
   187
35
0f98f87881bd Spelling fixes
Julien Cristau <julien.cristau@logilab.fr>
parents: 34
diff changeset
   188
* refuse to obsolete published changesets
33
dca86448d736 Add some doc.
Pierre-Yves David <pierre-yves.david@logilab.fr>
parents:
diff changeset
   189
dca86448d736 Add some doc.
Pierre-Yves David <pierre-yves.david@logilab.fr>
parents:
diff changeset
   190
* handle split
dca86448d736 Add some doc.
Pierre-Yves David <pierre-yves.david@logilab.fr>
parents:
diff changeset
   191
dca86448d736 Add some doc.
Pierre-Yves David <pierre-yves.david@logilab.fr>
parents:
diff changeset
   192
* handle conflict
dca86448d736 Add some doc.
Pierre-Yves David <pierre-yves.david@logilab.fr>
parents:
diff changeset
   193
dca86448d736 Add some doc.
Pierre-Yves David <pierre-yves.david@logilab.fr>
parents:
diff changeset
   194
* handle out of sync
dca86448d736 Add some doc.
Pierre-Yves David <pierre-yves.david@logilab.fr>
parents:
diff changeset
   195
dca86448d736 Add some doc.
Pierre-Yves David <pierre-yves.david@logilab.fr>
parents:
diff changeset
   196
rewrite Extension
dca86448d736 Add some doc.
Pierre-Yves David <pierre-yves.david@logilab.fr>
parents:
diff changeset
   197
======================
dca86448d736 Add some doc.
Pierre-Yves David <pierre-yves.david@logilab.fr>
parents:
diff changeset
   198
dca86448d736 Add some doc.
Pierre-Yves David <pierre-yves.david@logilab.fr>
parents:
diff changeset
   199
state: To be written
dca86448d736 Add some doc.
Pierre-Yves David <pierre-yves.david@logilab.fr>
parents:
diff changeset
   200