tests/test-exchange-A2.t
author Pierre-Yves David <pierre-yves.david@ens-lyon.org>
Wed, 29 Mar 2017 15:48:27 +0200
changeset 2249 0ecb9fba6364
parent 2230 a202f3af890c
permissions -rw-r--r--
checkheads: handle partial obsolescence We now properly detects situations were only parts of the remote branch is obsoleted. To do so, we process children in the branch recursively to see if they will be obsolete. The current code has some trouble when the remote branch in unknown locally, or when the prune happened on a successors that is not relevant to the push. These case will be handled later. The processing code is becoming more and more complex, a lighter approach would be to check for the obsolescence markers that are relevant to the pushed set, but I prefer to stick with the current approach until more test cases are written.
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
828
c362513b3c7e exchange: add test case for A.2
Pierre-Yves David <pierre-yves.david@fb.com>
parents:
diff changeset
     1
c362513b3c7e exchange: add test case for A.2
Pierre-Yves David <pierre-yves.david@fb.com>
parents:
diff changeset
     2
c362513b3c7e exchange: add test case for A.2
Pierre-Yves David <pierre-yves.david@fb.com>
parents:
diff changeset
     3
Initial setup
c362513b3c7e exchange: add test case for A.2
Pierre-Yves David <pierre-yves.david@fb.com>
parents:
diff changeset
     4
2118
d0bc98161794 tests: move exchange utility in testlib
Pierre-Yves David <pierre-yves.david@ens-lyon.org>
parents: 2083
diff changeset
     5
  $ . $TESTDIR/testlib/exchange-util.sh
828
c362513b3c7e exchange: add test case for A.2
Pierre-Yves David <pierre-yves.david@fb.com>
parents:
diff changeset
     6
c362513b3c7e exchange: add test case for A.2
Pierre-Yves David <pierre-yves.david@fb.com>
parents:
diff changeset
     7
=== A.2 Two heads ===
c362513b3c7e exchange: add test case for A.2
Pierre-Yves David <pierre-yves.david@fb.com>
parents:
diff changeset
     8
c362513b3c7e exchange: add test case for A.2
Pierre-Yves David <pierre-yves.david@fb.com>
parents:
diff changeset
     9
.. {{{
c362513b3c7e exchange: add test case for A.2
Pierre-Yves David <pierre-yves.david@fb.com>
parents:
diff changeset
    10
..     ⇠○ B
c362513b3c7e exchange: add test case for A.2
Pierre-Yves David <pierre-yves.david@fb.com>
parents:
diff changeset
    11
..   ⇠◔ | A
c362513b3c7e exchange: add test case for A.2
Pierre-Yves David <pierre-yves.david@fb.com>
parents:
diff changeset
    12
..    |/
c362513b3c7e exchange: add test case for A.2
Pierre-Yves David <pierre-yves.david@fb.com>
parents:
diff changeset
    13
..     O
c362513b3c7e exchange: add test case for A.2
Pierre-Yves David <pierre-yves.david@fb.com>
parents:
diff changeset
    14
.. }}}
c362513b3c7e exchange: add test case for A.2
Pierre-Yves David <pierre-yves.david@fb.com>
parents:
diff changeset
    15
..
c362513b3c7e exchange: add test case for A.2
Pierre-Yves David <pierre-yves.david@fb.com>
parents:
diff changeset
    16
.. Marker exist from:
c362513b3c7e exchange: add test case for A.2
Pierre-Yves David <pierre-yves.david@fb.com>
parents:
diff changeset
    17
..
c362513b3c7e exchange: add test case for A.2
Pierre-Yves David <pierre-yves.david@fb.com>
parents:
diff changeset
    18
..  * A
c362513b3c7e exchange: add test case for A.2
Pierre-Yves David <pierre-yves.david@fb.com>
parents:
diff changeset
    19
..  * B
c362513b3c7e exchange: add test case for A.2
Pierre-Yves David <pierre-yves.david@fb.com>
parents:
diff changeset
    20
..
c362513b3c7e exchange: add test case for A.2
Pierre-Yves David <pierre-yves.david@fb.com>
parents:
diff changeset
    21
..
c362513b3c7e exchange: add test case for A.2
Pierre-Yves David <pierre-yves.david@fb.com>
parents:
diff changeset
    22
.. Command run:
c362513b3c7e exchange: add test case for A.2
Pierre-Yves David <pierre-yves.david@fb.com>
parents:
diff changeset
    23
..
c362513b3c7e exchange: add test case for A.2
Pierre-Yves David <pierre-yves.david@fb.com>
parents:
diff changeset
    24
..  * hg push -r A
c362513b3c7e exchange: add test case for A.2
Pierre-Yves David <pierre-yves.david@fb.com>
parents:
diff changeset
    25
..
c362513b3c7e exchange: add test case for A.2
Pierre-Yves David <pierre-yves.david@fb.com>
parents:
diff changeset
    26
.. Expected exchange:
c362513b3c7e exchange: add test case for A.2
Pierre-Yves David <pierre-yves.david@fb.com>
parents:
diff changeset
    27
..
c362513b3c7e exchange: add test case for A.2
Pierre-Yves David <pierre-yves.david@fb.com>
parents:
diff changeset
    28
..  * chain from A
c362513b3c7e exchange: add test case for A.2
Pierre-Yves David <pierre-yves.david@fb.com>
parents:
diff changeset
    29
..
c362513b3c7e exchange: add test case for A.2
Pierre-Yves David <pierre-yves.david@fb.com>
parents:
diff changeset
    30
.. Expected Exclude:
c362513b3c7e exchange: add test case for A.2
Pierre-Yves David <pierre-yves.david@fb.com>
parents:
diff changeset
    31
..
c362513b3c7e exchange: add test case for A.2
Pierre-Yves David <pierre-yves.david@fb.com>
parents:
diff changeset
    32
..  * chain from B
c362513b3c7e exchange: add test case for A.2
Pierre-Yves David <pierre-yves.david@fb.com>
parents:
diff changeset
    33
c362513b3c7e exchange: add test case for A.2
Pierre-Yves David <pierre-yves.david@fb.com>
parents:
diff changeset
    34
initial
c362513b3c7e exchange: add test case for A.2
Pierre-Yves David <pierre-yves.david@fb.com>
parents:
diff changeset
    35
830
f3b3a09ba312 exchange: have a function doing all the common initial setup
Pierre-Yves David <pierre-yves.david@fb.com>
parents: 829
diff changeset
    36
  $ setuprepos A.2
f3b3a09ba312 exchange: have a function doing all the common initial setup
Pierre-Yves David <pierre-yves.david@fb.com>
parents: 829
diff changeset
    37
  creating test repo for test case A.2
f3b3a09ba312 exchange: have a function doing all the common initial setup
Pierre-Yves David <pierre-yves.david@fb.com>
parents: 829
diff changeset
    38
  - pulldest
f3b3a09ba312 exchange: have a function doing all the common initial setup
Pierre-Yves David <pierre-yves.david@fb.com>
parents: 829
diff changeset
    39
  - main
f3b3a09ba312 exchange: have a function doing all the common initial setup
Pierre-Yves David <pierre-yves.david@fb.com>
parents: 829
diff changeset
    40
  - pushdest
f3b3a09ba312 exchange: have a function doing all the common initial setup
Pierre-Yves David <pierre-yves.david@fb.com>
parents: 829
diff changeset
    41
  cd into `main` and proceed with env setup
828
c362513b3c7e exchange: add test case for A.2
Pierre-Yves David <pierre-yves.david@fb.com>
parents:
diff changeset
    42
  $ cd main
c362513b3c7e exchange: add test case for A.2
Pierre-Yves David <pierre-yves.david@fb.com>
parents:
diff changeset
    43
  $ mkcommit A
c362513b3c7e exchange: add test case for A.2
Pierre-Yves David <pierre-yves.david@fb.com>
parents:
diff changeset
    44
  $ hg debugobsolete aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa `getid 'desc(A)'`
c362513b3c7e exchange: add test case for A.2
Pierre-Yves David <pierre-yves.david@fb.com>
parents:
diff changeset
    45
  $ hg up .^
c362513b3c7e exchange: add test case for A.2
Pierre-Yves David <pierre-yves.david@fb.com>
parents:
diff changeset
    46
  0 files updated, 0 files merged, 1 files removed, 0 files unresolved
c362513b3c7e exchange: add test case for A.2
Pierre-Yves David <pierre-yves.david@fb.com>
parents:
diff changeset
    47
  $ mkcommit B
c362513b3c7e exchange: add test case for A.2
Pierre-Yves David <pierre-yves.david@fb.com>
parents:
diff changeset
    48
  created new head
c362513b3c7e exchange: add test case for A.2
Pierre-Yves David <pierre-yves.david@fb.com>
parents:
diff changeset
    49
  $ hg debugobsolete bbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbb `getid 'desc(B)'`
c362513b3c7e exchange: add test case for A.2
Pierre-Yves David <pierre-yves.david@fb.com>
parents:
diff changeset
    50
  $ hg log -G
c362513b3c7e exchange: add test case for A.2
Pierre-Yves David <pierre-yves.david@fb.com>
parents:
diff changeset
    51
  @  35b183996678 (draft): B
c362513b3c7e exchange: add test case for A.2
Pierre-Yves David <pierre-yves.david@fb.com>
parents:
diff changeset
    52
  |
c362513b3c7e exchange: add test case for A.2
Pierre-Yves David <pierre-yves.david@fb.com>
parents:
diff changeset
    53
  | o  f5bc6836db60 (draft): A
c362513b3c7e exchange: add test case for A.2
Pierre-Yves David <pierre-yves.david@fb.com>
parents:
diff changeset
    54
  |/
c362513b3c7e exchange: add test case for A.2
Pierre-Yves David <pierre-yves.david@fb.com>
parents:
diff changeset
    55
  o  a9bdc8b26820 (public): O
c362513b3c7e exchange: add test case for A.2
Pierre-Yves David <pierre-yves.david@fb.com>
parents:
diff changeset
    56
  
c362513b3c7e exchange: add test case for A.2
Pierre-Yves David <pierre-yves.david@fb.com>
parents:
diff changeset
    57
  $ hg debugobsolete
1065
f355bbc124fc test: update test to new date formatting in debuobsolete output
Pierre-Yves David <pierre-yves.david@fb.com>
parents: 1060
diff changeset
    58
  aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa f5bc6836db60e308a17ba08bf050154ba9c4fad7 0 (Thu Jan 01 00:00:00 1970 +0000) {'user': 'test'}
f355bbc124fc test: update test to new date formatting in debuobsolete output
Pierre-Yves David <pierre-yves.david@fb.com>
parents: 1060
diff changeset
    59
  bbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbb 35b1839966785d5703a01607229eea932db42f87 0 (Thu Jan 01 00:00:00 1970 +0000) {'user': 'test'}
2083
778afb036245 discovery: introduce a official 'obshash associated to a range
Pierre-Yves David <pierre-yves.david@ens-lyon.org>
parents: 1093
diff changeset
    60
  $ hg debugobsrelsethashtree
778afb036245 discovery: introduce a official 'obshash associated to a range
Pierre-Yves David <pierre-yves.david@ens-lyon.org>
parents: 1093
diff changeset
    61
  a9bdc8b26820b1b87d585b82eb0ceb4a2ecdbc04 0000000000000000000000000000000000000000
778afb036245 discovery: introduce a official 'obshash associated to a range
Pierre-Yves David <pierre-yves.david@ens-lyon.org>
parents: 1093
diff changeset
    62
  f5bc6836db60e308a17ba08bf050154ba9c4fad7 50656e04a95ecdfed94659dd61f663b2caa55e98
778afb036245 discovery: introduce a official 'obshash associated to a range
Pierre-Yves David <pierre-yves.david@ens-lyon.org>
parents: 1093
diff changeset
    63
  35b1839966785d5703a01607229eea932db42f87 b9c8f20eef8938ebab939fe6a592587feacf3245
