| 5 | | |
| 6 | | = Terminology = |
| 7 | | |
| 8 | | To facilitate discussion here is some clarificatory terminology: |
| 9 | | |
| 10 | | * Repository: a given standalone instance containing domain objects. |
| 11 | | * Revision: metadata about a particular change such as unique-id, author, timestamp (and maybe more such as: parents, hash ...) |
| 12 | | * Patch: description of the changes to the domain model: e.g. a set of ids for changed versioned objects along with relevant diffs, necessary changes to non-versioned objects etc |
| 13 | | * Changeset: the combination of a Revision and its associated Patch |
| 14 | | * NB: a patch alone can be applied but it can only be applied "blind" (for example one has no idea whether the patch has already been applied earlier in the Repository history) |
| 15 | | * NB: similarly a Revision along can be applied (it is a Changeset with a null Patch) |
| 68 | | - Changeset patch, creation (on new revision: create serialised diff) |
| 69 | | - Changeset patch, publication (handle register-get and entity-get, searchable, publish-subscribe) |
| 70 | | - Changeset patch, retrieval (get and add new changeset patches to local queue entity-get, add to queue) |
| 71 | | - Changeset patch, conflict detection (possibly by asserting either that new values of changed attributes match current values of same attributes in model - so the patch would leave the local model in it's current state, or that old values of changed attributes match current values of same attributes in model - with refinements for merging diffs to "long text") |
| 72 | | - Changeset patch, resolution (human response to conflict notification, decide new state, continue the queue) |
| 73 | | - Changeset patch, application (model merge, record changeset patch has been applied) |
| | 57 | - Changeset patch creation (on new revision: create serialised diff) |
| | 58 | - Changeset patch publication (handle register-get and entity-get, searchable, publish-subscribe) |
| | 59 | - Changeset patch retrieval (get and add new changeset patches to local queue entity-get, add to queue) |
| | 60 | - Changeset patch conflict detection (possibly by asserting either that new values of changed attributes match current values of same attributes in model - so the patch would leave the local model in it's current state, or that old values of changed attributes match current values of same attributes in model - with refinements for merging diffs to "long text") |
| | 61 | - Changeset patch resolution (human response to conflict notification, decide new state, continue the queue) |
| | 62 | - Changeset patch application (model merge, record changeset patch has been applied) |
| 75 | | - Model Merge (to include add/remove aggregated children e.g. packages) |
| 76 | | - Model Package Merge (to include add/remove child associations e.g. taggings) |
| 77 | | - Model Tag Merge (if there are any editable attributes ) |
| 78 | | - Model Group Merge (if there are any editable attributes) |
| 79 | | - Model Text Merge (so parts of a longer piece of text can be merged into an otherwise conflicting text attribute) |
| | 64 | - Model merge (to include add/remove aggregated children e.g. packages) |
| | 65 | - Package merge (to include add/remove child associations e.g. taggings) |
| | 66 | - Tag merge (if there are any editable attributes ) |
| | 67 | - Group Merge (if there are any editable attributes) |
| | 68 | - Text merge (so parts of a longer piece of text can be merged into an otherwise conflicting text attribute) |
| | 81 | |
| | 82 | = Glossary (Early Draft) = |
| | 83 | |
| | 84 | * Repository: a given standalone instance containing domain objects. |
| | 85 | * Revision: metadata about a particular change such as unique-id, author, timestamp (and maybe more such as: parents, hash ...) |
| | 86 | * Patch: description of the changes to the domain model: e.g. a set of ids for changed versioned objects along with relevant diffs, necessary changes to non-versioned objects etc |
| | 87 | * Changeset: the combination of a Revision and its associated Patch |
| | 88 | * NB: a patch alone can be applied but it can only be applied "blind" (for example one has no idea whether the patch has already been applied earlier in the Repository history) |
| | 89 | * NB: similarly a Revision along can be applied (it is a Changeset with a null Patch) |
| | 90 | |