Beryllium Port - Remote rev KeepBody flag could be cleared accidentally
Description
It's possible for the `keepBody` flag of a remote rev to be cleared, whenever `RevTree::keepBody` is called. This is because the function does not consider the `_remoteRevs` when clearing `kKeepBody` from the ancestor revs. This is an obvious logic error, and also renders delta sync entirely useless, because it needs a remote ancestor rev to compute a delta.
Build couchbase-lite-log-3.3.0-20 contains couchbase-lite-core commit b89cb81 with commit message: : Remote rev KeepBody flag could be cleared accidentally (#1991)
CB robot August 26, 2024 at 11:24 PM
Build couchbase-lite-cblite-3.3.0-21 contains couchbase-lite-core commit b89cb81 with commit message: : Remote rev KeepBody flag could be cleared accidentally (#1991)
buildteam_automation July 23, 2024 at 12:53 AM
Build couchbase-lite-ios-3.3.0-9 contains couchbase-lite-core commit b89cb81 with commit message: : Remote rev KeepBody flag could be cleared accidentally (#1991)
CB robot July 16, 2024 at 5:47 PM
Build couchbase-lite-core-3.3.0-38 contains couchbase-lite-core commit b89cb81 with commit message: : Remote rev KeepBody flag could be cleared accidentally (#1991)
CB robot May 23, 2024 at 4:04 PM
Build couchbase-lite-c-3.2.0-41 contains couchbase-lite-core commit b89cb81 with commit message: : Remote rev KeepBody flag could be cleared accidentally (#1991)
Fixed
Pinned fields
Click on the next to a field label to start pinning.
It's possible for the `keepBody` flag of a remote rev to be cleared, whenever `RevTree::keepBody` is called. This is because the function does not consider the `_remoteRevs` when clearing `kKeepBody` from the ancestor revs.
This is an obvious logic error, and also renders delta sync entirely useless, because it needs a remote ancestor rev to compute a delta.
The fix is simple: