evolve: yield to relevant markers handling in core
The handling of obsolescence marker is now performed in core. If we detect a
mercurial with such power we skip the wrapping from evolve.
This changeset also suffer from massive diff from the change in display of
obsolescence marker with parent information introduced at the same time in core.
Initial setup
$ . $TESTDIR/_exc-util.sh
== B.6 Pruned changeset with ancestors not in pushed set ===
.. {{{
.. B ø⇠⊗ B'
.. | |
.. A ○ |
.. |/
.. ● O
.. }}}
..
.. Marker exist from:
..
.. * `Bø⇠⊗ B'`
.. * B' prune
..
.. Command run:
..
.. * hg push -r O
..
.. Expected exchange:
..
.. * `Bø⇠⊗ B'`
.. * B' prune
$ setuprepos B.6
creating test repo for test case B.6
- pulldest
- main
- pushdest
cd into `main` and proceed with env setup
$ cd main
$ mkcommit A
$ mkcommit B0
$ hg up --quiet 0
$ mkcommit B1
created new head
$ hg debugobsolete `getid 'desc(B0)'` `getid 'desc(B1)'`
$ hg prune -qd '0 0' .
$ hg log -G --hidden
x f6298a8ac3a4 (draft): B1
|
| x 962ecf6b1afc (draft): B0
| |
| o f5bc6836db60 (draft): A
|/
@ a9bdc8b26820 (public): O
$ hg debugobsolete
962ecf6b1afc94e15c7e48fdfb76ef8abd11372b f6298a8ac3a4b78bbeae5f1d3dc5bc3c3812f0f3 0 (Thu Jan 01 00:00:00 1970 +0000) {'user': 'test'}
f6298a8ac3a4b78bbeae5f1d3dc5bc3c3812f0f3 0 {a9bdc8b26820b1b87d585b82eb0ceb4a2ecdbc04} (Thu Jan 01 00:00:00 1970 +0000) {'user': 'test'}
$ cd ..
$ cd ..
Actual Test
-------------------------------------
$ dotest B.6 O
## Running testcase B.6
# testing echange of "O" (a9bdc8b26820)
## initial state
# obstore: main
962ecf6b1afc94e15c7e48fdfb76ef8abd11372b f6298a8ac3a4b78bbeae5f1d3dc5bc3c3812f0f3 0 (Thu Jan 01 00:00:00 1970 +0000) {'user': 'test'}
f6298a8ac3a4b78bbeae5f1d3dc5bc3c3812f0f3 0 {a9bdc8b26820b1b87d585b82eb0ceb4a2ecdbc04} (Thu Jan 01 00:00:00 1970 +0000) {'user': 'test'}
# obstore: pushdest
# obstore: pulldest
## pushing "O" from main to pushdest
pushing to pushdest
searching for changes
no changes found
OBSEXC: computing relevant nodes
OBSEXC: computing markers relevant to 1 nodes
OBSEXC: pushing 2 obsolescence markers (153 bytes)
OBSEXC: DONE
## post push state
# obstore: main
962ecf6b1afc94e15c7e48fdfb76ef8abd11372b f6298a8ac3a4b78bbeae5f1d3dc5bc3c3812f0f3 0 (Thu Jan 01 00:00:00 1970 +0000) {'user': 'test'}
f6298a8ac3a4b78bbeae5f1d3dc5bc3c3812f0f3 0 {a9bdc8b26820b1b87d585b82eb0ceb4a2ecdbc04} (Thu Jan 01 00:00:00 1970 +0000) {'user': 'test'}
# obstore: pushdest
962ecf6b1afc94e15c7e48fdfb76ef8abd11372b f6298a8ac3a4b78bbeae5f1d3dc5bc3c3812f0f3 0 (Thu Jan 01 00:00:00 1970 +0000) {'user': 'test'}
f6298a8ac3a4b78bbeae5f1d3dc5bc3c3812f0f3 0 {a9bdc8b26820b1b87d585b82eb0ceb4a2ecdbc04} (Thu Jan 01 00:00:00 1970 +0000) {'user': 'test'}
# obstore: pulldest
## pulling "a9bdc8b26820" from main into pulldest
pulling from main
no changes found
OBSEXC: pull obsolescence markers
OBSEXC: merging obsolescence markers (153 bytes)
OBSEXC: 2 obsolescence markers added
OBSEXC: DONE
## post pull state
# obstore: main
962ecf6b1afc94e15c7e48fdfb76ef8abd11372b f6298a8ac3a4b78bbeae5f1d3dc5bc3c3812f0f3 0 (Thu Jan 01 00:00:00 1970 +0000) {'user': 'test'}
f6298a8ac3a4b78bbeae5f1d3dc5bc3c3812f0f3 0 {a9bdc8b26820b1b87d585b82eb0ceb4a2ecdbc04} (Thu Jan 01 00:00:00 1970 +0000) {'user': 'test'}
# obstore: pushdest
962ecf6b1afc94e15c7e48fdfb76ef8abd11372b f6298a8ac3a4b78bbeae5f1d3dc5bc3c3812f0f3 0 (Thu Jan 01 00:00:00 1970 +0000) {'user': 'test'}
f6298a8ac3a4b78bbeae5f1d3dc5bc3c3812f0f3 0 {a9bdc8b26820b1b87d585b82eb0ceb4a2ecdbc04} (Thu Jan 01 00:00:00 1970 +0000) {'user': 'test'}
# obstore: pulldest
962ecf6b1afc94e15c7e48fdfb76ef8abd11372b f6298a8ac3a4b78bbeae5f1d3dc5bc3c3812f0f3 0 (Thu Jan 01 00:00:00 1970 +0000) {'user': 'test'}
f6298a8ac3a4b78bbeae5f1d3dc5bc3c3812f0f3 0 {a9bdc8b26820b1b87d585b82eb0ceb4a2ecdbc04} (Thu Jan 01 00:00:00 1970 +0000) {'user': 'test'}