view tests/test-exchange-obsmarkers-case-D3.t @ 2957:586c9ace20b3

obslog: simplify formatter keys The formatter field keys are all prefixed with `debugobshistory.'. This is annoyingly useless as they are already in the `debughistory` topic. This patch simplify these keys. For examle, on this repository `hg obslog -Tdebug -r 31cbace4c0f1` : ``` debugobshistory = [ { 'node':'31cbace4c0f1', 'shortdescription':'topics: make sure we have some restrictions on topic names', 'rev':2904, 'markers':[ ] }, { 'node':'d439a6087434', 'markers':[ { 'date':(1504176329.83902, -7200 ), 'verb':'rewritten', 'succnodes':[ '31cbace4c0f1' ], 'effect':[ 'parent' ], 'user':'Pierre-Yves David <pierre-yves.david@octobus.net>' } ] }, { 'node':'1e1f651704d4', 'markers':[ { 'date':(1504175088.811924, -7200 ), 'verb':'rewritten', 'succnodes':[ 'd439a6087434' ], 'effect':[ 'parent' ], 'user':'Pierre-Yves David <pierre-yves.david@octobus.net>' } ] }, { 'node':'eb6495cf6cb1', 'markers':[ { 'date':(1504015275.001643, -19800 ), 'verb':'rewritten', 'succnodes':[ '1e1f651704d4' ], 'effect':[ 'parent', 'content' ], 'user':'Pulkit Goyal <7895pulkit@gmail.com>' } ] }, { 'node':'761e446e0112', 'markers':[ { 'date':(1504015201.780276, -19800 ), 'verb':'rewritten', 'succnodes':[ 'eb6495cf6cb1' ], 'effect':[ 'content' ], 'user':'Pulkit Goyal <7895pulkit@gmail.com>' } ] }, { 'node':'531a626950bd', 'markers':[ { 'date':(1504015017.897054, -19800 ), 'verb':'rewritten', 'succnodes':[ '761e446e0112' ], 'effect':[ 'meta', 'parent', 'content' ], 'user':'Pulkit Goyal <7895pulkit@gmail.com>' } ] }, { 'node':'c2f9ba7329ea', 'markers':[ { 'date':(1504014136.876537, -19800 ), 'verb':'rewritten', 'succnodes':[ '531a626950bd' ], 'effect':[ 'meta' ], 'user':'Pulkit Goyal <7895pulkit@gmail.com>' } ] }, ] ``` We now able to ask `hg obslog -r 78debdfb3e4d -T '{label("log.summary", shortdescription)}\n{if(markers, markers % " {date|age} {user|person}\n")}'` ``` doc: simplify the reference to in-core features 9 days ago Pierre-Yves David 9 days ago Pierre-Yves David 9 days ago Pierre-Yves David 9 days ago Pierre-Yves David 9 days ago Philippe Pepiot 9 days ago Philippe Pepiot ```
author Alain Leufroy
date Fri, 08 Sep 2017 12:10:21 +0200
parents 21f06d932231
children 2280461343e5 d166b3dc5e8a
line wrap: on
line source

============================================
Testing obsolescence markers push: Cases D.3
============================================

Mercurial pushes obsolescences markers relevant to the "pushed-set", the set of
all changesets that requested to be "in sync" after the push (even if they are
already on both side).

This test belongs to a series of tests checking such set is properly computed
and applied. This does not tests "obsmarkers" discovery capabilities.

Category D: Partial Information Case
TestCase 3: missing prune target (prune not in "pushed set")

D.3 missing prune target (prune not in "pushed set")
====================================================

.. {{{
..  A ø⇠✕ A'
..     | |
..     | ○ B
..     |/
..     ● O
.. }}}
..
.. Marker exist from:
..
..  * `A ø⇠o A'`
..  * A' (prune)
..
.. Command runs:
..
..  * hg push
..
.. Expected exclude:
..
..  * `A ø⇠o A'`
..  * A' (prune)

