Issue #3961
closedDeclarativeVersion doesn't respect plugin boundaries in mirror mode
Description
Let's say you're using multiple plugins/content types with one repository.
First you sync content into $REPO using $PLUGIN_1, and then you sync more content into $REPO using $PLUGIN_2.
Assuming the latter sync uses mirror mode, all of the content synced by the first sync will be removed. This means that one plugin can easily destroy content from other plugins unless you use "additive" mode only, whereas intuitively I would not expect that to be the case.
If this is intended behavior, we should take care to document this very clearly.
Updated by daviddavis about 6 years ago
One possible way to think of this: it's no different than syncing from two Remotes of the same type. For example, I'd expect the same behavior when syncing from two FileRemotes.
+1 to documenting this.
Updated by bmbouter about 6 years ago
+1 to documenting this, especially for the use case @daviddavis describes.
For the cross-plugin types what if we:
1. Adjusted the ContentUnitUnassociate stage to take an option called 'ignore_unseen_types'. When True, the stage would only unassociate unit types that have also been emitted in the stream at some point. So True, leaves other plugin types untouched.
2. Have DeclarativeVersion expose this as an option and have it default to False.
Updated by dalley over 4 years ago
- Status changed from NEW to CLOSED - NOTABUG
Typed repositories fixes this