Login
Changes To TODOs
Login

Changes to "TODOs" between 2021-02-09 03:14:02 and 2021-02-09 04:37:58

1
2
3
4
5
6
7
8




9
10
11
12
13

14
15
16
17
18




19
20
21
22
23
24
25
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16

17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33








+
+
+
+




-
+





+
+
+
+







# libfossil Notable TODOs

This page gives a high-level overview of the notable TODOs, or perceived TODOs, as well as non-TODOs (topics/APIs which are either out of scope or are way, way down the line).

# Core SCM Features

In no particular order:

- **vfile.mhash** field: this was added sometime after the lib took a break and needs to be populated/handled by the lib code.

- **Port over checkout/repo fingerprint**: this allows detection of when a checkout's repo has been replaced by one with different RIDs. See fossil's `vfile.c:vfile_rid_renumbering_event()`.

- **Merging**: to port from fossil.

- **Rebuild**: this feature exercises almost every major SCM feature of the framework except for merging and synchronization. Similarly, deconstruct/reconstruct might be useful for exercising the library.

- **Cross-linking of forum posts**: they can be ready by the library but cannot yet be crosslinked. Related: add a context-specific flag which tells crosslinking to simply skip these, rather than fail.
- **Cross-linking of forum posts**: the library can read and write them but they cannot yet be crosslinked. Related: add a context-specific flag which tells crosslinking to simply skip these, rather than fail.

- **Double-check crosslinking of other types** and make sure that we are not missing newly-added features.

- **Bring the configuration-related state up to date.** The infrastructure is there but the exact list of fossil-supported properties is lagging behind by several years.

# Maybe TODO

- **Undo** support.


# Remote Synchronization

- This will be implemented in terms of abstract streaming APIs, very possibly the ones the library already uses for the majority of its file I/O and abstracting output streaming (e.g. it uses an abstract output stream for diff output, rather than writing directly to a buffer).

- This will almost certainly be one of the last major features.