tests/test-exchange-A2.t
author Matt Harbison <matt_harbison@yahoo.com>
Sat, 09 Aug 2014 19:12:16 -0400
branchstable
changeset 1106 6b0cf1b73693
parent 1065 f355bbc124fc
child 1078 5717d023da63
permissions -rw-r--r--
evolve: replace each obsolete sha1 in the description with its latest successor Obsolete csets are hidden by default and don't get pushed to the parent repo. In order to avoid broken references in commit messages, it makes sense to evolve those references to the latest and greatest successor, as each cset containing them is evolved. Of course, stale references can still occur if a commit in branch 'A' references something in branch 'B', and that something in 'B' is evolved but 'A' isn't subsequently evolved. This alleviates the user that is evolving a series of commits from having to 1) recognize that there is a hash that needs updating in any one of the series 2) look up the latest successor manually 3) hg amend -e The regular expression for matching and the logic for replacing are borrowed from the convert extension [1]. It might be nice for the output to state the reason that the reference couldn't be updated (it was pruned, split or diverged), but that may be excessive for something only displayed in verbose mode. (Maybe it should be a ui.status() instead?) [1] http://selenic.com/hg/rev/45562379ce4e
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
829
0943f327e2fb exchance: add a common setup script for all test
Pierre-Yves David <pierre-yves.david@fb.com>
parents: 828
diff changeset
     5
  $ . $TESTDIR/_exc-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'}
828
c362513b3c7e exchange: add test case for A.2
Pierre-Yves David <pierre-yves.david@fb.com>
parents:
diff changeset
    60
  $ cd ..
c362513b3c7e exchange: add test case for A.2
Pierre-Yves David <pierre-yves.david@fb.com>
parents:
diff changeset
    61
  $ cd ..
c362513b3c7e exchange: add test case for A.2
Pierre-Yves David <pierre-yves.david@fb.com>
parents:
diff changeset
    62
c362513b3c7e exchange: add test case for A.2
Pierre-Yves David <pierre-yves.david@fb.com>
parents:
diff changeset
    63
c362513b3c7e exchange: add test case for A.2
Pierre-Yves David <pierre-yves.david@fb.com>
parents:
diff changeset
    64
Actual Test
c362513b3c7e exchange: add test case for A.2
Pierre-Yves David <pierre-yves.david@fb.com>
parents:
diff changeset
    65
---------------
c362513b3c7e exchange: add test case for A.2
Pierre-Yves David <pierre-yves.david@fb.com>
parents:
diff changeset
    66
831
a6af6919888d exchange: automate the testing process too
Pierre-Yves David <pierre-yves.david@fb.com>
parents: 830
diff changeset
    67
  $ dotest A.2 A
a6af6919888d exchange: automate the testing process too
Pierre-Yves David <pierre-yves.david@fb.com>
parents: 830
diff changeset
    68
  ## Running testcase A.2
a6af6919888d exchange: automate the testing process too
Pierre-Yves David <pierre-yves.david@fb.com>
parents: 830
diff changeset
    69
  # testing echange of "A" (f5bc6836db60)
a6af6919888d exchange: automate the testing process too
Pierre-Yves David <pierre-yves.david@fb.com>
parents: 830
diff changeset
    70
  ## initial state
a6af6919888d exchange: automate the testing process too
Pierre-Yves David <pierre-yves.david@fb.com>
parents: 830
diff changeset
    71
  # 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
    72
  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
    73
  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
    74
  # obstore: pushdest
a6af6919888d exchange: automate the testing process too
Pierre-Yves David <pierre-yves.david@fb.com>
parents: 830
diff changeset
    75
  # obstore: pulldest
a6af6919888d exchange: automate the testing process too
Pierre-Yves David <pierre-yves.david@fb.com>
parents: 830
diff changeset
    76
  ## 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
    77
  pushing to pushdest
c362513b3c7e exchange: add test case for A.2
Pierre-Yves David <pierre-yves.david@fb.com>
parents:
diff changeset
    78
  searching for changes
c362513b3c7e exchange: add test case for A.2
Pierre-Yves David <pierre-yves.david@fb.com>
parents:
diff changeset
    79
  adding changesets
c362513b3c7e exchange: add test case for A.2
Pierre-Yves David <pierre-yves.david@fb.com>
parents:
diff changeset
    80
  adding manifests
c362513b3c7e exchange: add test case for A.2
Pierre-Yves David <pierre-yves.david@fb.com>
parents:
diff changeset
    81
  adding file changes
c362513b3c7e exchange: add test case for A.2
Pierre-Yves David <pierre-yves.david@fb.com>
parents:
diff changeset
    82
  added 1 changesets with 1 changes to 1 files
c362513b3c7e exchange: add test case for A.2
Pierre-Yves David <pierre-yves.david@fb.com>
parents:
diff changeset
    83
  OBSEXC: computing relevant nodes
c362513b3c7e exchange: add test case for A.2
Pierre-Yves David <pierre-yves.david@fb.com>
parents:
diff changeset
    84
  OBSEXC: computing markers relevant to 2 nodes
1060
f6e0cfca1bf0 test: work around a bug in debugobsolete
Pierre-Yves David <pierre-yves.david@fb.com>
parents: 1040
diff changeset
    85
  OBSEXC: pushing 1 obsolescence markers (65 bytes)
828
c362513b3c7e exchange: add test case for A.2
Pierre-Yves David <pierre-yves.david@fb.com>
parents:
diff changeset
    86
  OBSEXC: DONE
831
a6af6919888d exchange: automate the testing process too
Pierre-Yves David <pierre-yves.david@fb.com>
parents: 830
diff changeset
    87
  ## post push state
a6af6919888d exchange: automate the testing process too
Pierre-Yves David <pierre-yves.david@fb.com>
parents: 830
diff changeset
    88
  # 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
    89
  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
    90
  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
    91
  # 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
    92
  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
    93
  # obstore: pulldest
a6af6919888d exchange: automate the testing process too
Pierre-Yves David <pierre-yves.david@fb.com>
parents: 830
diff changeset
    94
  ## 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
    95
  pulling from main
c362513b3c7e exchange: add test case for A.2
Pierre-Yves David <pierre-yves.david@fb.com>
parents:
diff changeset
    96
  searching for changes
c362513b3c7e exchange: add test case for A.2
Pierre-Yves David <pierre-yves.david@fb.com>
parents:
diff changeset
    97
  adding changesets
c362513b3c7e exchange: add test case for A.2
Pierre-Yves David <pierre-yves.david@fb.com>
parents:
diff changeset
    98
  adding manifests
c362513b3c7e exchange: add test case for A.2
Pierre-Yves David <pierre-yves.david@fb.com>
parents:
diff changeset
    99
  adding file changes
c362513b3c7e exchange: add test case for A.2
Pierre-Yves David <pierre-yves.david@fb.com>
parents:
diff changeset
   100
  added 1 changesets with 1 changes to 1 files
c362513b3c7e exchange: add test case for A.2
Pierre-Yves David <pierre-yves.david@fb.com>
parents:
diff changeset
   101
  OBSEXC: pull obsolescence markers
1060
f6e0cfca1bf0 test: work around a bug in debugobsolete
Pierre-Yves David <pierre-yves.david@fb.com>
parents: 1040
diff changeset
   102
  OBSEXC: merging obsolescence markers (65 bytes)
1040
640f3280559e evolve: add "obsolescence" in front of marked in the previous message
Pierre-Yves David <pierre-yves.david@fb.com>
parents: 1037
diff changeset
   103
  OBSEXC: 1 obsolescence markers added
828
c362513b3c7e exchange: add test case for A.2
Pierre-Yves David <pierre-yves.david@fb.com>
parents:
diff changeset
   104
  OBSEXC: DONE
c362513b3c7e exchange: add test case for A.2
Pierre-Yves David <pierre-yves.david@fb.com>
parents:
diff changeset
   105
  (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
   106
  ## post pull state
a6af6919888d exchange: automate the testing process too
Pierre-Yves David <pierre-yves.david@fb.com>
parents: 830
diff changeset
   107
  # 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
   108
  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
   109
  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
   110
  # 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
   111
  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
   112
  # 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
   113
  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
   114
831
a6af6919888d exchange: automate the testing process too
Pierre-Yves David <pierre-yves.david@fb.com>
parents: 830
diff changeset
   115
828
c362513b3c7e exchange: add test case for A.2
Pierre-Yves David <pierre-yves.david@fb.com>
parents:
diff changeset
   116
  $ cd ..