tests/test-exchange-B5.t
changeset 841 07891b3308a2
child 942 010c7e4aa820
equal deleted inserted replaced
840:6689b9d351f7 841:07891b3308a2
       
     1 
       
     2 
       
     3 
       
     4 Initial setup
       
     5 
       
     6   $ . $TESTDIR/_exc-util.sh
       
     7 
       
     8 
       
     9 === B.5 Push of a children of changeset which successors is pruned ===
       
    10 
       
    11 .. This case Mirror A.4, with pruned changeset successors.
       
    12 ..
       
    13 .. {{{
       
    14 ..   B ◔
       
    15 ..     |
       
    16 ..   A⇠ø⇠⊗ A'
       
    17 ..     |/
       
    18 ..     ● O
       
    19 .. }}}
       
    20 ..
       
    21 .. Marker exist from:
       
    22 ..
       
    23 ..  * `Aø⇠○ A'`
       
    24 ..  * chain from A
       
    25 ..  * `A'`
       
    26 ..
       
    27 .. Command run:
       
    28 ..
       
    29 ..  * hg push -r B
       
    30 ..
       
    31 .. Expected exchange:
       
    32 ..
       
    33 ..  * `Aø⇠○ A'`
       
    34 ..  * chain from A
       
    35 ..  * `A'`
       
    36 ..
       
    37 .. Extra Note:
       
    38 ..
       
    39 ..   I'm not totally happy about this case and I believe some more complicated
       
    40 ..   graph can result in behavior wuite confusing for the user (if some tool create
       
    41 ..   prune maker in a the middle of a valid chain)
       
    42 
       
    43   $ setuprepos B.5
       
    44   creating test repo for test case B.5
       
    45   - pulldest
       
    46   - main
       
    47   - pushdest
       
    48   cd into `main` and proceed with env setup
       
    49   $ cd main
       
    50   $ mkcommit A0
       
    51   $ mkcommit B
       
    52   $ hg up --quiet 0
       
    53   $ mkcommit A1
       
    54   created new head
       
    55   $ hg debugobsolete --hidden `getid 'desc(A0)'` `getid 'desc(A1)'`
       
    56   $ hg prune -qd '0 0' .
       
    57   $ hg log -G --hidden
       
    58   x  e5ea8f9c7314 (draft): A1
       
    59   |
       
    60   | o  06055a7959d4 (draft): B
       
    61   | |
       
    62   | x  28b51eb45704 (draft): A0
       
    63   |/
       
    64   @  a9bdc8b26820 (public): O
       
    65   
       
    66   $ hg debugobsolete
       
    67   28b51eb45704506b5c603decd6bf7ac5e0f6a52f e5ea8f9c73143125d36658e90ef70c6d2027a5b7 0 {'date': '', 'user': 'test'}
       
    68   e5ea8f9c73143125d36658e90ef70c6d2027a5b7 0 {'date': '0 0', 'p1': 'a9bdc8b26820b1b87d585b82eb0ceb4a2ecdbc04', 'user': 'test'}
       
    69   $ cd ..
       
    70   $ cd ..
       
    71 
       
    72   $ cp -r B.5 B.5.a
       
    73   $ cp -r B.5 B.5.b
       
    74 
       
    75 Actual Test (explicite push version)
       
    76 -------------------------------------
       
    77 
       
    78   $ dotest B.5.a B -f
       
    79   ## Running testcase B.5.a
       
    80   # testing echange of "B" (06055a7959d4)
       
    81   ## initial state
       
    82   # obstore: main
       
    83   28b51eb45704506b5c603decd6bf7ac5e0f6a52f e5ea8f9c73143125d36658e90ef70c6d2027a5b7 0 {'date': '', 'user': 'test'}
       
    84   e5ea8f9c73143125d36658e90ef70c6d2027a5b7 0 {'date': '0 0', 'p1': 'a9bdc8b26820b1b87d585b82eb0ceb4a2ecdbc04', 'user': 'test'}
       
    85   # obstore: pushdest
       
    86   # obstore: pulldest
       
    87   ## pushing "B" from main to pushdest
       
    88   pushing to pushdest
       
    89   searching for changes
       
    90   adding changesets
       
    91   adding manifests
       
    92   adding file changes
       
    93   added 2 changesets with 2 changes to 2 files
       
    94   OBSEXC: computing relevant nodes
       
    95   OBSEXC: computing markers relevant to 3 nodes
       
    96   OBSEXC: encoding 2 markers
       
    97   OBSEXC: sending 1 pushkey payload (188 bytes)
       
    98   OBSEXC: DONE
       
    99   ## post push state
       
   100   # obstore: main
       
   101   28b51eb45704506b5c603decd6bf7ac5e0f6a52f e5ea8f9c73143125d36658e90ef70c6d2027a5b7 0 {'date': '', 'user': 'test'}
       
   102   e5ea8f9c73143125d36658e90ef70c6d2027a5b7 0 {'date': '0 0', 'p1': 'a9bdc8b26820b1b87d585b82eb0ceb4a2ecdbc04', 'user': 'test'}
       
   103   # obstore: pushdest
       
   104   28b51eb45704506b5c603decd6bf7ac5e0f6a52f e5ea8f9c73143125d36658e90ef70c6d2027a5b7 0 {'date': '', 'user': 'test'}
       
   105   e5ea8f9c73143125d36658e90ef70c6d2027a5b7 0 {'date': '0 0', 'p1': 'a9bdc8b26820b1b87d585b82eb0ceb4a2ecdbc04', 'user': 'test'}
       
   106   # obstore: pulldest
       
   107   ## pulling "06055a7959d4" from main into pulldest
       
   108   pulling from main
       
   109   searching for changes
       
   110   adding changesets
       
   111   adding manifests
       
   112   adding file changes
       
   113   added 2 changesets with 2 changes to 2 files
       
   114   OBSEXC: pull obsolescence markers
       
   115   OBSEXC: merging obsolescence markers (150 bytes)
       
   116   OBSEXC: 2 markers added
       
   117   OBSEXC: DONE
       
   118   (run 'hg update' to get a working copy)
       
   119   1 new unstable changesets
       
   120   ## post pull state
       
   121   # obstore: main
       
   122   28b51eb45704506b5c603decd6bf7ac5e0f6a52f e5ea8f9c73143125d36658e90ef70c6d2027a5b7 0 {'date': '', 'user': 'test'}
       
   123   e5ea8f9c73143125d36658e90ef70c6d2027a5b7 0 {'date': '0 0', 'p1': 'a9bdc8b26820b1b87d585b82eb0ceb4a2ecdbc04', 'user': 'test'}
       
   124   # obstore: pushdest
       
   125   28b51eb45704506b5c603decd6bf7ac5e0f6a52f e5ea8f9c73143125d36658e90ef70c6d2027a5b7 0 {'date': '', 'user': 'test'}
       
   126   e5ea8f9c73143125d36658e90ef70c6d2027a5b7 0 {'date': '0 0', 'p1': 'a9bdc8b26820b1b87d585b82eb0ceb4a2ecdbc04', 'user': 'test'}
       
   127   # obstore: pulldest
       
   128   28b51eb45704506b5c603decd6bf7ac5e0f6a52f e5ea8f9c73143125d36658e90ef70c6d2027a5b7 0 {'date': '', 'user': 'test'}
       
   129   e5ea8f9c73143125d36658e90ef70c6d2027a5b7 0 {'date': '0 0', 'p1': 'a9bdc8b26820b1b87d585b82eb0ceb4a2ecdbc04', 'user': 'test'}
       
   130 
       
   131 Actual Test (bare push version)
       
   132 -------------------------------------
       
   133 
       
   134   $ dotest B.5.b B -f
       
   135   ## Running testcase B.5.b
       
   136   # testing echange of "B" (06055a7959d4)
       
   137   ## initial state
       
   138   # obstore: main
       
   139   28b51eb45704506b5c603decd6bf7ac5e0f6a52f e5ea8f9c73143125d36658e90ef70c6d2027a5b7 0 {'date': '', 'user': 'test'}
       
   140   e5ea8f9c73143125d36658e90ef70c6d2027a5b7 0 {'date': '0 0', 'p1': 'a9bdc8b26820b1b87d585b82eb0ceb4a2ecdbc04', 'user': 'test'}
       
   141   # obstore: pushdest
       
   142   # obstore: pulldest
       
   143   ## pushing "B" from main to pushdest
       
   144   pushing to pushdest
       
   145   searching for changes
       
   146   adding changesets
       
   147   adding manifests
       
   148   adding file changes
       
   149   added 2 changesets with 2 changes to 2 files
       
   150   OBSEXC: computing relevant nodes
       
   151   OBSEXC: computing markers relevant to 3 nodes
       
   152   OBSEXC: encoding 2 markers
       
   153   OBSEXC: sending 1 pushkey payload (188 bytes)
       
   154   OBSEXC: DONE
       
   155   ## post push state
       
   156   # obstore: main
       
   157   28b51eb45704506b5c603decd6bf7ac5e0f6a52f e5ea8f9c73143125d36658e90ef70c6d2027a5b7 0 {'date': '', 'user': 'test'}
       
   158   e5ea8f9c73143125d36658e90ef70c6d2027a5b7 0 {'date': '0 0', 'p1': 'a9bdc8b26820b1b87d585b82eb0ceb4a2ecdbc04', 'user': 'test'}
       
   159   # obstore: pushdest
       
   160   28b51eb45704506b5c603decd6bf7ac5e0f6a52f e5ea8f9c73143125d36658e90ef70c6d2027a5b7 0 {'date': '', 'user': 'test'}
       
   161   e5ea8f9c73143125d36658e90ef70c6d2027a5b7 0 {'date': '0 0', 'p1': 'a9bdc8b26820b1b87d585b82eb0ceb4a2ecdbc04', 'user': 'test'}
       
   162   # obstore: pulldest
       
   163   ## pulling "06055a7959d4" from main into pulldest
       
   164   pulling from main
       
   165   searching for changes
       
   166   adding changesets
       
   167   adding manifests
       
   168   adding file changes
       
   169   added 2 changesets with 2 changes to 2 files
       
   170   OBSEXC: pull obsolescence markers
       
   171   OBSEXC: merging obsolescence markers (150 bytes)
       
   172   OBSEXC: 2 markers added
       
   173   OBSEXC: DONE
       
   174   (run 'hg update' to get a working copy)
       
   175   1 new unstable changesets
       
   176   ## post pull state
       
   177   # obstore: main
       
   178   28b51eb45704506b5c603decd6bf7ac5e0f6a52f e5ea8f9c73143125d36658e90ef70c6d2027a5b7 0 {'date': '', 'user': 'test'}
       
   179   e5ea8f9c73143125d36658e90ef70c6d2027a5b7 0 {'date': '0 0', 'p1': 'a9bdc8b26820b1b87d585b82eb0ceb4a2ecdbc04', 'user': 'test'}
       
   180   # obstore: pushdest
       
   181   28b51eb45704506b5c603decd6bf7ac5e0f6a52f e5ea8f9c73143125d36658e90ef70c6d2027a5b7 0 {'date': '', 'user': 'test'}
       
   182   e5ea8f9c73143125d36658e90ef70c6d2027a5b7 0 {'date': '0 0', 'p1': 'a9bdc8b26820b1b87d585b82eb0ceb4a2ecdbc04', 'user': 'test'}
       
   183   # obstore: pulldest
       
   184   28b51eb45704506b5c603decd6bf7ac5e0f6a52f e5ea8f9c73143125d36658e90ef70c6d2027a5b7 0 {'date': '', 'user': 'test'}
       
   185   e5ea8f9c73143125d36658e90ef70c6d2027a5b7 0 {'date': '0 0', 'p1': 'a9bdc8b26820b1b87d585b82eb0ceb4a2ecdbc04', 'user': 'test'}