Skip to content
Snippets Groups Projects
Commit 3cf9e52f authored by Pierre-Yves David's avatar Pierre-Yves David :octopus:
Browse files

inline-changelog: fix a critical bug in write_pending that delete data

Since a93e52f0b6ff we no longer use inline-revlog for the changelog. The goal there was to
solve the lack of testing for the two variants (inline vs split) and reduce the
complexity of the interaction with "diverted-write" on the changelog level.

However many existing repository still have inline-changelog and we
automatically move them to normal revlog as soon as we have the chances.

Unfortunately This conversion is buggy and can result in the destruction of the
changelog.i if hook triggers the "write pending" mechanism.

The bugs comes from the "revlog splitting" logic and the "write_pending" logic
stepping over each other. Ironically the change in a93e52f0b6ff aims at no
longer having this kind of problem.

This changesets fix this issue and add associated tests.

Fixing this reveal that the transaction hooks end up not seeing the pending
transaction content, because the name is not right ("changelog.i.s.a" instead of
"changelog.i.s") we fix this in the next changeset.
parent 553eb132
No related branches found
No related tags found
2 merge requests!864Merge stable into default,!862fix a critical bug when splitting legacy inline changelog with hooks
Loading
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment