cext: fix Python 3.11 compatibility - Py_SIZE is not an lvalue (issue6610)
Py_SIZE was made a static inline function during Python 3.10 development, as
described on https://vstinner.github.io/c-api-opaque-structures.html .
e92ca942ddca updated the Mercurial code base accordingly, but somehow missed a
couple of cases introduced long time ago in a8c948ee3668.
The Python change was dropped for 3.10, but is coming back again in 3.11 .
$ hg init
$ echo foo > a
$ hg add a
$ hg commit -m "1"
$ echo bar > b
$ hg add b
$ hg remove a
Should show a removed and b added:
$ hg status
A b
R a
$ hg revert --all
forgetting b
undeleting a
Should show b unknown and a back to normal:
$ hg status
? b
$ rm b
$ hg co -C 0
0 files updated, 0 files merged, 0 files removed, 0 files unresolved
$ echo foo-a > a
$ hg commit -m "2a"
$ hg co -C 0
1 files updated, 0 files merged, 0 files removed, 0 files unresolved
$ echo foo-b > a
$ hg commit -m "2b"
created new head
$ HGMERGE=true hg merge 1
merging a
0 files updated, 1 files merged, 0 files removed, 0 files unresolved
(branch merge, don't forget to commit)
Should show foo-b:
$ cat a
foo-b
$ echo bar > b
$ hg add b
$ rm a
$ hg remove a
Should show a removed and b added:
$ hg status
A b
R a
Revert should fail:
$ hg revert
abort: uncommitted merge with no revision specified
(use 'hg update' or see 'hg help revert')
[10]
Revert should be ok now:
$ hg revert -r2 --all
forgetting b
undeleting a
Should show b unknown and a marked modified (merged):
$ hg status
M a
? b
Should show foo-b:
$ cat a
foo-b