Commits

Anonymous committed 9d37254

[doc] add Question and Answer about Obsolet Marker Implementation

Comments (0)

Files changed (1)

docs/obs-implementation.rst

 -----------------------------------------------------
 .. warning:: This document is still in heavy work in progress
 
+Main questions about Obsolete Marker Implementation
+-----------------------------------------------------
+
+
+What data should be contained in a Marker ?
+````````````````````````````````````````````````````
+
+There is 2 data that **must** be stored
+
+:object:
+    the old obsoleted changeset
+
+:subjects:
+    list of new changeset. **must** accept 0, 1 or 2 element at least. Shall it
+    accept more than three ?
+
+This is probably a good idea to have an unique Identifier, for UI, transfert and
+access.
+
+    :id: same as changeset but for marker.
+
+Having audit data will be very usefull. When it get messy you need all the
+information you can to understand the situation. (could be a group level)
+
+:date: date of the marker creation
+
+:user: ui.username
+
+To go further:
+
+:description: "Optional reason for the rewrite (generated of added by the user)"
+
+:tool: the automated too that made this
+
+:operation: Kind of rewritting operation that created the marker (delete,
+            update, split, fold, reordering) To help conflict resolution.
+
+Any other data ?
+
+Shall we store the marker alone or should be group them ?
+`````````````````````````````````````````````````````````````
+
+Several operation rewrite multiple changeset at once. It may make sense to group
+marker in this case.
+
+This could be seen as the same improvement than the introduction of coherent
+"changesets" in Files version control.
+
+This would help exchange and undo.
+
+
+How shall we store Marker on disk (and in memory) ?
+`````````````````````````````````````````````````````````
+
+We need to quickly load the 'object' to know the "obsolete" set.
+
+We need quick access by object and subject.
+
+How shall we exchange Marker over the Wire ?
+`````````````````````````````````````````````````````````
+
+We can have a lot of markers. We do not want to exchange data for the one we
+already know. Listkey() is not very appropriate there as you get everything.
+
+Moreover, we might want to only hear about Marker that impact changeset we are
+pulling.
+
+pushkey is not batchable yet (could be fixed)
+
+A dedicated discovery and exchange protocol seems mandatory here.
+
+
 Various technical details
 -----------------------------------------------------
 
 storing old changeset
 ``````````````````````
 
-The new general delta format allow a very efficient storage of two very similar
+The new general delta format allows a very efficient storage of two very similar
 changesets. Storing obsolete childrens using general delta takes no more place
 than storing the obsolete diff. Reverted file will even we reused. The whole
 operation will take much less space the strip backup.
Tip: Filter by directory path e.g. /media app.js to search for public/media/app.js.
Tip: Use camelCasing e.g. ProjME to search for ProjectModifiedEvent.java.
Tip: Filter by extension type e.g. /repo .js to search for all .js files in the /repo directory.
Tip: Separate your search with spaces e.g. /ssh pom.xml to search for src/ssh/pom.xml.
Tip: Use ↑ and ↓ arrow keys to navigate and return to view the file.
Tip: You can also navigate files with Ctrl+j (next) and Ctrl+k (previous) and view the file with Ctrl+o.
Tip: You can also navigate files with Alt+j (next) and Alt+k (previous) and view the file with Alt+o.