tests/test-exchange-obsmarkers-case-D3.t
branchstable
changeset 2268 f2ebe960998b
parent 2266 fe4ca27ed700
child 2562 279ec10273b8
equal deleted inserted replaced
2267:150fee60887a 2268:f2ebe960998b
       
     1 ============================================
       
     2 Testing obsolescence markers push: Cases D.3
       
     3 ============================================
       
     4 
       
     5 Mercurial pushes obsolescences markers relevant to the "pushed-set", the set of
       
     6 all changesets that requested to be "in sync" after the push (even if they are
       
     7 already on both side).
       
     8 
       
     9 This test belongs to a series of tests checking such set is properly computed
       
    10 and applied. This does not tests "obsmarkers" discovery capabilities.
       
    11 
       
    12 Category D: Partial Information Case
       
    13 TestCase 3: missing prune target (prune not in "pushed set")
       
    14 
       
    15 D.3 missing prune target (prune not in "pushed set")
       
    16 ====================================================
       
    17 
       
    18 .. {{{
       
    19 ..  A ø⇠✕ A'
       
    20 ..     | |
       
    21 ..     | ○ B
       
    22 ..     |/
       
    23 ..     ● O
       
    24 .. }}}
       
    25 ..
       
    26 .. Marker exist from:
       
    27 ..
       
    28 ..  * `A ø⇠o A'`
       
    29 ..  * A' (prune)
       
    30 ..
       
    31 .. Command runs:
       
    32 ..
       
    33 ..  * hg push
       
    34 ..
       
    35 .. Expected exclude:
       
    36 ..
       
    37 ..  * `A ø⇠o A'`
       
    38 ..  * A' (prune)
       
    39 
       
    40 Setup
       
    41 -----
       
    42 
       
    43   $ . $TESTDIR/testlib/exchange-obsmarker-util.sh
       
    44 
       
    45 initial
       
    46 
       
    47   $ setuprepos D.3
       
    48   creating test repo for test case D.3
       
    49   - pulldest
       
    50   - main
       
    51   - pushdest
       
    52   cd into `main` and proceed with env setup
       
    53   $ cd main
       
    54   $ mkcommit A0
       
    55   $ hg up -q 0
       
    56   $ mkcommit B
       
    57   created new head
       
    58   $ mkcommit A1
       
    59   $ hg debugobsolete `getid 'desc(A0)'` `getid 'desc(A1)'`
       
    60   $ hg prune -d '0 0' .
       
    61   0 files updated, 0 files merged, 1 files removed, 0 files unresolved
       
    62   working directory now at 35b183996678
       
    63   1 changesets pruned
       
    64   $ hg strip --hidden -q 'desc(A1)'
       
    65   $ hg log -G --hidden
       
    66   @  35b183996678 (draft): B
       
    67   |
       
    68   | x  28b51eb45704 (draft): A0
       
    69   |/
       
    70   o  a9bdc8b26820 (public): O
       
    71   
       
    72   $ inspect_obsmarkers
       
    73   obsstore content
       
    74   ================
       
    75   28b51eb45704506b5c603decd6bf7ac5e0f6a52f 6aa67a7b4baa6fb41b06aed38d5b1201436546e2 0 (Thu Jan 01 00:00:00 1970 +0000) {'user': 'test'}
       
    76   6aa67a7b4baa6fb41b06aed38d5b1201436546e2 0 {35b1839966785d5703a01607229eea932db42f87} (Thu Jan 01 00:00:00 1970 +0000) {'user': 'test'}
       
    77   obshashtree
       
    78   ===========
       
    79   a9bdc8b26820b1b87d585b82eb0ceb4a2ecdbc04 0000000000000000000000000000000000000000
       
    80   28b51eb45704506b5c603decd6bf7ac5e0f6a52f 0000000000000000000000000000000000000000
       
    81   35b1839966785d5703a01607229eea932db42f87 65a9f21dff0702355e973a8f31d3b3b7e59376fb
       
    82   obshashrange
       
    83   ============
       
    84            rev         node        index         size        depth      obshash
       
    85              2 35b183996678            0            2            2 65a9f21dff07
       
    86              2 35b183996678            1            1            2 65a9f21dff07
       
    87              0 a9bdc8b26820            0            1            1 000000000000
       
    88   $ cd ..
       
    89   $ cd ..
       
    90 
       
    91 Actual Test
       
    92 -----------
       
    93 
       
    94   $ dotest D.3 O
       
    95   ## Running testcase D.3
       
    96   # testing echange of "O" (a9bdc8b26820)
       
    97   ## initial state
       
    98   # obstore: main
       
    99   28b51eb45704506b5c603decd6bf7ac5e0f6a52f 6aa67a7b4baa6fb41b06aed38d5b1201436546e2 0 (Thu Jan 01 00:00:00 1970 +0000) {'user': 'test'}
       
   100   6aa67a7b4baa6fb41b06aed38d5b1201436546e2 0 {35b1839966785d5703a01607229eea932db42f87} (Thu Jan 01 00:00:00 1970 +0000) {'user': 'test'}
       
   101   # obstore: pushdest
       
   102   # obstore: pulldest
       
   103   ## pushing "O" from main to pushdest
       
   104   pushing to pushdest
       
   105   searching for changes
       
   106   no changes found
       
   107   ## post push state
       
   108   # obstore: main
       
   109   28b51eb45704506b5c603decd6bf7ac5e0f6a52f 6aa67a7b4baa6fb41b06aed38d5b1201436546e2 0 (Thu Jan 01 00:00:00 1970 +0000) {'user': 'test'}
       
   110   6aa67a7b4baa6fb41b06aed38d5b1201436546e2 0 {35b1839966785d5703a01607229eea932db42f87} (Thu Jan 01 00:00:00 1970 +0000) {'user': 'test'}
       
   111   # obstore: pushdest
       
   112   # obstore: pulldest
       
   113   ## pulling "a9bdc8b26820" from main into pulldest
       
   114   pulling from main
       
   115   no changes found
       
   116   ## post pull state
       
   117   # obstore: main
       
   118   28b51eb45704506b5c603decd6bf7ac5e0f6a52f 6aa67a7b4baa6fb41b06aed38d5b1201436546e2 0 (Thu Jan 01 00:00:00 1970 +0000) {'user': 'test'}
       
   119   6aa67a7b4baa6fb41b06aed38d5b1201436546e2 0 {35b1839966785d5703a01607229eea932db42f87} (Thu Jan 01 00:00:00 1970 +0000) {'user': 'test'}
       
   120   # obstore: pushdest
       
   121   # obstore: pulldest
       
   122