comparison docs/obs-implementation.rst @ 244:9d37254031fc

[doc] add Question and Answer about Obsolet Marker Implementation
author Pierre-Yves.David@ens-lyon.org
date Fri, 11 May 2012 16:43:59 +0200
parents 5a17c0d41a00
children 1e8e32d3871c
comparison
equal deleted inserted replaced
243:2f68c708e10b 244:9d37254031fc
1 1
2 ----------------------------------------------------- 2 -----------------------------------------------------
3 Implementation of Obsolete Marker 3 Implementation of Obsolete Marker
4 ----------------------------------------------------- 4 -----------------------------------------------------
5 .. warning:: This document is still in heavy work in progress 5 .. warning:: This document is still in heavy work in progress
6
7 Main questions about Obsolete Marker Implementation
8 -----------------------------------------------------
9
10
11 What data should be contained in a Marker ?
12 ````````````````````````````````````````````````````
13
14 There is 2 data that **must** be stored
15
16 :object:
17 the old obsoleted changeset
18
19 :subjects:
20 list of new changeset. **must** accept 0, 1 or 2 element at least. Shall it
21 accept more than three ?
22
23 This is probably a good idea to have an unique Identifier, for UI, transfert and
24 access.
25
26 :id: same as changeset but for marker.
27
28 Having audit data will be very usefull. When it get messy you need all the
29 information you can to understand the situation. (could be a group level)
30
31 :date: date of the marker creation
32
33 :user: ui.username
34
35 To go further:
36
37 :description: "Optional reason for the rewrite (generated of added by the user)"
38
39 :tool: the automated too that made this
40
41 :operation: Kind of rewritting operation that created the marker (delete,
42 update, split, fold, reordering) To help conflict resolution.
43
44 Any other data ?
45
46 Shall we store the marker alone or should be group them ?
47 `````````````````````````````````````````````````````````````
48
49 Several operation rewrite multiple changeset at once. It may make sense to group
50 marker in this case.
51
52 This could be seen as the same improvement than the introduction of coherent
53 "changesets" in Files version control.
54
55 This would help exchange and undo.
56
57
58 How shall we store Marker on disk (and in memory) ?
59 `````````````````````````````````````````````````````````
60
61 We need to quickly load the 'object' to know the "obsolete" set.
62
63 We need quick access by object and subject.
64
65 How shall we exchange Marker over the Wire ?
66 `````````````````````````````````````````````````````````
67
68 We can have a lot of markers. We do not want to exchange data for the one we
69 already know. Listkey() is not very appropriate there as you get everything.
70
71 Moreover, we might want to only hear about Marker that impact changeset we are
72 pulling.
73
74 pushkey is not batchable yet (could be fixed)
75
76 A dedicated discovery and exchange protocol seems mandatory here.
77
6 78
7 Various technical details 79 Various technical details
8 ----------------------------------------------------- 80 -----------------------------------------------------
9 81
10 Some stuff that worse to note. some may deserve their own section later. 82 Some stuff that worse to note. some may deserve their own section later.
11 83
12 storing old changeset 84 storing old changeset
13 `````````````````````` 85 ``````````````````````
14 86
15 The new general delta format allow a very efficient storage of two very similar 87 The new general delta format allows a very efficient storage of two very similar
16 changesets. Storing obsolete childrens using general delta takes no more place 88 changesets. Storing obsolete childrens using general delta takes no more place
17 than storing the obsolete diff. Reverted file will even we reused. The whole 89 than storing the obsolete diff. Reverted file will even we reused. The whole
18 operation will take much less space the strip backup. 90 operation will take much less space the strip backup.
19 91
20 92