Setup
-----

  $ . $TESTDIR/testlib/exchange-obsmarker-util.sh

initial

  $ setuprepos D.3
  creating test repo for test case D.3
  - pulldest
  - main
  - pushdest
  cd into `main` and proceed with env setup
  $ cd main
  $ mkcommit A0
  $ hg up -q 0
  $ mkcommit B
  created new head
  $ mkcommit A1
  $ hg debugobsolete `getid 'desc(A0)'` `getid 'desc(A1)'`
  obsoleted 1 changesets
  $ hg prune -d '0 0' .
  0 files updated, 0 files merged, 1 files removed, 0 files unresolved
  working directory now at 35b183996678
  1 changesets pruned
  $ hg strip --hidden -q 'desc(A1)' --config devel.strip-obsmarkers=no
  $ hg log -G --hidden
  @  35b183996678 (draft): B
  |
  | x  28b51eb45704 (draft): A0
  |/
  o  a9bdc8b26820 (public): O
  
  $ inspect_obsmarkers
  obsstore content
  ================
  28b51eb45704506b5c603decd6bf7ac5e0f6a52f 6aa67a7b4baa6fb41b06aed38d5b1201436546e2 0 (*) {'user': 'test'} (glob)
  6aa67a7b4baa6fb41b06aed38d5b1201436546e2 0 {35b1839966785d5703a01607229eea932db42f87} (*) {'ef1': '*', 'user': 'test'} (glob)
  obshashtree
  ===========
  a9bdc8b26820b1b87d585b82eb0ceb4a2ecdbc04 0000000000000000000000000000000000000000
  28b51eb45704506b5c603decd6bf7ac5e0f6a52f 0000000000000000000000000000000000000000
  35b1839966785d5703a01607229eea932db42f87 43ff2c20d850ad18dee0f7f252c98c1f1a0cfd5c
  obshashrange
  ============
           rev         node        index         size        depth      obshash
             2 35b183996678            0            2            2 43ff2c20d850
             2 35b183996678            1            1            2 43ff2c20d850
             0 a9bdc8b26820            0            1            1 000000000000
  $ cd ..
  $ cd ..

Actual Test
-----------

  $ dotest D.3 O
  ## Running testcase D.3
  # testing echange of "O" (a9bdc8b26820)
  ## initial state
  # obstore: main
  28b51eb45704506b5c603decd6bf7ac5e0f6a52f 6aa67a7b4baa6fb41b06aed38d5b1201436546e2 0 (*) {'user': 'test'} (glob)
  6aa67a7b4baa6fb41b06aed38d5b1201436546e2 0 {35b1839966785d5703a01607229eea932db42f87} (*) {'ef1': '*', 'user': 'test'} (glob)
  # obstore: pushdest
  # obstore: pulldest
  ## pushing "O" from main to pushdest
  pushing to pushdest
  searching for changes
  no changes found
  ## post push state
  # obstore: main
  28b51eb45704506b5c603decd6bf7ac5e0f6a52f 6aa67a7b4baa6fb41b06aed38d5b1201436546e2 0 (*) {'user': 'test'} (glob)
  6aa67a7b4baa6fb41b06aed38d5b1201436546e2 0 {35b1839966785d5703a01607229eea932db42f87} (*) {'ef1': '*', 'user': 'test'} (glob)
  # obstore: pushdest
  # obstore: pulldest
  ## pulling "a9bdc8b26820" from main into pulldest
  pulling from main
  no changes found
  ## post pull state
  # obstore: main
  28b51eb45704506b5c603decd6bf7ac5e0f6a52f 6aa67a7b4baa6fb41b06aed38d5b1201436546e2 0 (*) {'user': 'test'} (glob)
  6aa67a7b4baa6fb41b06aed38d5b1201436546e2 0 {35b1839966785d5703a01607229eea932db42f87} (*) {'ef1': '*', 'user': 'test'} (glob)
  # obstore: pushdest
  # obstore: pulldest