Open
Description
Ability to compute manipulate patches:
- Un-committed patch compaction
- Compact operations within a single patch.
- String inserts.
- Combine non-commited patches.
- Compact operations within a single patch.
- Patch exchange
- Method for converting clock vector to a serializable object
- Converting serializable vector clock back to a vector clock?
- Method for retrieving all patches from
Log
which are logically more recent than the clock vector value.
- Cherry-picking
- Ability to extract operations from a
Patch
. - Given a
Log
, ability to find all causal ancestorPatch
es of a given set of operations.
- Ability to extract operations from a
- Reverse cherry-picking
- Find all future (forward)
Log
patches that depend on a givenPatch
- This is potentially useful in undo/redo, to find frontier operations which already causally depend on the
Patch
which is to be undone.
- This is potentially useful in undo/redo, to find frontier operations which already causally depend on the
- Find all future (forward)
- Compact deletions adjacent to inserts?
- Note: Cannot change insert IDs, due to possible future causal events.
Patch ..4082.234!4
├─ ins_str ..4082.234!1, obj = ..6089.213 { ..6089.216 ← " " }
├─ ins_str ..4082.235!1, obj = ..6089.213 { ..4082.234 ← "2" }
├─ ins_str ..4082.236!1, obj = ..6089.213 { ..4082.235 ← "\n" }
└─ del ..4082.237, obj = ..6089.213 { ..4082.236!1 }
- Compact adjacent string inserts right in the
Builder
as thePatch
is being built?
Metadata
Metadata
Assignees
Labels
No labels