tests/test-exchange-obsmarkers-case-C3.t
author Anton Shestakov <av6@dwimlabs.net>
Fri, 07 Jun 2019 18:14:48 +0800
branchstable
changeset 4687 313565dd75e3
parent 3566 e6bea259c227
child 3591 98941c28f3e2
child 4840 62b60fc1983d
permissions -rw-r--r--
pick: remove transaction on the whole command (issue6037) At its core, pick is a pretty straightforward and well-behaving command, it uses functions already in core hg, it checks that wdir is clean and that changeset to pick is not public, it checks if there happen to be merge conflicts and can be --continue'd later, etc. It is very similar to graft in core (it also uses mergemod.graft function), but it obsoletes the original changeset. However, graft does not experience this incorrect behavior from issue 6037. What happens in the test case for this issue when we pick a revision that touches both "a" and "b": mergemod.graft() takes the original changeset and tries to apply it to the wdir, which results in "b" being marked as newly added and ready to be committed, "a" updated with the new content and being marked as modified, but "a" also has conflicts. Pick correctly notices this and saves its state before asking for user intervention. So far so good. However, when the command raises InterventionRequired to print a user-facing message and exit while being wrapped in repo.transaction() context manager, the latter partially undoes what mergemod.graft() did: it unmarks "b" as added. And when user continues pick, "b" is therefore not tracked and is not included in the resulting commit. The transaction is not useful here, because it doesn't touch wdir (it's still dirty), it doesn't remove pickstate (and other commands will refuse to work until pick --abort or --continue), it just makes "b" untracked. The solution is to use repo.transaction() only to wrap code that writes data to hg store in the final stages of the command after all checks have passed and is not expected to fail on trivial cases like merge conflicts. For example, committing the picked changeset. But since pick uses repo.commit() for that, and because that function already uses a transaction, wrapping it in another transaction doesn't make sense.
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
2268
f2ebe960998b tests: update test to match upstreamable version
Pierre-Yves David <pierre-yves.david@ens-lyon.org>
parents: 2230
diff changeset
     1
============================================
f2ebe960998b tests: update test to match upstreamable version
Pierre-Yves David <pierre-yves.david@ens-lyon.org>
parents: 2230
diff changeset
     2
Testing obsolescence markers push: Cases C.3
f2ebe960998b tests: update test to match upstreamable version
Pierre-Yves David <pierre-yves.david@ens-lyon.org>
parents: 2230
diff changeset
     3
============================================
846
35972ef12664 exchange: add test case for C.3
Pierre-Yves David <pierre-yves.david@fb.com>
parents:
diff changeset
     4
2268
f2ebe960998b tests: update test to match upstreamable version
Pierre-Yves David <pierre-yves.david@ens-lyon.org>
parents: 2230
diff changeset
     5
Mercurial pushes obsolescences markers relevant to the "pushed-set", the set of
f2ebe960998b tests: update test to match upstreamable version
Pierre-Yves David <pierre-yves.david@ens-lyon.org>
parents: 2230
diff changeset
     6
all changesets that requested to be "in sync" after the push (even if they are
f2ebe960998b tests: update test to match upstreamable version
Pierre-Yves David <pierre-yves.david@ens-lyon.org>
parents: 2230
diff changeset
     7
already on both side).
846
35972ef12664 exchange: add test case for C.3
Pierre-Yves David <pierre-yves.david@fb.com>
parents:
diff changeset
     8
2268
f2ebe960998b tests: update test to match upstreamable version
Pierre-Yves David <pierre-yves.david@ens-lyon.org>
parents: 2230
diff changeset
     9
This test belongs to a series of tests checking such set is properly computed
f2ebe960998b tests: update test to match upstreamable version
Pierre-Yves David <pierre-yves.david@ens-lyon.org>
parents: 2230
diff changeset
    10
and applied. This does not tests "obsmarkers" discovery capabilities.
846
35972ef12664 exchange: add test case for C.3
Pierre-Yves David <pierre-yves.david@fb.com>
parents:
diff changeset
    11
2268
f2ebe960998b tests: update test to match upstreamable version
Pierre-Yves David <pierre-yves.david@ens-lyon.org>
parents: 2230
diff changeset
    12
Category C: advanced case
f2ebe960998b tests: update test to match upstreamable version
Pierre-Yves David <pierre-yves.david@ens-lyon.org>
parents: 2230
diff changeset
    13
TestCase 3: Pruned changeset on precursors of another pruned one
f2ebe960998b tests: update test to match upstreamable version
Pierre-Yves David <pierre-yves.david@ens-lyon.org>
parents: 2230
diff changeset
    14
Variants:
f2ebe960998b tests: update test to match upstreamable version
Pierre-Yves David <pierre-yves.david@ens-lyon.org>
parents: 2230
diff changeset
    15
# a: explicite push
f2ebe960998b tests: update test to match upstreamable version
Pierre-Yves David <pierre-yves.david@ens-lyon.org>
parents: 2230
diff changeset
    16
# b: bare push
846
35972ef12664 exchange: add test case for C.3
Pierre-Yves David <pierre-yves.david@fb.com>
parents:
diff changeset
    17
2268
f2ebe960998b tests: update test to match upstreamable version
Pierre-Yves David <pierre-yves.david@ens-lyon.org>
parents: 2230
diff changeset
    18
C.3 Pruned changeset on precursors of another pruned one
f2ebe960998b tests: update test to match upstreamable version
Pierre-Yves David <pierre-yves.david@ens-lyon.org>
parents: 2230
diff changeset
    19
========================================================
846
35972ef12664 exchange: add test case for C.3
Pierre-Yves David <pierre-yves.david@fb.com>
parents:
diff changeset
    20
35972ef12664 exchange: add test case for C.3
Pierre-Yves David <pierre-yves.david@fb.com>
parents:
diff changeset
    21
.. {{{
35972ef12664 exchange: add test case for C.3
Pierre-Yves David <pierre-yves.david@fb.com>
parents:
diff changeset
    22
..   B 
35972ef12664 exchange: add test case for C.3
Pierre-Yves David <pierre-yves.david@fb.com>
parents:
diff changeset
    23
..     |
35972ef12664 exchange: add test case for C.3
Pierre-Yves David <pierre-yves.david@fb.com>
parents:
diff changeset
    24
..   A ø⇠⊗ A'
35972ef12664 exchange: add test case for C.3
Pierre-Yves David <pierre-yves.david@fb.com>
parents:
diff changeset
    25
..     |/
35972ef12664 exchange: add test case for C.3
Pierre-Yves David <pierre-yves.david@fb.com>
parents:
diff changeset
    26
..     ● O
35972ef12664 exchange: add test case for C.3
Pierre-Yves David <pierre-yves.david@fb.com>
parents:
diff changeset
    27
.. }}}
2268
f2ebe960998b tests: update test to match upstreamable version
Pierre-Yves David <pierre-yves.david@ens-lyon.org>
parents: 2230
diff changeset
    28
..
846
35972ef12664 exchange: add test case for C.3
Pierre-Yves David <pierre-yves.david@fb.com>
parents:
diff changeset
    29
.. Marker exist from:
2268
f2ebe960998b tests: update test to match upstreamable version
Pierre-Yves David <pierre-yves.david@ens-lyon.org>
parents: 2230
diff changeset
    30
..
846
35972ef12664 exchange: add test case for C.3
Pierre-Yves David <pierre-yves.david@fb.com>
parents:
diff changeset
    31
..  * A' succeed to A
35972ef12664 exchange: add test case for C.3
Pierre-Yves David <pierre-yves.david@fb.com>
parents:
diff changeset
    32
..  * A' (prune
35972ef12664 exchange: add test case for C.3
Pierre-Yves David <pierre-yves.david@fb.com>
parents:
diff changeset
    33
..  * B (prune)
2268
f2ebe960998b tests: update test to match upstreamable version
Pierre-Yves David <pierre-yves.david@ens-lyon.org>
parents: 2230
diff changeset
    34
..
846
35972ef12664 exchange: add test case for C.3
Pierre-Yves David <pierre-yves.david@fb.com>
parents:
diff changeset
    35
.. Command run:
2268
f2ebe960998b tests: update test to match upstreamable version
Pierre-Yves David <pierre-yves.david@ens-lyon.org>
parents: 2230
diff changeset
    36
..
846
35972ef12664 exchange: add test case for C.3
Pierre-Yves David <pierre-yves.david@fb.com>
parents:
diff changeset
    37
..  * hg push -r A'
35972ef12664 exchange: add test case for C.3
Pierre-Yves David <pierre-yves.david@fb.com>
parents:
diff changeset
    38
..  * hg push
2268
f2ebe960998b tests: update test to match upstreamable version
Pierre-Yves David <pierre-yves.david@ens-lyon.org>
parents: 2230
diff changeset
    39
..
846
35972ef12664 exchange: add test case for C.3
Pierre-Yves David <pierre-yves.david@fb.com>
parents:
diff changeset
    40
.. Expected exchange:
2268
f2ebe960998b tests: update test to match upstreamable version
Pierre-Yves David <pierre-yves.david@ens-lyon.org>
parents: 2230
diff changeset
    41
..
846
35972ef12664 exchange: add test case for C.3
Pierre-Yves David <pierre-yves.david@fb.com>
parents:
diff changeset
    42
..  * `A ø⇠⊗ A'`
35972ef12664 exchange: add test case for C.3
Pierre-Yves David <pierre-yves.david@fb.com>
parents:
diff changeset
    43
..  * A (prune)
35972ef12664 exchange: add test case for C.3
Pierre-Yves David <pierre-yves.david@fb.com>
parents:
diff changeset
    44
..  * B (prune)
35972ef12664 exchange: add test case for C.3
Pierre-Yves David <pierre-yves.david@fb.com>
parents:
diff changeset
    45
2268
f2ebe960998b tests: update test to match upstreamable version
Pierre-Yves David <pierre-yves.david@ens-lyon.org>
parents: 2230
diff changeset
    46
Setup
f2ebe960998b tests: update test to match upstreamable version
Pierre-Yves David <pierre-yves.david@ens-lyon.org>
parents: 2230
diff changeset
    47
-----
f2ebe960998b tests: update test to match upstreamable version
Pierre-Yves David <pierre-yves.david@ens-lyon.org>
parents: 2230
diff changeset
    48
f2ebe960998b tests: update test to match upstreamable version
Pierre-Yves David <pierre-yves.david@ens-lyon.org>
parents: 2230
diff changeset
    49
  $ . $TESTDIR/testlib/exchange-obsmarker-util.sh
f2ebe960998b tests: update test to match upstreamable version
Pierre-Yves David <pierre-yves.david@ens-lyon.org>
parents: 2230
diff changeset
    50
f2ebe960998b tests: update test to match upstreamable version
Pierre-Yves David <pierre-yves.david@ens-lyon.org>
parents: 2230
diff changeset
    51
Initial
f2ebe960998b tests: update test to match upstreamable version
Pierre-Yves David <pierre-yves.david@ens-lyon.org>
parents: 2230
diff changeset
    52
846
35972ef12664 exchange: add test case for C.3
Pierre-Yves David <pierre-yves.david@fb.com>
parents:
diff changeset
    53
  $ setuprepos C.3
35972ef12664 exchange: add test case for C.3
Pierre-Yves David <pierre-yves.david@fb.com>
parents:
diff changeset
    54
  creating test repo for test case C.3
35972ef12664 exchange: add test case for C.3
Pierre-Yves David <pierre-yves.david@fb.com>
parents:
diff changeset
    55
  - pulldest
35972ef12664 exchange: add test case for C.3
Pierre-Yves David <pierre-yves.david@fb.com>
parents:
diff changeset
    56
  - main
35972ef12664 exchange: add test case for C.3
Pierre-Yves David <pierre-yves.david@fb.com>
parents:
diff changeset
    57
  - pushdest
35972ef12664 exchange: add test case for C.3
Pierre-Yves David <pierre-yves.david@fb.com>
parents:
diff changeset
    58
  cd into `main` and proceed with env setup
35972ef12664 exchange: add test case for C.3
Pierre-Yves David <pierre-yves.david@fb.com>
parents:
diff changeset
    59
  $ cd main
35972ef12664 exchange: add test case for C.3
Pierre-Yves David <pierre-yves.david@fb.com>
parents:
diff changeset
    60
  $ mkcommit A0
35972ef12664 exchange: add test case for C.3
Pierre-Yves David <pierre-yves.david@fb.com>
parents:
diff changeset
    61
  $ mkcommit B
35972ef12664 exchange: add test case for C.3
Pierre-Yves David <pierre-yves.david@fb.com>
parents:
diff changeset
    62
  $ hg prune -qd '0 0' .
35972ef12664 exchange: add test case for C.3
Pierre-Yves David <pierre-yves.david@fb.com>
parents:
diff changeset
    63
  $ hg update -q 0
35972ef12664 exchange: add test case for C.3
Pierre-Yves David <pierre-yves.david@fb.com>
parents:
diff changeset
    64
  $ mkcommit A1
35972ef12664 exchange: add test case for C.3
Pierre-Yves David <pierre-yves.david@fb.com>
parents:
diff changeset
    65
  created new head
35972ef12664 exchange: add test case for C.3
Pierre-Yves David <pierre-yves.david@fb.com>
parents:
diff changeset
    66
  $ hg debugobsolete `getid 'desc(A0)'` `getid 'desc(A1)'`
2754
21f06d932231 test: update test output to match b11e8c67fb0f
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 2580
diff changeset
    67
  obsoleted 1 changesets
846
35972ef12664 exchange: add test case for C.3
Pierre-Yves David <pierre-yves.david@fb.com>
parents:
diff changeset
    68
  $ hg prune -qd '0 0' .
35972ef12664 exchange: add test case for C.3
Pierre-Yves David <pierre-yves.david@fb.com>
parents:
diff changeset
    69
  $ hg log -G --hidden
35972ef12664 exchange: add test case for C.3
Pierre-Yves David <pierre-yves.david@fb.com>
parents:
diff changeset
    70
  x  e5ea8f9c7314 (draft): A1
35972ef12664 exchange: add test case for C.3
Pierre-Yves David <pierre-yves.david@fb.com>
parents:
diff changeset
    71
  |
35972ef12664 exchange: add test case for C.3
Pierre-Yves David <pierre-yves.david@fb.com>
parents:
diff changeset
    72
  | x  06055a7959d4 (draft): B
35972ef12664 exchange: add test case for C.3
Pierre-Yves David <pierre-yves.david@fb.com>
parents:
diff changeset
    73
  | |
35972ef12664 exchange: add test case for C.3
Pierre-Yves David <pierre-yves.david@fb.com>
parents:
diff changeset
    74
  | x  28b51eb45704 (draft): A0
35972ef12664 exchange: add test case for C.3
Pierre-Yves David <pierre-yves.david@fb.com>
parents:
diff changeset
    75
  |/
35972ef12664 exchange: add test case for C.3
Pierre-Yves David <pierre-yves.david@fb.com>
parents:
diff changeset
    76
  @  a9bdc8b26820 (public): O
35972ef12664 exchange: add test case for C.3
Pierre-Yves David <pierre-yves.david@fb.com>
parents:
diff changeset
    77
  
2268
f2ebe960998b tests: update test to match upstreamable version
Pierre-Yves David <pierre-yves.david@ens-lyon.org>
parents: 2230
diff changeset
    78
  $ inspect_obsmarkers
f2ebe960998b tests: update test to match upstreamable version
Pierre-Yves David <pierre-yves.david@ens-lyon.org>
parents: 2230
diff changeset
    79
  obsstore content
f2ebe960998b tests: update test to match upstreamable version
Pierre-Yves David <pierre-yves.david@ens-lyon.org>
parents: 2230
diff changeset
    80
  ================
3566
e6bea259c227 prune: include "operation" metadata in obsmarkers
Martin von Zweigbergk <martinvonz@google.com>
parents: 3559
diff changeset
    81
  06055a7959d4128e6e3bccfd01482e83a2db8a3a 0 {28b51eb45704506b5c603decd6bf7ac5e0f6a52f} (Thu Jan 01 00:00:00 1970 +0000) {'ef1': '0', 'operation': 'prune', 'user': 'test'}
3559
d166b3dc5e8a tests: do not glob out fixed dates
Martin von Zweigbergk <martinvonz@google.com>
parents: 2754
diff changeset
    82
  28b51eb45704506b5c603decd6bf7ac5e0f6a52f e5ea8f9c73143125d36658e90ef70c6d2027a5b7 0 (Thu Jan 01 00:00:00 1970 +0000) {'user': 'test'}
3566
e6bea259c227 prune: include "operation" metadata in obsmarkers
Martin von Zweigbergk <martinvonz@google.com>
parents: 3559
diff changeset
    83
  e5ea8f9c73143125d36658e90ef70c6d2027a5b7 0 {a9bdc8b26820b1b87d585b82eb0ceb4a2ecdbc04} (Thu Jan 01 00:00:00 1970 +0000) {'ef1': '0', 'operation': 'prune', 'user': 'test'}
2268
f2ebe960998b tests: update test to match upstreamable version
Pierre-Yves David <pierre-yves.david@ens-lyon.org>
parents: 2230
diff changeset
    84
  obshashtree
f2ebe960998b tests: update test to match upstreamable version
Pierre-Yves David <pierre-yves.david@ens-lyon.org>
parents: 2230
diff changeset
    85
  ===========
3566
e6bea259c227 prune: include "operation" metadata in obsmarkers
Martin von Zweigbergk <martinvonz@google.com>
parents: 3559
diff changeset
    86
  a9bdc8b26820b1b87d585b82eb0ceb4a2ecdbc04 bb74e5d126457aac3b564438c6b80c73ea731bb6
e6bea259c227 prune: include "operation" metadata in obsmarkers
Martin von Zweigbergk <martinvonz@google.com>
parents: 3559
diff changeset
    87
  28b51eb45704506b5c603decd6bf7ac5e0f6a52f 86646b95e6af02c23f25660e942e19707895d905
e6bea259c227 prune: include "operation" metadata in obsmarkers
Martin von Zweigbergk <martinvonz@google.com>
parents: 3559
diff changeset
    88
  06055a7959d4128e6e3bccfd01482e83a2db8a3a 5efda54c4faef1d288712649d367de614c1eb0dd
e6bea259c227 prune: include "operation" metadata in obsmarkers
Martin von Zweigbergk <martinvonz@google.com>
parents: 3559
diff changeset
    89
  e5ea8f9c73143125d36658e90ef70c6d2027a5b7 5ea68792a2a190fe219867808e05ef1bb23d0311
2268
f2ebe960998b tests: update test to match upstreamable version
Pierre-Yves David <pierre-yves.david@ens-lyon.org>
parents: 2230
diff changeset
    90
  obshashrange
f2ebe960998b tests: update test to match upstreamable version
Pierre-Yves David <pierre-yves.david@ens-lyon.org>
parents: 2230
diff changeset
    91
  ============
2228
3b18440cca74 debugstablerange: improve output spacing
Pierre-Yves David <pierre-yves.david@ens-lyon.org>
parents: 2118
diff changeset
    92
           rev         node        index         size        depth      obshash
3566
e6bea259c227 prune: include "operation" metadata in obsmarkers
Martin von Zweigbergk <martinvonz@google.com>
parents: 3559
diff changeset
    93
             0 a9bdc8b26820            0            1            1 bb74e5d12645
846
35972ef12664 exchange: add test case for C.3
Pierre-Yves David <pierre-yves.david@fb.com>
parents:
diff changeset
    94
  $ cd ..
35972ef12664 exchange: add test case for C.3
Pierre-Yves David <pierre-yves.david@fb.com>
parents:
diff changeset
    95
  $ cd ..
35972ef12664 exchange: add test case for C.3
Pierre-Yves David <pierre-yves.david@fb.com>
parents:
diff changeset
    96
2268
f2ebe960998b tests: update test to match upstreamable version
Pierre-Yves David <pierre-yves.david@ens-lyon.org>
parents: 2230
diff changeset
    97
  $ cp -R C.3 C.3.a
f2ebe960998b tests: update test to match upstreamable version
Pierre-Yves David <pierre-yves.david@ens-lyon.org>
parents: 2230
diff changeset
    98
  $ cp -R C.3 C.3.b
846
35972ef12664 exchange: add test case for C.3
Pierre-Yves David <pierre-yves.david@fb.com>
parents:
diff changeset
    99
984
b286f77d680c tests: fix grammar, spelling, punctuation in comments
Greg Ward <greg@gerg.ca>
parents: 957
diff changeset
   100
Actual Test (explicit push)
b286f77d680c tests: fix grammar, spelling, punctuation in comments
Greg Ward <greg@gerg.ca>
parents: 957
diff changeset
   101
---------------------------
846
35972ef12664 exchange: add test case for C.3
Pierre-Yves David <pierre-yves.david@fb.com>
parents:
diff changeset
   102
35972ef12664 exchange: add test case for C.3
Pierre-Yves David <pierre-yves.david@fb.com>
parents:
diff changeset
   103
  $ dotest C.3.a O
35972ef12664 exchange: add test case for C.3
Pierre-Yves David <pierre-yves.david@fb.com>
parents:
diff changeset
   104
  ## Running testcase C.3.a
35972ef12664 exchange: add test case for C.3
Pierre-Yves David <pierre-yves.david@fb.com>
parents:
diff changeset
   105
  # testing echange of "O" (a9bdc8b26820)
35972ef12664 exchange: add test case for C.3
Pierre-Yves David <pierre-yves.david@fb.com>
parents:
diff changeset
   106
  ## initial state
35972ef12664 exchange: add test case for C.3
Pierre-Yves David <pierre-yves.david@fb.com>
parents:
diff changeset
   107
  # obstore: main
3566
e6bea259c227 prune: include "operation" metadata in obsmarkers
Martin von Zweigbergk <martinvonz@google.com>
parents: 3559
diff changeset
   108
  06055a7959d4128e6e3bccfd01482e83a2db8a3a 0 {28b51eb45704506b5c603decd6bf7ac5e0f6a52f} (Thu Jan 01 00:00:00 1970 +0000) {'ef1': '0', 'operation': 'prune', 'user': 'test'}
3559
d166b3dc5e8a tests: do not glob out fixed dates
Martin von Zweigbergk <martinvonz@google.com>
parents: 2754
diff changeset
   109
  28b51eb45704506b5c603decd6bf7ac5e0f6a52f e5ea8f9c73143125d36658e90ef70c6d2027a5b7 0 (Thu Jan 01 00:00:00 1970 +0000) {'user': 'test'}
3566
e6bea259c227 prune: include "operation" metadata in obsmarkers
Martin von Zweigbergk <martinvonz@google.com>
parents: 3559
diff changeset
   110
  e5ea8f9c73143125d36658e90ef70c6d2027a5b7 0 {a9bdc8b26820b1b87d585b82eb0ceb4a2ecdbc04} (Thu Jan 01 00:00:00 1970 +0000) {'ef1': '0', 'operation': 'prune', 'user': 'test'}
846
35972ef12664 exchange: add test case for C.3
Pierre-Yves David <pierre-yves.david@fb.com>
parents:
diff changeset
   111
  # obstore: pushdest
35972ef12664 exchange: add test case for C.3
Pierre-Yves David <pierre-yves.david@fb.com>
parents:
diff changeset
   112
  # obstore: pulldest
35972ef12664 exchange: add test case for C.3
Pierre-Yves David <pierre-yves.david@fb.com>
parents:
diff changeset
   113
  ## pushing "O" from main to pushdest
35972ef12664 exchange: add test case for C.3
Pierre-Yves David <pierre-yves.david@fb.com>
parents:
diff changeset
   114
  pushing to pushdest
35972ef12664 exchange: add test case for C.3
Pierre-Yves David <pierre-yves.david@fb.com>
parents:
diff changeset
   115
  searching for changes
1078
5717d023da63 obsexc: use the common discovery
Pierre-Yves David <pierre-yves.david@fb.com>
parents: 1067
diff changeset
   116
  no changes found
1093
a49f2e7a2755 obsexch: respect todosteps when using the old push
Pierre-Yves David <pierre-yves.david@fb.com>
parents: 1088
diff changeset
   117
  remote: 3 new obsolescence markers
846
35972ef12664 exchange: add test case for C.3
Pierre-Yves David <pierre-yves.david@fb.com>
parents:
diff changeset
   118
  ## post push state
35972ef12664 exchange: add test case for C.3
Pierre-Yves David <pierre-yves.david@fb.com>
parents:
diff changeset
   119
  # obstore: main
3566
e6bea259c227 prune: include "operation" metadata in obsmarkers
Martin von Zweigbergk <martinvonz@google.com>
parents: 3559
diff changeset
   120
  06055a7959d4128e6e3bccfd01482e83a2db8a3a 0 {28b51eb45704506b5c603decd6bf7ac5e0f6a52f} (Thu Jan 01 00:00:00 1970 +0000) {'ef1': '0', 'operation': 'prune', 'user': 'test'}
3559
d166b3dc5e8a tests: do not glob out fixed dates
Martin von Zweigbergk <martinvonz@google.com>
parents: 2754
diff changeset
   121
  28b51eb45704506b5c603decd6bf7ac5e0f6a52f e5ea8f9c73143125d36658e90ef70c6d2027a5b7 0 (Thu Jan 01 00:00:00 1970 +0000) {'user': 'test'}
3566
e6bea259c227 prune: include "operation" metadata in obsmarkers
Martin von Zweigbergk <martinvonz@google.com>
parents: 3559
diff changeset
   122
  e5ea8f9c73143125d36658e90ef70c6d2027a5b7 0 {a9bdc8b26820b1b87d585b82eb0ceb4a2ecdbc04} (Thu Jan 01 00:00:00 1970 +0000) {'ef1': '0', 'operation': 'prune', 'user': 'test'}
846
35972ef12664 exchange: add test case for C.3
Pierre-Yves David <pierre-yves.david@fb.com>
parents:
diff changeset
   123
  # obstore: pushdest
3566
e6bea259c227 prune: include "operation" metadata in obsmarkers
Martin von Zweigbergk <martinvonz@google.com>
parents: 3559
diff changeset
   124
  06055a7959d4128e6e3bccfd01482e83a2db8a3a 0 {28b51eb45704506b5c603decd6bf7ac5e0f6a52f} (Thu Jan 01 00:00:00 1970 +0000) {'ef1': '0', 'operation': 'prune', 'user': 'test'}
3559
d166b3dc5e8a tests: do not glob out fixed dates
Martin von Zweigbergk <martinvonz@google.com>
parents: 2754
diff changeset
   125
  28b51eb45704506b5c603decd6bf7ac5e0f6a52f e5ea8f9c73143125d36658e90ef70c6d2027a5b7 0 (Thu Jan 01 00:00:00 1970 +0000) {'user': 'test'}
3566
e6bea259c227 prune: include "operation" metadata in obsmarkers
Martin von Zweigbergk <martinvonz@google.com>
parents: 3559
diff changeset
   126
  e5ea8f9c73143125d36658e90ef70c6d2027a5b7 0 {a9bdc8b26820b1b87d585b82eb0ceb4a2ecdbc04} (Thu Jan 01 00:00:00 1970 +0000) {'ef1': '0', 'operation': 'prune', 'user': 'test'}
846
35972ef12664 exchange: add test case for C.3
Pierre-Yves David <pierre-yves.david@fb.com>
parents:
diff changeset
   127
  # obstore: pulldest
35972ef12664 exchange: add test case for C.3
Pierre-Yves David <pierre-yves.david@fb.com>
parents:
diff changeset
   128
  ## pulling "a9bdc8b26820" from main into pulldest
35972ef12664 exchange: add test case for C.3
Pierre-Yves David <pierre-yves.david@fb.com>
parents:
diff changeset
   129
  pulling from main
35972ef12664 exchange: add test case for C.3
Pierre-Yves David <pierre-yves.david@fb.com>
parents:
diff changeset
   130
  no changes found
1093
a49f2e7a2755 obsexch: respect todosteps when using the old push
Pierre-Yves David <pierre-yves.david@fb.com>
parents: 1088
diff changeset
   131
  3 new obsolescence markers
846
35972ef12664 exchange: add test case for C.3
Pierre-Yves David <pierre-yves.david@fb.com>
parents:
diff changeset
   132
  ## post pull state
35972ef12664 exchange: add test case for C.3
Pierre-Yves David <pierre-yves.david@fb.com>
parents:
diff changeset
   133
  # obstore: main
3566
e6bea259c227 prune: include "operation" metadata in obsmarkers
Martin von Zweigbergk <martinvonz@google.com>
parents: 3559
diff changeset
   134
  06055a7959d4128e6e3bccfd01482e83a2db8a3a 0 {28b51eb45704506b5c603decd6bf7ac5e0f6a52f} (Thu Jan 01 00:00:00 1970 +0000) {'ef1': '0', 'operation': 'prune', 'user': 'test'}
3559
d166b3dc5e8a tests: do not glob out fixed dates
Martin von Zweigbergk <martinvonz@google.com>
parents: 2754
diff changeset
   135
  28b51eb45704506b5c603decd6bf7ac5e0f6a52f e5ea8f9c73143125d36658e90ef70c6d2027a5b7 0 (Thu Jan 01 00:00:00 1970 +0000) {'user': 'test'}
3566
e6bea259c227 prune: include "operation" metadata in obsmarkers
Martin von Zweigbergk <martinvonz@google.com>
parents: 3559
diff changeset
   136
  e5ea8f9c73143125d36658e90ef70c6d2027a5b7 0 {a9bdc8b26820b1b87d585b82eb0ceb4a2ecdbc04} (Thu Jan 01 00:00:00 1970 +0000) {'ef1': '0', 'operation': 'prune', 'user': 'test'}
846
35972ef12664 exchange: add test case for C.3
Pierre-Yves David <pierre-yves.david@fb.com>
parents:
diff changeset
   137
  # obstore: pushdest
3566
e6bea259c227 prune: include "operation" metadata in obsmarkers
Martin von Zweigbergk <martinvonz@google.com>
parents: 3559
diff changeset
   138
  06055a7959d4128e6e3bccfd01482e83a2db8a3a 0 {28b51eb45704506b5c603decd6bf7ac5e0f6a52f} (Thu Jan 01 00:00:00 1970 +0000) {'ef1': '0', 'operation': 'prune', 'user': 'test'}
3559
d166b3dc5e8a tests: do not glob out fixed dates
Martin von Zweigbergk <martinvonz@google.com>
parents: 2754
diff changeset
   139
  28b51eb45704506b5c603decd6bf7ac5e0f6a52f e5ea8f9c73143125d36658e90ef70c6d2027a5b7 0 (Thu Jan 01 00:00:00 1970 +0000) {'user': 'test'}
3566
e6bea259c227 prune: include "operation" metadata in obsmarkers
Martin von Zweigbergk <martinvonz@google.com>
parents: 3559
diff changeset
   140
  e5ea8f9c73143125d36658e90ef70c6d2027a5b7 0 {a9bdc8b26820b1b87d585b82eb0ceb4a2ecdbc04} (Thu Jan 01 00:00:00 1970 +0000) {'ef1': '0', 'operation': 'prune', 'user': 'test'}
846
35972ef12664 exchange: add test case for C.3
Pierre-Yves David <pierre-yves.david@fb.com>
parents:
diff changeset
   141
  # obstore: pulldest
3566
e6bea259c227 prune: include "operation" metadata in obsmarkers
Martin von Zweigbergk <martinvonz@google.com>
parents: 3559
diff changeset
   142
  06055a7959d4128e6e3bccfd01482e83a2db8a3a 0 {28b51eb45704506b5c603decd6bf7ac5e0f6a52f} (Thu Jan 01 00:00:00 1970 +0000) {'ef1': '0', 'operation': 'prune', 'user': 'test'}
3559
d166b3dc5e8a tests: do not glob out fixed dates
Martin von Zweigbergk <martinvonz@google.com>
parents: 2754
diff changeset
   143
  28b51eb45704506b5c603decd6bf7ac5e0f6a52f e5ea8f9c73143125d36658e90ef70c6d2027a5b7 0 (Thu Jan 01 00:00:00 1970 +0000) {'user': 'test'}
3566
e6bea259c227 prune: include "operation" metadata in obsmarkers
Martin von Zweigbergk <martinvonz@google.com>
parents: 3559
diff changeset
   144
  e5ea8f9c73143125d36658e90ef70c6d2027a5b7 0 {a9bdc8b26820b1b87d585b82eb0ceb4a2ecdbc04} (Thu Jan 01 00:00:00 1970 +0000) {'ef1': '0', 'operation': 'prune', 'user': 'test'}
846
35972ef12664 exchange: add test case for C.3
Pierre-Yves David <pierre-yves.david@fb.com>
parents:
diff changeset
   145
35972ef12664 exchange: add test case for C.3
Pierre-Yves David <pierre-yves.david@fb.com>
parents:
diff changeset
   146
Actual Test (bare push)
35972ef12664 exchange: add test case for C.3
Pierre-Yves David <pierre-yves.david@fb.com>
parents:
diff changeset
   147
-------------------------------------
35972ef12664 exchange: add test case for C.3
Pierre-Yves David <pierre-yves.david@fb.com>
parents:
diff changeset
   148
35972ef12664 exchange: add test case for C.3
Pierre-Yves David <pierre-yves.david@fb.com>
parents:
diff changeset
   149
  $ dotest C.3.b
35972ef12664 exchange: add test case for C.3
Pierre-Yves David <pierre-yves.david@fb.com>
parents:
diff changeset
   150
  ## Running testcase C.3.b
35972ef12664 exchange: add test case for C.3
Pierre-Yves David <pierre-yves.david@fb.com>
parents:
diff changeset
   151
  ## initial state
35972ef12664 exchange: add test case for C.3
Pierre-Yves David <pierre-yves.david@fb.com>
parents:
diff changeset
   152
  # obstore: main
3566
e6bea259c227 prune: include "operation" metadata in obsmarkers
Martin von Zweigbergk <martinvonz@google.com>
parents: 3559
diff changeset
   153
  06055a7959d4128e6e3bccfd01482e83a2db8a3a 0 {28b51eb45704506b5c603decd6bf7ac5e0f6a52f} (Thu Jan 01 00:00:00 1970 +0000) {'ef1': '0', 'operation': 'prune', 'user': 'test'}
3559
d166b3dc5e8a tests: do not glob out fixed dates
Martin von Zweigbergk <martinvonz@google.com>
parents: 2754
diff changeset
   154
  28b51eb45704506b5c603decd6bf7ac5e0f6a52f e5ea8f9c73143125d36658e90ef70c6d2027a5b7 0 (Thu Jan 01 00:00:00 1970 +0000) {'user': 'test'}
3566
e6bea259c227 prune: include "operation" metadata in obsmarkers
Martin von Zweigbergk <martinvonz@google.com>
parents: 3559
diff changeset
   155
  e5ea8f9c73143125d36658e90ef70c6d2027a5b7 0 {a9bdc8b26820b1b87d585b82eb0ceb4a2ecdbc04} (Thu Jan 01 00:00:00 1970 +0000) {'ef1': '0', 'operation': 'prune', 'user': 'test'}
846
35972ef12664 exchange: add test case for C.3
Pierre-Yves David <pierre-yves.david@fb.com>
parents:
diff changeset
   156
  # obstore: pushdest
35972ef12664 exchange: add test case for C.3
Pierre-Yves David <pierre-yves.david@fb.com>
parents:
diff changeset
   157
  # obstore: pulldest
35972ef12664 exchange: add test case for C.3
Pierre-Yves David <pierre-yves.david@fb.com>
parents:
diff changeset
   158
  ## pushing from main to pushdest
35972ef12664 exchange: add test case for C.3
Pierre-Yves David <pierre-yves.david@fb.com>
parents:
diff changeset
   159
  pushing to pushdest
35972ef12664 exchange: add test case for C.3
Pierre-Yves David <pierre-yves.david@fb.com>
parents:
diff changeset
   160
  searching for changes
1078
5717d023da63 obsexc: use the common discovery
Pierre-Yves David <pierre-yves.david@fb.com>
parents: 1067
diff changeset
   161
  no changes found
1093
a49f2e7a2755 obsexch: respect todosteps when using the old push
Pierre-Yves David <pierre-yves.david@fb.com>
parents: 1088
diff changeset
   162
  remote: 3 new obsolescence markers
846
35972ef12664 exchange: add test case for C.3
Pierre-Yves David <pierre-yves.david@fb.com>
parents:
diff changeset
   163
  ## post push state
35972ef12664 exchange: add test case for C.3
Pierre-Yves David <pierre-yves.david@fb.com>
parents:
diff changeset
   164
  # obstore: main
3566
e6bea259c227 prune: include "operation" metadata in obsmarkers
Martin von Zweigbergk <martinvonz@google.com>
parents: 3559
diff changeset
   165
  06055a7959d4128e6e3bccfd01482e83a2db8a3a 0 {28b51eb45704506b5c603decd6bf7ac5e0f6a52f} (Thu Jan 01 00:00:00 1970 +0000) {'ef1': '0', 'operation': 'prune', 'user': 'test'}
3559
d166b3dc5e8a tests: do not glob out fixed dates
Martin von Zweigbergk <martinvonz@google.com>
parents: 2754
diff changeset
   166
  28b51eb45704506b5c603decd6bf7ac5e0f6a52f e5ea8f9c73143125d36658e90ef70c6d2027a5b7 0 (Thu Jan 01 00:00:00 1970 +0000) {'user': 'test'}
3566
e6bea259c227 prune: include "operation" metadata in obsmarkers
Martin von Zweigbergk <martinvonz@google.com>
parents: 3559
diff changeset
   167
  e5ea8f9c73143125d36658e90ef70c6d2027a5b7 0 {a9bdc8b26820b1b87d585b82eb0ceb4a2ecdbc04} (Thu Jan 01 00:00:00 1970 +0000) {'ef1': '0', 'operation': 'prune', 'user': 'test'}
846
35972ef12664 exchange: add test case for C.3
Pierre-Yves David <pierre-yves.david@fb.com>
parents:
diff changeset
   168
  # obstore: pushdest
3566
e6bea259c227 prune: include "operation" metadata in obsmarkers
Martin von Zweigbergk <martinvonz@google.com>
parents: 3559
diff changeset
   169
  06055a7959d4128e6e3bccfd01482e83a2db8a3a 0 {28b51eb45704506b5c603decd6bf7ac5e0f6a52f} (Thu Jan 01 00:00:00 1970 +0000) {'ef1': '0', 'operation': 'prune', 'user': 'test'}
3559
d166b3dc5e8a tests: do not glob out fixed dates
Martin von Zweigbergk <martinvonz@google.com>
parents: 2754
diff changeset
   170
  28b51eb45704506b5c603decd6bf7ac5e0f6a52f e5ea8f9c73143125d36658e90ef70c6d2027a5b7 0 (Thu Jan 01 00:00:00 1970 +0000) {'user': 'test'}
3566
e6bea259c227 prune: include "operation" metadata in obsmarkers
Martin von Zweigbergk <martinvonz@google.com>
parents: 3559
diff changeset
   171
  e5ea8f9c73143125d36658e90ef70c6d2027a5b7 0 {a9bdc8b26820b1b87d585b82eb0ceb4a2ecdbc04} (Thu Jan 01 00:00:00 1970 +0000) {'ef1': '0', 'operation': 'prune', 'user': 'test'}
846
35972ef12664 exchange: add test case for C.3
Pierre-Yves David <pierre-yves.david@fb.com>
parents:
diff changeset
   172
  # obstore: pulldest
35972ef12664 exchange: add test case for C.3
Pierre-Yves David <pierre-yves.david@fb.com>
parents:
diff changeset
   173
  ## pulling from main into pulldest
35972ef12664 exchange: add test case for C.3
Pierre-Yves David <pierre-yves.david@fb.com>
parents:
diff changeset
   174
  pulling from main
35972ef12664 exchange: add test case for C.3
Pierre-Yves David <pierre-yves.david@fb.com>
parents:
diff changeset
   175
  searching for changes
35972ef12664 exchange: add test case for C.3
Pierre-Yves David <pierre-yves.david@fb.com>
parents:
diff changeset
   176
  no changes found
1093
a49f2e7a2755 obsexch: respect todosteps when using the old push
Pierre-Yves David <pierre-yves.david@fb.com>
parents: 1088
diff changeset
   177
  3 new obsolescence markers
846
35972ef12664 exchange: add test case for C.3
Pierre-Yves David <pierre-yves.david@fb.com>
parents:
diff changeset
   178
  ## post pull state
35972ef12664 exchange: add test case for C.3
Pierre-Yves David <pierre-yves.david@fb.com>
parents:
diff changeset
   179
  # obstore: main
3566
e6bea259c227 prune: include "operation" metadata in obsmarkers
Martin von Zweigbergk <martinvonz@google.com>
parents: 3559
diff changeset
   180
  06055a7959d4128e6e3bccfd01482e83a2db8a3a 0 {28b51eb45704506b5c603decd6bf7ac5e0f6a52f} (Thu Jan 01 00:00:00 1970 +0000) {'ef1': '0', 'operation': 'prune', 'user': 'test'}
3559
d166b3dc5e8a tests: do not glob out fixed dates
Martin von Zweigbergk <martinvonz@google.com>
parents: 2754
diff changeset
   181
  28b51eb45704506b5c603decd6bf7ac5e0f6a52f e5ea8f9c73143125d36658e90ef70c6d2027a5b7 0 (Thu Jan 01 00:00:00 1970 +0000) {'user': 'test'}
3566
e6bea259c227 prune: include "operation" metadata in obsmarkers
Martin von Zweigbergk <martinvonz@google.com>
parents: 3559
diff changeset
   182
  e5ea8f9c73143125d36658e90ef70c6d2027a5b7 0 {a9bdc8b26820b1b87d585b82eb0ceb4a2ecdbc04} (Thu Jan 01 00:00:00 1970 +0000) {'ef1': '0', 'operation': 'prune', 'user': 'test'}
846
35972ef12664 exchange: add test case for C.3
Pierre-Yves David <pierre-yves.david@fb.com>
parents:
diff changeset
   183
  # obstore: pushdest
3566
e6bea259c227 prune: include "operation" metadata in obsmarkers
Martin von Zweigbergk <martinvonz@google.com>
parents: 3559
diff changeset
   184
  06055a7959d4128e6e3bccfd01482e83a2db8a3a 0 {28b51eb45704506b5c603decd6bf7ac5e0f6a52f} (Thu Jan 01 00:00:00 1970 +0000) {'ef1': '0', 'operation': 'prune', 'user': 'test'}
3559
d166b3dc5e8a tests: do not glob out fixed dates
Martin von Zweigbergk <martinvonz@google.com>
parents: 2754
diff changeset
   185
  28b51eb45704506b5c603decd6bf7ac5e0f6a52f e5ea8f9c73143125d36658e90ef70c6d2027a5b7 0 (Thu Jan 01 00:00:00 1970 +0000) {'user': 'test'}
3566
e6bea259c227 prune: include "operation" metadata in obsmarkers
Martin von Zweigbergk <martinvonz@google.com>
parents: 3559
diff changeset
   186
  e5ea8f9c73143125d36658e90ef70c6d2027a5b7 0 {a9bdc8b26820b1b87d585b82eb0ceb4a2ecdbc04} (Thu Jan 01 00:00:00 1970 +0000) {'ef1': '0', 'operation': 'prune', 'user': 'test'}
846
35972ef12664 exchange: add test case for C.3
Pierre-Yves David <pierre-yves.david@fb.com>
parents:
diff changeset
   187
  # obstore: pulldest
3566
e6bea259c227 prune: include "operation" metadata in obsmarkers
Martin von Zweigbergk <martinvonz@google.com>
parents: 3559
diff changeset
   188
  06055a7959d4128e6e3bccfd01482e83a2db8a3a 0 {28b51eb45704506b5c603decd6bf7ac5e0f6a52f} (Thu Jan 01 00:00:00 1970 +0000) {'ef1': '0', 'operation': 'prune', 'user': 'test'}
3559
d166b3dc5e8a tests: do not glob out fixed dates
Martin von Zweigbergk <martinvonz@google.com>
parents: 2754
diff changeset
   189
  28b51eb45704506b5c603decd6bf7ac5e0f6a52f e5ea8f9c73143125d36658e90ef70c6d2027a5b7 0 (Thu Jan 01 00:00:00 1970 +0000) {'user': 'test'}
3566
e6bea259c227 prune: include "operation" metadata in obsmarkers
Martin von Zweigbergk <martinvonz@google.com>
parents: 3559
diff changeset
   190
  e5ea8f9c73143125d36658e90ef70c6d2027a5b7 0 {a9bdc8b26820b1b87d585b82eb0ceb4a2ecdbc04} (Thu Jan 01 00:00:00 1970 +0000) {'ef1': '0', 'operation': 'prune', 'user': 'test'}