push: move obsolescence marker exchange in the exchange module
The obsolescence marker exchange code was already extracted during a previous
cycle. We are moving the extracted functio in this module. This function will
read and write data in the `pushoperation` object and I prefer to have all core
function collaborating through this object in the same place.
This changeset is pure code movement only. Code change for direct consumption of
the `pushoperation` object will come later.
$ hg init
$ echo 0 > a
$ echo 0 > b
$ hg ci -A -m m
adding a
adding b
$ hg rm a
$ hg cat a
0
$ hg cat --decode a # more tests in test-encode
0
$ echo 1 > b
$ hg ci -m m
$ echo 2 > b
$ hg cat -r 0 a
0
$ hg cat -r 0 b
0
$ hg cat -r 1 a
a: no such file in rev 7040230c159c
[1]
$ hg cat -r 1 b
1
Test fileset
$ echo 3 > c
$ hg ci -Am addmore c
$ hg cat 'set:not(b) or a'
3
$ hg cat 'set:c or b'
1
3