mercurial/obsolete.py
changeset 17775 13744acc4ad7
parent 17774 0496d4f73cf4
child 17776 072812e9f570
equal deleted inserted replaced
17774:0496d4f73cf4 17775:13744acc4ad7
    18 building new tools to reconciliate conflicting rewriting actions. To
    18 building new tools to reconciliate conflicting rewriting actions. To
    19 facilitate conflicts resolution, markers include various annotations
    19 facilitate conflicts resolution, markers include various annotations
    20 besides old and news changeset identifiers, such as creation date or
    20 besides old and news changeset identifiers, such as creation date or
    21 author name.
    21 author name.
    22 
    22 
       
    23 Examples:
       
    24 
       
    25 - When changeset A is replacement by a changeset A', one marker is stored:
       
    26 
       
    27     (A, (A'))
       
    28 
       
    29 - When changesets A and B are folded into a new changeset C two markers are
       
    30   stored:
       
    31 
       
    32     (A, (C,)) and (B, (C,))
       
    33 
       
    34 - When changeset A is simply "pruned" from the graph, a marker in create:
       
    35 
       
    36     (A, ())
       
    37 
       
    38 - When changeset A is split into B and C, a single marker are used:
       
    39 
       
    40     (A, (C, C))
       
    41 
       
    42   We use a single marker to distinct the "split" case from the "divergence"
       
    43   case. If two independants operation rewrite the same changeset A in to A' and
       
    44   A'' when have an error case: divergent rewriting. We can detect it because
       
    45   two markers will be created independently:
       
    46 
       
    47   (A, (B,)) and (A, (C,))
    23 
    48 
    24 Format
    49 Format
    25 ------
    50 ------
    26 
    51 
    27 Markers are stored in an append-only file stored in
    52 Markers are stored in an append-only file stored in