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 | |