2230
a202f3af890c debugobshashrange: add a --subranges option
Pierre-Yves David <pierre-yves.david@ens-lyon.org>
parents: 2229
diff changeset
    64
  $ hg debugobshashrange --subranges --rev 'head()'
2228
3b18440cca74 debugstablerange: improve output spacing
Pierre-Yves David <pierre-yves.david@ens-lyon.org>
parents: 2118
diff changeset
    65
           rev         node        index         size        depth      obshash
3b18440cca74 debugstablerange: improve output spacing
Pierre-Yves David <pierre-yves.david@ens-lyon.org>
parents: 2118
diff changeset
    66
             2 35b183996678            0            2            2 b9c8f20eef89
3b18440cca74 debugstablerange: improve output spacing
Pierre-Yves David <pierre-yves.david@ens-lyon.org>
parents: 2118
diff changeset
    67
             1 f5bc6836db60            0            2            2 50656e04a95e
3b18440cca74 debugstablerange: improve output spacing
Pierre-Yves David <pierre-yves.david@ens-lyon.org>
parents: 2118
diff changeset
    68
             2 35b183996678            1            1            2 b9c8f20eef89
3b18440cca74 debugstablerange: improve output spacing
Pierre-Yves David <pierre-yves.david@ens-lyon.org>
parents: 2118
diff changeset
    69
             0 a9bdc8b26820            0            1            1 000000000000
3b18440cca74 debugstablerange: improve output spacing
Pierre-Yves David <pierre-yves.david@ens-lyon.org>
parents: 2118
diff changeset
    70
             1 f5bc6836db60            1            1            2 50656e04a95e
828
c362513b3c7e exchange: add test case for A.2
Pierre-Yves David <pierre-yves.david@fb.com>
parents:
diff changeset
    71
  $ cd ..
c362513b3c7e exchange: add test case for A.2
Pierre-Yves David <pierre-yves.david@fb.com>
parents:
diff changeset
    72
  $ cd ..
c362513b3c7e exchange: add test case for A.2
Pierre-Yves David <pierre-yves.david@fb.com>
parents:
diff changeset
    73
c362513b3c7e exchange: add test case for A.2
Pierre-Yves David <pierre-yves.david@fb.com>
parents:
diff changeset
    74
c362513b3c7e exchange: add test case for A.2
Pierre-Yves David <pierre-yves.david@fb.com>
parents:
diff changeset
    75
Actual Test
c362513b3c7e exchange: add test case for A.2
Pierre-Yves David <pierre-yves.david@fb.com>
parents:
diff changeset
    76
---------------
c362513b3c7e exchange: add test case for A.2
Pierre-Yves David <pierre-yves.david@fb.com>
parents:
diff changeset
    77
831
a6af6919888d exchange: automate the testing process too
Pierre-Yves David <pierre-yves.david@fb.com>
parents: 830
diff changeset
    78
  $ dotest A.2 A
a6af6919888d exchange: automate the testing process too
Pierre-Yves David <pierre-yves.david@fb.com>
parents: 830
diff changeset
    79
  ## Running testcase A.2
a6af6919888d exchange: automate the testing process too
Pierre-Yves David <pierre-yves.david@fb.com>
parents: 830
diff changeset
    80
  # testing echange of "A" (f5bc6836db60)
a6af6919888d exchange: automate the testing process too
Pierre-Yves David <pierre-yves.david@fb.com>
parents: 830
diff changeset
    81
  ## initial state
a6af6919888d exchange: automate the testing process too
Pierre-Yves David <pierre-yves.david@fb.com>
parents: 830
diff changeset
    82
  # obstore: main
1065
f355bbc124fc test: update test to new date formatting in debuobsolete output
Pierre-Yves David <pierre-yves.david@fb.com>
parents: 1060
diff changeset
    83
  aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa f5bc6836db60e308a17ba08bf050154ba9c4fad7 0 (Thu Jan 01 00:00:00 1970 +0000) {'user': 'test'}
f355bbc124fc test: update test to new date formatting in debuobsolete output
Pierre-Yves David <pierre-yves.david@fb.com>
parents: 1060
diff changeset
    84
  bbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbb 35b1839966785d5703a01607229eea932db42f87 0 (Thu Jan 01 00:00:00 1970 +0000) {'user': 'test'}
831
a6af6919888d exchange: automate the testing process too
Pierre-Yves David <pierre-yves.david@fb.com>
parents: 830
diff changeset
    85
  # obstore: pushdest
a6af6919888d exchange: automate the testing process too
Pierre-Yves David <pierre-yves.david@fb.com>
parents: 830
diff changeset
    86
  # obstore: pulldest
a6af6919888d exchange: automate the testing process too
Pierre-Yves David <pierre-yves.david@fb.com>
parents: 830
diff changeset
    87
  ## pushing "A" from main to pushdest
828
c362513b3c7e exchange: add test case for A.2
Pierre-Yves David <pierre-yves.david@fb.com>
parents:
diff changeset
    88
  pushing to pushdest
c362513b3c7e exchange: add test case for A.2
Pierre-Yves David <pierre-yves.david@fb.com>
parents:
diff changeset
    89
  searching for changes
1089
cdd22a5e5ef1 enable bundle2
Pierre-Yves David <pierre-yves.david@fb.com>
parents: 1088
diff changeset
    90
  remote: adding changesets
cdd22a5e5ef1 enable bundle2
Pierre-Yves David <pierre-yves.david@fb.com>
parents: 1088
diff changeset
    91
  remote: adding manifests
cdd22a5e5ef1 enable bundle2
Pierre-Yves David <pierre-yves.david@fb.com>
parents: 1088
diff changeset
    92
  remote: adding file changes
cdd22a5e5ef1 enable bundle2
Pierre-Yves David <pierre-yves.david@fb.com>
parents: 1088
diff changeset
    93
  remote: added 1 changesets with 1 changes to 1 files
1093
a49f2e7a2755 obsexch: respect todosteps when using the old push
Pierre-Yves David <pierre-yves.david@fb.com>
parents: 1089
diff changeset
    94
  remote: 1 new obsolescence markers
831
a6af6919888d exchange: automate the testing process too
Pierre-Yves David <pierre-yves.david@fb.com>
parents: 830
diff changeset
    95
  ## post push state
a6af6919888d exchange: automate the testing process too
Pierre-Yves David <pierre-yves.david@fb.com>
parents: 830
diff changeset
    96
  # obstore: main
1065
f355bbc124fc test: update test to new date formatting in debuobsolete output
Pierre-Yves David <pierre-yves.david@fb.com>
parents: 1060
diff changeset
    97
  aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa f5bc6836db60e308a17ba08bf050154ba9c4fad7 0 (Thu Jan 01 00:00:00 1970 +0000) {'user': 'test'}
f355bbc124fc test: update test to new date formatting in debuobsolete output
Pierre-Yves David <pierre-yves.david@fb.com>
parents: 1060
diff changeset
    98
  bbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbb 35b1839966785d5703a01607229eea932db42f87 0 (Thu Jan 01 00:00:00 1970 +0000) {'user': 'test'}
831
a6af6919888d exchange: automate the testing process too
Pierre-Yves David <pierre-yves.david@fb.com>
parents: 830
diff changeset
    99
  # obstore: pushdest
1065
f355bbc124fc test: update test to new date formatting in debuobsolete output
Pierre-Yves David <pierre-yves.david@fb.com>
parents: 1060
diff changeset
   100
  aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa f5bc6836db60e308a17ba08bf050154ba9c4fad7 0 (Thu Jan 01 00:00:00 1970 +0000) {'user': 'test'}
831
a6af6919888d exchange: automate the testing process too
Pierre-Yves David <pierre-yves.david@fb.com>
parents: 830
diff changeset
   101
  # obstore: pulldest
a6af6919888d exchange: automate the testing process too
Pierre-Yves David <pierre-yves.david@fb.com>
parents: 830
diff changeset
   102
  ## pulling "f5bc6836db60" from main into pulldest
828
c362513b3c7e exchange: add test case for A.2
Pierre-Yves David <pierre-yves.david@fb.com>
parents:
diff changeset
   103
  pulling from main
c362513b3c7e exchange: add test case for A.2
Pierre-Yves David <pierre-yves.david@fb.com>
parents:
diff changeset
   104
  searching for changes
c362513b3c7e exchange: add test case for A.2
Pierre-Yves David <pierre-yves.david@fb.com>
parents:
diff changeset
   105
  adding changesets
c362513b3c7e exchange: add test case for A.2
Pierre-Yves David <pierre-yves.david@fb.com>
parents:
diff changeset
   106
  adding manifests
c362513b3c7e exchange: add test case for A.2
Pierre-Yves David <pierre-yves.david@fb.com>
parents:
diff changeset
   107
  adding file changes
c362513b3c7e exchange: add test case for A.2
Pierre-Yves David <pierre-yves.david@fb.com>
parents:
diff changeset
   108
  added 1 changesets with 1 changes to 1 files
1093
a49f2e7a2755 obsexch: respect todosteps when using the old push
Pierre-Yves David <pierre-yves.david@fb.com>
parents: 1089
diff changeset
   109
  1 new obsolescence markers
828
c362513b3c7e exchange: add test case for A.2
Pierre-Yves David <pierre-yves.david@fb.com>
parents:
diff changeset
   110
  (run 'hg update' to get a working copy)
831
a6af6919888d exchange: automate the testing process too
Pierre-Yves David <pierre-yves.david@fb.com>
parents: 830
diff changeset
   111
  ## post pull state
a6af6919888d exchange: automate the testing process too
Pierre-Yves David <pierre-yves.david@fb.com>
parents: 830
diff changeset
   112
  # obstore: main
1065
f355bbc124fc test: update test to new date formatting in debuobsolete output
Pierre-Yves David <pierre-yves.david@fb.com>
parents: 1060
diff changeset
   113
  aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa f5bc6836db60e308a17ba08bf050154ba9c4fad7 0 (Thu Jan 01 00:00:00 1970 +0000) {'user': 'test'}
f355bbc124fc test: update test to new date formatting in debuobsolete output
Pierre-Yves David <pierre-yves.david@fb.com>
parents: 1060
diff changeset
   114
  bbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbb 35b1839966785d5703a01607229eea932db42f87 0 (Thu Jan 01 00:00:00 1970 +0000) {'user': 'test'}
831
a6af6919888d exchange: automate the testing process too
Pierre-Yves David <pierre-yves.david@fb.com>
parents: 830
diff changeset
   115
  # obstore: pushdest
1065
f355bbc124fc test: update test to new date formatting in debuobsolete output
Pierre-Yves David <pierre-yves.david@fb.com>
parents: 1060
diff changeset
   116
  aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa f5bc6836db60e308a17ba08bf050154ba9c4fad7 0 (Thu Jan 01 00:00:00 1970 +0000) {'user': 'test'}
831
a6af6919888d exchange: automate the testing process too
Pierre-Yves David <pierre-yves.david@fb.com>
parents: 830
diff changeset
   117
  # obstore: pulldest
1065
f355bbc124fc test: update test to new date formatting in debuobsolete output
Pierre-Yves David <pierre-yves.david@fb.com>
parents: 1060
diff changeset
   118
  aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa f5bc6836db60e308a17ba08bf050154ba9c4fad7 0 (Thu Jan 01 00:00:00 1970 +0000) {'user': 'test'}
828
c362513b3c7e exchange: add test case for A.2
Pierre-Yves David <pierre-yves.david@fb.com>
parents:
diff changeset
   119
831
a6af6919888d exchange: automate the testing process too
Pierre-Yves David <pierre-yves.david@fb.com>
parents: 830
diff changeset
   120
828
c362513b3c7e exchange: add test case for A.2
Pierre-Yves David <pierre-yves.david@fb.com>
parents:
diff changeset
   121
  $ cd ..