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